前言:想要寫出一篇引人入勝的文章?我們特意為您整理了交互式智能藝術(shù)圖片網(wǎng)站的設(shè)計探究范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:本文構(gòu)建了一個交互式智能藝術(shù)圖片網(wǎng)站,AI與圖像的結(jié)合使該網(wǎng)站具備了“快速圖像風(fēng)格遷移”、“修復(fù)模糊、褶皺圖片”、“黑白圖片上色”等智能化應(yīng)用,增強了用戶體驗和網(wǎng)站的趣味性。個人作品上傳、可過濾敏感消息的網(wǎng)頁聊天室與用戶留言功能,為藝術(shù)圖片愛好者搭建了一個展示、欣賞與交流作品的綠色、多元交互平臺,使網(wǎng)站更具生機和活力。
關(guān)鍵詞:快速圖像風(fēng)格遷移;圖像修復(fù);flask;Bootstrap;智能網(wǎng)站;WebSocket通信協(xié)議;敏感詞匯過濾
藝術(shù)是人們情感交流的媒介,它使我們的生活更加美好,人工智能和藝術(shù)的“跨界融合”成為當(dāng)今研究的熱點之一。本文利用深度學(xué)習(xí)模型,設(shè)計了圖像風(fēng)格變換、圖像修復(fù)等功能。此外,為了給用戶提供一個更加健康、便捷、豐富的藝術(shù)交流環(huán)境,此網(wǎng)站也設(shè)計了投票、留言以及基于WebSocket通信協(xié)議和“自動禁言”的聊天室功能。為眾多藝術(shù)圖片愛好者提供一個更加智能化的圖片展示、處理與交流平臺。
1關(guān)鍵技術(shù)
1.1快速圖像風(fēng)格遷移
風(fēng)格遷移是指創(chuàng)建一張新圖像,保留目標(biāo)圖像的內(nèi)容,同時抓住參考圖像的風(fēng)格,盡可能的使內(nèi)容損失函數(shù)和風(fēng)格損失函數(shù)最小化[1]。風(fēng)格遷移使用卷積層的中間特征還原出對應(yīng)這種特征的原始圖像[1],圖像還原的方法是梯度下降。設(shè)原始內(nèi)容圖像為,原始風(fēng)格圖像為,待生成圖像為,因此組合的內(nèi)容損失和的風(fēng)格損失,定義總損失:(1)其中:α,β是平衡兩個損失的超參數(shù)。原始的圖像風(fēng)格遷移以為目標(biāo),在生成圖像時需要用梯度下降來逐步迭代,速度很慢。在快速圖像風(fēng)格遷移中,不使用優(yōu)化的方法逐步迭代生成,而是使用訓(xùn)練好的生成網(wǎng)絡(luò)直接生成??焖賵D像風(fēng)格遷移由生成網(wǎng)絡(luò)和損失網(wǎng)絡(luò)兩個神經(jīng)網(wǎng)絡(luò)組成[2],如圖1所示:左側(cè)虛線框內(nèi)為生成網(wǎng)絡(luò)(fw,w為權(quán)重參數(shù)),即一個深度殘差網(wǎng)絡(luò);右側(cè)虛線框內(nèi)為損失網(wǎng)絡(luò)(φ)。利用損失網(wǎng)絡(luò)來定義內(nèi)容和風(fēng)格損失,根據(jù)損失值來訓(xùn)練生成網(wǎng)絡(luò)。設(shè)輸入圖像為,轉(zhuǎn)換圖像為,原始內(nèi)容圖像為,原始風(fēng)交互式智能藝術(shù)圖片網(wǎng)站的設(shè)計與實現(xiàn)穆衛(wèi)衛(wèi)郭鵬博(天津師范大學(xué)天津市300387)格圖像為,利用損失網(wǎng)絡(luò)定義的內(nèi)容損失為,內(nèi)容損失使用VGG-16的relu3_3層輸出特征[3],即圖中的,風(fēng)格損失為,風(fēng)格損失使用VGG-16的relu1_2、relu2_2、relu3_3、relu4_3層輸出,對應(yīng)圖中的、、、,組合這兩種損失定義總損失,利用總損失訓(xùn)練生成網(wǎng)絡(luò)。對于每張需要轉(zhuǎn)換的圖片,相當(dāng)于在生成網(wǎng)絡(luò)中進行一次前向傳遞,極大地縮短了圖片生成所消耗的時間。本文在TensorFlow中實現(xiàn)快速風(fēng)格遷移,對每個風(fēng)格分別訓(xùn)練一個簡單的卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)這些特定風(fēng)格的變換,利用訓(xùn)練好的生成網(wǎng)絡(luò)進行圖像風(fēng)格轉(zhuǎn)換。
1.2基于WGAN-GP的圖像去模糊與褶皺技術(shù)
WGAN-GP是基于Wasserstein距離實現(xiàn)的改進版生成對抗網(wǎng)絡(luò)[4]。其對SmoothL1損失函數(shù)進行了優(yōu)化:加入梯度懲罰GP項,避免梯度爆炸[5]。在保證生成器梯度變化的前提下,WGAN-GP能夠使模型在訓(xùn)練過程中表現(xiàn)得更加穩(wěn)定。本文借助端到端的U-NET網(wǎng)絡(luò)結(jié)構(gòu)可以直接生成圖像的優(yōu)勢,構(gòu)建待處理照片和生成圖片間的映射關(guān)系[5]。判別器與生成器相互協(xié)同對抗,使生成圖片的效果更佳。1.3基于NoGAN的DeOldify技術(shù)DeOldify是用于恢復(fù)和著色老照片的深度學(xué)習(xí)項目,它采用了效率更高的NoGAN訓(xùn)練方法[6]。相比于傳統(tǒng)的GAN,它可以將復(fù)原圖片的細(xì)節(jié)處理得更好、效果更加逼真,其對于保證視頻著色的穩(wěn)定性來說至關(guān)重要。目前,DeOldify擁有Artistic、Stable和Video三種型號,每種型號都有其關(guān)鍵的優(yōu)勢和劣勢,適用于不同用例。
1.4DFA過濾敏感詞算法
DFA(DeterministicFiniteAutomaton),即確定有窮自動機,其通過事件和當(dāng)前的狀態(tài)確定下一個狀態(tài)。算法核心為建立了大量以敏感詞為基礎(chǔ)的敏感詞樹,對文本中的文字進行敏感詞匹配時,首先,進行文本的預(yù)處理,過濾掉起干擾作用的無意義字符[7]。預(yù)處理完成后,匹配根節(jié)點是待檢測文本第一個字的樹,匹配成功后,對根節(jié)點的子樹依次進行檢索,最終確定待檢測文本是否為敏感詞。若是,進行文本拋棄;若否,檢測剩余文本。DFA過濾敏感詞算法在實現(xiàn)文字過濾時速度較快。
1.5數(shù)據(jù)庫存儲技術(shù)
數(shù)據(jù)庫技術(shù)是數(shù)據(jù)處理和信息管理系統(tǒng)的核心,主要用于大量數(shù)據(jù)的組織存儲問題。MySQL是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),擁有體積小、運行速度快、成本低的特點,適合此量級網(wǎng)站的使用。
2系統(tǒng)設(shè)計
本文選用自由、靈活、可擴展性強的flask框架創(chuàng)建并運行一個web應(yīng)用程序,它可以實現(xiàn)python后端代碼和keras的模型訓(xùn)練語法的對接,方便實現(xiàn)深度學(xué)習(xí)模型執(zhí)行上線定時任務(wù)。相比于flask的模板引擎jinjia2提供的前端結(jié)構(gòu),本文在flask中集成了Bootstrap開源前端框架,Bootstrap框架所提供的用戶界面組件可以創(chuàng)建更加整潔規(guī)范且生動的頁面。由于flask并沒有提供一個全面的表單驗證機制,為了保證代碼的簡潔和可維護性,本文使用了wtforms表單驗證插件進行對用戶請求數(shù)據(jù)的驗證。同時,在后端采用tensorflow框架以完成圖片處理工作。交互式圖片藝術(shù)網(wǎng)站功能結(jié)構(gòu)圖如圖2所示。功能設(shè)計如下:
2.1用戶注冊登錄用戶注冊登錄模塊實現(xiàn)了用戶的賬戶注冊和網(wǎng)站登錄功能。用戶在注冊界面輸入賬號、郵箱、密碼、電話等信息后,可以完成賬戶的注冊。在登錄界面,用戶輸入賬戶信息即可登錄網(wǎng)站,進入個人主頁。2.2個人中心個人中心模塊實現(xiàn)了作品上傳、查看留言、作品刪除等功能。用戶在選擇想要上傳的圖片后,輸入作者、日期及作品描述相關(guān)信息后完成作品上傳。用戶可以在個人中心讀取來自其他用戶的留言,并進行回復(fù)。
2.3圖片處理
2.3.1快速圖像風(fēng)格遷移??焖賵D像風(fēng)格遷移可以讓圖片擁有特定風(fēng)格畫派的明顯紋理結(jié)構(gòu)。用戶上傳待處理圖片后,選擇想要的圖片風(fēng)格。系統(tǒng)進行圖片風(fēng)格轉(zhuǎn)換,返回具有特定風(fēng)格的圖片。2.3.2修復(fù)模糊、褶皺圖片。模糊與褶皺圖片修復(fù)功能可以幫助用戶修復(fù)由于拍攝、存儲不當(dāng)而造成損傷的圖片,自動彌補圖像損失的細(xì)節(jié)。2.3.3圖片上色。黑白照片上色功能可實現(xiàn)老照片的色彩修復(fù),使黑白圖片變得更加鮮活,最大程度還原歷史場景。
2.4網(wǎng)絡(luò)聊天室
此模塊實現(xiàn)了多用戶在線交流功能。為了保證一個綠色健康的交流環(huán)境,網(wǎng)絡(luò)聊天室會對交流者的發(fā)言進行快速過濾,包含敏感詞匯的消息將被禁止顯示。2.5在線留言用戶在看到自己感興趣的作品后可以使用在線留言功能向作者留言,交流個人的感受并與作者探討。
3功能實現(xiàn)
3.1圖片上傳與展示
3.1.1圖片上傳。在前端使用ajax上傳圖片,需要創(chuàng)建FormData對象,改變ajax中的data屬性,在ajax中設(shè)置processData:false,contentType:false,async:false參數(shù)。后端的視圖函數(shù)接收用戶圖片上傳的請求后,調(diào)用flask_uploads.UploadSet對象的save函數(shù)接收并存儲圖像。為了節(jié)省數(shù)據(jù)庫空間并且保證網(wǎng)站的響應(yīng)速度,該視圖函數(shù)只將圖片的名稱和地址存入數(shù)據(jù)庫,圖片文件存儲在服務(wù)器本地文件夾中。3.1.2圖片展示。服務(wù)器讀取用戶上傳成功的圖片文件后,通過對圖片進行base64編碼操作,將處理后獲得的圖片流傳遞給前端,并在前端的img標(biāo)簽中以base64編碼形式添加圖片完成顯示。
3.2圖片處理
3.2.1快速圖像風(fēng)格遷移。用戶進入圖片風(fēng)格變換頁面,上傳原圖片,同時選擇濾鏡風(fēng)格,點擊“生成圖片”。系統(tǒng)獲取到上傳的圖片及濾鏡,開啟線程并調(diào)用訓(xùn)練好的圖像遷移模型對圖片進行風(fēng)格化處理。處理完成后,由系統(tǒng)自動檢測圖片生成路徑,返回生成圖片。如圖3所示。3.2.2圖片修復(fù)。。用戶進入照片修復(fù)頁面,上傳需要修復(fù)處理的圖片。從模糊圖片修復(fù)、褶皺圖片修復(fù)和黑白圖片上色三個功能中進行選擇,點擊“修復(fù)圖片”。服務(wù)器端在獲取上傳的圖片及修復(fù)信息后,開啟線程調(diào)用已經(jīng)訓(xùn)練完成的模型進行圖片修復(fù)。處理完成后,同樣由系統(tǒng)自動檢測圖片生成路徑,返回生成圖片。
3.3網(wǎng)絡(luò)聊天室的實現(xiàn)
本文使用Bootstarp前端框架設(shè)計前端聊天室頁面,使用websocket協(xié)議在客戶端與服務(wù)器之間建立起全雙工的通信方式,實現(xiàn)消息的發(fā)送和接收??蛻舳耸褂胹ocket.io.js,服務(wù)器端使用flask-socketio擴展。首先,在運行環(huán)境中用pip安裝flask-socketio。在前端引入socket.io.js,用戶輸入消息點擊發(fā)送按鈕,消息通過socket.emit發(fā)送到服務(wù)端。服務(wù)器端用@socketio.on裝飾器裝飾的函數(shù)接收和處理消息。在此事件處理中開啟敏感詞匯過濾線程,在線程中利用DFA算法實現(xiàn)敏感詞匯過濾,包含敏感詞匯的消息將被自動拋棄,合法的消息將被存入需發(fā)送給客戶端的message隊列,返回一個消息的html字符串,并對其進行渲染。通過設(shè)置broadcast=True,把消息廣播到與服務(wù)器建立websocket鏈接的所有客戶端??蛻舳送瑯佑胹ocket.on方法接收返回信息,將其添加到顯示區(qū)域。網(wǎng)絡(luò)聊天室交互界面如圖4所示。
3.4數(shù)據(jù)庫存儲技術(shù)的應(yīng)用
建立數(shù)據(jù)庫。在數(shù)據(jù)庫中建立相互關(guān)聯(lián)的數(shù)據(jù)表,以此實現(xiàn)數(shù)據(jù)存儲。(1)用戶注冊表。用戶注冊表主要用于存儲用戶賬號數(shù)據(jù),包含賬號、郵箱、密碼、電話等,ID作為唯一標(biāo)識。(2)作品信息表。作品信息表主要用于記錄用戶上傳作品及其相關(guān)信息,包含主題、作者、日期、描述等。(3)投票匯總表。投票匯總表主要用于對投票活動進行數(shù)據(jù)匯總和信息統(tǒng)計,包含:作者、主題、日期、得票數(shù)等。(4)留言記錄表。留言記錄表主要用于記錄留言信息,包含留言者、文本內(nèi)容、作者。
4結(jié)語
傳統(tǒng)圖片網(wǎng)站的單一功能已經(jīng)不能滿足藝術(shù)圖片愛好者的需求,基于人工智能深度學(xué)習(xí)的多元化圖片分享網(wǎng)站讓用戶可以用一種新的方式創(chuàng)作圖片,填補了藝術(shù)圖片方向上社區(qū)分享型網(wǎng)站的空白。自動分類、圖片配樂等功能的逐步完善,將會不斷增強用戶體驗,使網(wǎng)站更加智能化。
作者:穆衛(wèi)衛(wèi) 郭鵬博 單位:天津師范大學(xué)