【《基于網(wǎng)絡(luò)結(jié)構(gòu)搜索的圖像處理系統(tǒng)設(shè)計(jì)案例》12000字】_第1頁
【《基于網(wǎng)絡(luò)結(jié)構(gòu)搜索的圖像處理系統(tǒng)設(shè)計(jì)案例》12000字】_第2頁
【《基于網(wǎng)絡(luò)結(jié)構(gòu)搜索的圖像處理系統(tǒng)設(shè)計(jì)案例》12000字】_第3頁
【《基于網(wǎng)絡(luò)結(jié)構(gòu)搜索的圖像處理系統(tǒng)設(shè)計(jì)案例》12000字】_第4頁
【《基于網(wǎng)絡(luò)結(jié)構(gòu)搜索的圖像處理系統(tǒng)設(shè)計(jì)案例》12000字】_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第4章系統(tǒng)設(shè)計(jì)基于網(wǎng)絡(luò)結(jié)構(gòu)搜索的圖像處理系統(tǒng)設(shè)計(jì)案例目錄TOC\o"1-3"\h\u10296基于網(wǎng)絡(luò)結(jié)構(gòu)搜索的圖像處理系統(tǒng)設(shè)計(jì)案例 -1-73881系統(tǒng)設(shè)計(jì) -1-93531.1系統(tǒng)總體設(shè)計(jì) -2-216041.2網(wǎng)絡(luò)結(jié)構(gòu)搜索模塊設(shè)計(jì) -2-187191.2.1卷積單元及網(wǎng)絡(luò)的設(shè)計(jì) -3-49221.2.2搜索框架的設(shè)計(jì) -4-236661.3圖像理解模塊設(shè)計(jì) -5-268491.3.1結(jié)合注意力的Encoder-Decoder模型結(jié)構(gòu)設(shè)計(jì) -5-120911.3.2模型訓(xùn)練流程設(shè)計(jì) -7-280091.4圖像生成模塊設(shè)計(jì) -8-170571.1.1生成器判別器模型結(jié)構(gòu)設(shè)計(jì) -8-24031.1.2模型訓(xùn)練流程設(shè)計(jì) -9-165881.5風(fēng)格遷移模塊設(shè)計(jì) -10-68371.2.1特征矩陣提取與損失計(jì)算設(shè)計(jì) -10-253451.2.2模型訓(xùn)練流程設(shè)計(jì) -11-175911.6Web端設(shè)計(jì) -12-311601.7本章小結(jié) -13-282832系統(tǒng)實(shí)現(xiàn) 14118522.1系統(tǒng)訓(xùn)練環(huán)境 14184922.2系統(tǒng)開發(fā)環(huán)境 1449122.3基于NAO的模型獲取 15146512.3.1模型搜索訓(xùn)練流程 15324662.3.2搜索出的具體結(jié)構(gòu) 16249852.4圖像理解任務(wù)實(shí)現(xiàn) 16201132.1.1數(shù)據(jù)處理 16307032.1.2視覺注意力模型構(gòu)建訓(xùn)練具體實(shí)現(xiàn) 19231582.1.3基于束搜索的模型評估實(shí)現(xiàn) 20186072.5圖像生成任務(wù)實(shí)現(xiàn) 21265042.2.1數(shù)據(jù)處理 2134832.2.2條件對抗網(wǎng)絡(luò)模型構(gòu)建訓(xùn)練具體實(shí)現(xiàn) 2156252.2.3尋找指標(biāo)評價(jià)模型 22178692.6風(fēng)格遷移任務(wù)實(shí)現(xiàn) 23290502.6.1卷積神經(jīng)網(wǎng)絡(luò)模型構(gòu)建訓(xùn)練具體實(shí)現(xiàn) 23151422.6.2遇到的問題及嘗試 24157392.7實(shí)現(xiàn)特色總結(jié) 241系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)是指在設(shè)定可用的環(huán)境條件下,結(jié)合需求分析階段提出的系統(tǒng)需求,對整個(gè)系統(tǒng)進(jìn)行可行方案的設(shè)計(jì),并對方案進(jìn)行論證與性能預(yù)測的綜合性反饋過程。本章將從網(wǎng)絡(luò)結(jié)構(gòu)搜索單元的設(shè)計(jì)、各圖像處理任務(wù)子系統(tǒng)的設(shè)計(jì)以及Web網(wǎng)頁前端的設(shè)計(jì)等方面分別進(jìn)行敘述。1.1系統(tǒng)總體設(shè)計(jì)如圖1.1所示,本系統(tǒng)的開發(fā)訓(xùn)練環(huán)境為Linux系統(tǒng),最終的部署環(huán)境為Windows系統(tǒng)。網(wǎng)絡(luò)結(jié)構(gòu)搜索與圖像處理模塊都使用到Pytorch框架,在此之上,分別實(shí)現(xiàn)了結(jié)構(gòu)搜索、模型訓(xùn)練及網(wǎng)頁部署等模塊。各個(gè)模塊之間相互作用,構(gòu)建了最終的圖像處理服務(wù),實(shí)現(xiàn)了與用戶交互的功能。圖1.1系統(tǒng)總體架構(gòu)圖1.2網(wǎng)絡(luò)結(jié)構(gòu)搜索模塊設(shè)計(jì)1.2.1卷積單元及網(wǎng)絡(luò)的設(shè)計(jì)對于搜索空間,我們采用元卷積結(jié)構(gòu)來構(gòu)成,并把這些元結(jié)構(gòu)作為子模型疊加成一個(gè)有向無環(huán)圖,用其節(jié)點(diǎn)表示待搜索的局部計(jì)算,信息流向則用圖的邊來表示。局部計(jì)算的獨(dú)立參數(shù)在對應(yīng)節(jié)點(diǎn)被控制器選擇后才會(huì)激活,因此基于權(quán)重共享的思想,當(dāng)圖中所有子圖對應(yīng)的模型結(jié)構(gòu)共享參數(shù)時(shí),就能加速搜索的過程。本系統(tǒng)采用具有5個(gè)節(jié)點(diǎn)的有向無環(huán)圖表示單元內(nèi)發(fā)生的運(yùn)算,其中節(jié)點(diǎn)1和節(jié)點(diǎn)2作為整個(gè)卷積單元的輸入,控制器需要設(shè)計(jì)生成后續(xù)三個(gè)節(jié)點(diǎn)。對于每一個(gè)節(jié)點(diǎn),控制器都要做出以下兩種決策:①選擇先前的兩個(gè)節(jié)點(diǎn)作為當(dāng)前節(jié)點(diǎn)的輸入②選擇兩種運(yùn)算分別應(yīng)用于兩個(gè)采樣節(jié)點(diǎn)(本系統(tǒng)采用的5種運(yùn)算見表1.1)。在生成節(jié)點(diǎn)時(shí),我們把選中的操作應(yīng)用于對應(yīng)的節(jié)點(diǎn),再把兩個(gè)結(jié)果相加作為當(dāng)前節(jié)點(diǎn)的輸出。表1.1待搜索運(yùn)算表操作編號操作名稱0卷積核大小3×3的可分離卷積1卷積核大小5×5的可分離卷積2池化窗口大小3×3的平均池化3池化窗口大小3×3的最大池化4Identity圖1.2(a)描述了控制器生成節(jié)點(diǎn)的過程:節(jié)點(diǎn)1和節(jié)點(diǎn)2作為單元的輸入節(jié)點(diǎn),控制器不對它們作出決策;對于節(jié)點(diǎn)3,控制器采樣了兩次節(jié)點(diǎn)2并分別選擇卷積核大小為5×5的可分離卷積與等價(jià)操作,即實(shí)現(xiàn)如下計(jì)算,見公式(1.1):h3=sep_conv5×5(h2)對于節(jié)點(diǎn)4和5也執(zhí)行相似的操作。本例中除節(jié)點(diǎn)5都被作為至少另一個(gè)節(jié)點(diǎn)的輸入,因此唯一的松散端節(jié)點(diǎn)5就作為整個(gè)卷積單元的輸出,如果圖中有多個(gè)松散端,就把它們沿深度維度連接并把連接結(jié)果作為單元的最終輸出。圖1.2(b)種實(shí)線連邊表示被激活的連接,通過上述過程最終生成的卷積單元最終結(jié)構(gòu)如圖1.2(c)所示。規(guī)約單元與卷積單元設(shè)計(jì)相似,區(qū)別在于步長設(shè)置為2,此時(shí)輸出的空間維數(shù)將減少一半。在單元設(shè)計(jì)生成后,就可以通過單元的連接形成整體的結(jié)構(gòu),本系統(tǒng)采用多卷積單元與單規(guī)約單元交替的連接方式形成最終的模型結(jié)構(gòu),如圖1.3所示。圖1.2卷積單元設(shè)計(jì)生成示例圖1.3卷積單元連接方式示例1.2.2搜索框架的設(shè)計(jì)本系統(tǒng)做出搜索決策的控制器由編碼器、性能預(yù)測器與解碼器三部分組成。編碼器的原型為單層的LSTM模型,它負(fù)責(zé)將輸入的結(jié)構(gòu)轉(zhuǎn)換為字符序列,可以看作是離散結(jié)構(gòu)空間到連續(xù)空間的映射E:X→?,離散結(jié)構(gòu)的嵌入即為ex=E(x),此時(shí)LSTM的隱藏層狀態(tài)性能預(yù)測器與編碼器配合使用,它負(fù)責(zé)將每一個(gè)結(jié)構(gòu)x的連續(xù)嵌入表示ex映射到其在校驗(yàn)集上的性能sx。它首先對嵌入表示ex={h1,解碼器同樣以ex作為輸入,并以自回歸的方式進(jìn)行解碼。作為編碼器的逆操作,解碼器可以看作是離散空間到連續(xù)空間的映射D:?→X,從結(jié)構(gòu)的連續(xù)表示解碼字符序列,即x控制器訓(xùn)練過程中,其損失函數(shù)L可由兩部分構(gòu)成,分別為性能預(yù)測損失Lpp與結(jié)構(gòu)重構(gòu)損失Lrec,見公式(L=λx?其中λ1.3圖像理解模塊設(shè)計(jì)1.3.1結(jié)合注意力的Encoder-Decoder模型結(jié)構(gòu)設(shè)計(jì)本圖像理解子系統(tǒng)采用的模型以圖片作為輸入,相應(yīng)的圖片描述作為輸出,即:y={y1,?其中K為詞表大小,C為caption長度。1.3.1.1編碼器結(jié)構(gòu)設(shè)計(jì)編碼器部分我們采用了網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法搜索出的卷積神經(jīng)網(wǎng)絡(luò)模型作為提取圖片的特征向量的提取器。對于該模型,我們只保留了全連接層之前的部分,并用低維度的卷積層進(jìn)行特征向量的提取,此時(shí)解碼器可以通過聚焦全部特征矩陣的子集來有目的性地關(guān)注整體圖像的某些特定部分,以實(shí)現(xiàn)特征向量與圖片組成部分之間關(guān)系的對應(yīng)。該提取器生成L個(gè)向量,每個(gè)向量是針對圖像一部分信息的D維表示,即:a={a1,?,1.3.1.2結(jié)合注意力機(jī)制的解碼器結(jié)構(gòu)設(shè)計(jì)解碼器部分的設(shè)計(jì)采用了LSTM模型結(jié)構(gòu),每一層接收先前生成的單詞序列、上下文向量以及先前的隱藏層狀態(tài)作為輸入,在每一個(gè)時(shí)間步產(chǎn)生一個(gè)單詞作為輸出。采用的計(jì)算公式如下:itftct=ht=其中,it、ft、ot、ht、ct分別為LSTM的輸入門、遺忘門、輸出門、隱藏層狀態(tài)與單元狀態(tài),TD+m,n表示D+m維到n維的仿射變換,D為編碼器維度,m為嵌入維度,n為解碼器維度,E?對于LSTM模型的初始隱藏層狀態(tài)與單元狀態(tài),我們借助多層感知機(jī)通過提取出的圖片特征向量的均值進(jìn)行初始化:h0=fc0=f上下文向量z本質(zhì)上是t時(shí)刻圖片輸入某些部分的動(dòng)態(tài)表示結(jié)果,對其的計(jì)算,我們采用如下設(shè)計(jì):在圖片的不同相對位置上,我們都能提取出不同的向量對其進(jìn)行表示ai,i=1,?,L,此時(shí)我們可以采用注意力模型fatt結(jié)合上一個(gè)隱藏層狀態(tài)生成一個(gè)相對權(quán)重wi,這個(gè)權(quán)重用于表示當(dāng)前位置在所有位置的權(quán)重eti=fwti=exp(采取這種計(jì)算的原因是因?yàn)殡S著RNN輸出序列的推移,隱藏層的狀態(tài)也會(huì)變化,模型應(yīng)該聚焦于已經(jīng)生成的單詞序列。在所有位置的相對權(quán)重計(jì)算完成后,就可以將其與提取的向量表示相結(jié)合,利用注意力機(jī)制?進(jìn)行上下文向量z的計(jì)算:z=?({ai在注意力機(jī)制?中,為了更好地聚焦于圖片中的目標(biāo)物體,我們還允許相對權(quán)重wi之和可以不嚴(yán)格為1,即iwi≈βt=σ(?({ai},{wi最后,整個(gè)模型的損失函數(shù)被定義為兩部分,一部分為預(yù)測caption與數(shù)據(jù)集真實(shí)caption標(biāo)簽的CrossEntropy損失,另一部分為隨機(jī)Attention機(jī)制的Regularization損失,即:L=?log(P(y|x))+λiL(1?1.3.2模型訓(xùn)練流程設(shè)計(jì)本模型的訓(xùn)練流程從數(shù)據(jù)的處理開始,包括數(shù)據(jù)讀取、生成詞表、保存數(shù)據(jù)文件以及數(shù)據(jù)集構(gòu)建。數(shù)據(jù)處理完成后,就可以初始化模型或讀取已有檢查點(diǎn)進(jìn)行模型的訓(xùn)練與評估,迭代結(jié)束后保存評估BLEU值最高的模型,整個(gè)訓(xùn)練過程的流程圖如下圖1.4所示:圖1.4圖像理解模型訓(xùn)練流程圖1.4圖像生成模塊設(shè)計(jì)1.1.1生成器判別器模型結(jié)構(gòu)設(shè)計(jì)在第2章的相關(guān)技術(shù)介紹中,我們簡單敘述了條件生成式對抗模型的結(jié)構(gòu)及損失函數(shù)的計(jì)算,實(shí)驗(yàn)表明,在cGAN損失函數(shù)中加入傳統(tǒng)的損失函數(shù),如L1或L2損失,有助于幫助生成器在欺騙判別器的同時(shí),生成更加接近于真實(shí)標(biāo)簽的數(shù)據(jù),結(jié)合L1損失的cGAN如下所示:LL1(G)=Ex,y~G?=1.1.1.1生成器結(jié)構(gòu)設(shè)計(jì)基于Pix2Pix算法的圖像生成任務(wù)在本質(zhì)上可以被建模為一個(gè)高分辨率的輸入網(wǎng)絡(luò)到同樣高分辨率的輸入網(wǎng)絡(luò)的映射,由此我們很容易聯(lián)想到編碼器-解碼器網(wǎng)絡(luò)結(jié)構(gòu)。事實(shí)上,對于生成器結(jié)構(gòu)的設(shè)計(jì),之前的許多工作也都的確采取了這種結(jié)構(gòu)用于生成器的設(shè)計(jì),這種結(jié)構(gòu)的特點(diǎn)是圖片在輸入網(wǎng)絡(luò)之后,隨著網(wǎng)絡(luò)中信息的流動(dòng),先是被一步一步地進(jìn)行下采樣,在到達(dá)瓶頸層之后,操作又轉(zhuǎn)變?yōu)樯喜蓸?,這樣對圖片就實(shí)現(xiàn)了高分辨率到低分辨率再到高分辨率的處理過程。對于某些輸入輸出之間包含大量的低層信息共享的圖像處理任務(wù),如圖像翻譯任務(wù)來說,這種信息流遍歷網(wǎng)絡(luò)所有層的結(jié)構(gòu)能實(shí)現(xiàn)不錯(cuò)的效果,但對于某些輸入輸出共享更多高層信息的任務(wù)來說,這樣的信息流動(dòng)過程可能會(huì)影響處理的效率。在這種考慮下,本子系統(tǒng)生成器設(shè)計(jì)采用了如圖1.5所示的U-net結(jié)構(gòu):圖1.5帶有殘差連接的U-net結(jié)構(gòu)這種結(jié)構(gòu)實(shí)際上是編碼器-解碼器結(jié)構(gòu)的一種變體,在其基礎(chǔ)上,編碼器與解碼器區(qū)域內(nèi)鏡像對稱的層,即第i層與第n-i層之間添加了殘差連接,這樣就能使生成器在信息流動(dòng)的過程中能夠避開必經(jīng)的信息瓶頸。其次,生成器在編碼器上采樣部分采用了網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法搜索出的卷積單元構(gòu)成的全卷積(FullyconvolutionalalNetworks,F(xiàn)CN)結(jié)構(gòu),與傳統(tǒng)的CNN結(jié)構(gòu)相比,F(xiàn)CN用卷積層去替換CNN卷積層最后連接的全連接層,后者輸出的往往是概率向量,常用作分類等任務(wù),而前者就可以對圖像進(jìn)行像素級的分類,因此本生成器設(shè)計(jì)采用FCN結(jié)構(gòu),旨在學(xué)習(xí)到更多的語義信息。1.1.1.2判別器結(jié)構(gòu)設(shè)計(jì)由于整體cGAN模型的損失函數(shù)加入了L1損失,而L1對于低頻信息能夠比較精確地捕捉,因此對于判別器結(jié)構(gòu)的設(shè)計(jì),我們應(yīng)當(dāng)更多地關(guān)注高頻結(jié)構(gòu)的建模以緩解L1損失在圖像生成任務(wù)上易產(chǎn)生模糊圖像結(jié)果的情況,而把對低頻結(jié)構(gòu)建模的正確性交由L1損失去處理。本圖像生成子系統(tǒng)判別器的設(shè)計(jì)采用了patchGAN結(jié)構(gòu),更多地聚焦于圖像的局部塊建模。與傳統(tǒng)GAN判別器的結(jié)構(gòu)不同,傳統(tǒng)GAN判別器的輸出只為單純的True或False,而patchGAN判別器的最終輸出為一個(gè)大小為N×N的patch矩陣,本子系統(tǒng)內(nèi)N取30,這個(gè)矩陣的元素均為1或0,并與形狀相同的全1矩陣進(jìn)行l(wèi)oss計(jì)算,使用這種結(jié)構(gòu)可以擴(kuò)大對輸入圖像的感受野,并且可以單純地使用卷積層的疊加來實(shí)現(xiàn)。與此同時(shí),如果假定給定圖像的像素獨(dú)立度大于預(yù)設(shè)定的patch大小,我們就可以把圖像建模成一個(gè)馬爾可夫隨機(jī)場,這種設(shè)定在之前的工作里也用于圖像風(fēng)格問題的求解,因此該模型設(shè)計(jì)也可以看作是一種紋理風(fēng)格的建模形式REF_Ref32483\r\h[17]。1.1.2模型訓(xùn)練流程設(shè)計(jì)本模型的訓(xùn)練流程同樣從數(shù)據(jù)的處理開始,包括數(shù)據(jù)集的讀取與正則化、圖片的隨機(jī)剪裁與翻轉(zhuǎn)等數(shù)據(jù)增強(qiáng)工作。在數(shù)據(jù)處理完成后,進(jìn)行生成器G與判別器D模型的初始化,并在每一輪迭代中依次進(jìn)行生成器與判別器模型的訓(xùn)練,迭代結(jié)束后對生成器與判別器模型分別進(jìn)行保存,在推斷時(shí)利用生成器進(jìn)行圖片生成,整個(gè)訓(xùn)練過程的流程圖如圖1.6所示。圖1.6圖像生成模型訓(xùn)練流程圖1.5風(fēng)格遷移模塊設(shè)計(jì)1.2.1特征矩陣提取與損失計(jì)算設(shè)計(jì)對于風(fēng)格遷移子系統(tǒng)模型的輸入,我們需要分別提取內(nèi)容圖片的語義內(nèi)容以及風(fēng)格圖片的風(fēng)格信息加以融合,形成目標(biāo)輸出。1.2.1.1內(nèi)容特征矩陣提取與損失計(jì)算設(shè)計(jì)圖片特征矩陣的提取通過卷積單元來實(shí)現(xiàn),本子系統(tǒng)使用網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法搜索出的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖片特征矩陣的提取。對于一個(gè)包含Nl個(gè)濾波器的卷積層來說,它可以從輸入矩陣中提取Nl個(gè)特征映射矩陣,假定每個(gè)特征映射的大小為Ml,那么輸入的內(nèi)容圖片在本卷積層l中被抽取的信息就會(huì)被存儲(chǔ)在矩陣Fl??Nl×MlLcontent(p在完成內(nèi)容損失函數(shù)的設(shè)計(jì)后,通過該損失的反向傳播過程,可以計(jì)算出其相對于生成圖片x表示的梯度,見公式(1.18),并根據(jù)損失梯度進(jìn)行目標(biāo)圖片針對內(nèi)容的優(yōu)化,直到生成圖片x在某卷積層中與內(nèi)容圖片p有近似相同的內(nèi)容特征。?Lcontent?之前的許多工作還表明,隨著卷積神經(jīng)網(wǎng)絡(luò)處理層次的深入,網(wǎng)絡(luò)對輸入圖片的表示在視覺外觀方面保持較精確建模的同時(shí),能夠捕獲到更加敏感的信息,因此本系統(tǒng)對于內(nèi)容特征矩陣的提取更多地關(guān)注于網(wǎng)絡(luò)模型的較高層表示,而不拘泥于圖片精確像素值的重構(gòu)REF_Ref32650\r\h[18,REF_Ref32653\r\h19]。1.2.1.2風(fēng)格特征矩陣提取與損失計(jì)算設(shè)計(jì)風(fēng)格特征矩陣的提取同樣通過卷積單元來實(shí)現(xiàn),為了得到卷積層內(nèi)濾波器提取信息的相關(guān)性,我們引入Gram矩陣:Gijl=其中特征矩陣相關(guān)性Gijl??Nl×用a與x分別表示風(fēng)格圖片與生成圖片,并用Al與Gl分別代表其在第l層基于Gram矩陣的風(fēng)格特征提取表示,那么第l卷積層風(fēng)格表示部分的損失函數(shù)可由公式(El=1在此基礎(chǔ)上,風(fēng)格特征矩陣的總體損失函數(shù)可由公式(1.21)表示:Lstyle(a其中,wl為第l同樣地,通過單層風(fēng)格損失El的反向傳播過程,也可以計(jì)算出其相對于生成圖片x表示的梯度,見公式(1.22),從而借助損失梯度來進(jìn)行目標(biāo)圖片針對風(fēng)格方面的優(yōu)化?El?1.2.2模型訓(xùn)練流程設(shè)計(jì)風(fēng)格遷移任務(wù)的訓(xùn)練流程大致如下:首先進(jìn)行內(nèi)容圖片與生成圖片的處理,然后生成初始的目標(biāo)圖片用于后續(xù)的優(yōu)化,接著在定義完內(nèi)容風(fēng)格選層及權(quán)重后就可以在閉包內(nèi)進(jìn)行模型損失的計(jì)算,并使用優(yōu)化器通過反向傳播計(jì)算出的梯度對圖片進(jìn)行調(diào)整,使其在卷積層內(nèi)的特征提取在特定方面接近于內(nèi)容與風(fēng)格圖片,直到達(dá)到迭代輪數(shù),上述過程的流程圖如圖1.7所示。圖1.7風(fēng)格遷移任務(wù)訓(xùn)練流程圖1.6Web端設(shè)計(jì)為了進(jìn)行直觀的結(jié)果展示,本系統(tǒng)將模型部署到了本地的Web端,用以提供API及前端界面,將模型的推斷功能等進(jìn)行封裝,只對用戶提供簡單易操作的接口,如圖1.8所示。本系統(tǒng)Web部署的流程較為簡潔清晰,采用Flask+Vue.js的框架進(jìn)行編寫。用戶輸入的需處理的圖片通過網(wǎng)頁端發(fā)送的GET/POST請求經(jīng)Flask提供給后端圖片處理服務(wù),在處理結(jié)束后網(wǎng)頁端再次通過請求得到返回的處理結(jié)果作為輸出,并在前端界面上進(jìn)行最終結(jié)果的展示。圖1.8圖像處理系統(tǒng)前端部署流程圖1.7本章小結(jié)本章對基于網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法的圖像處理系統(tǒng)從整體到子模塊的設(shè)計(jì)進(jìn)行了詳細(xì)的敘述。首先介紹了系統(tǒng)的總體設(shè)計(jì);接著敘述了網(wǎng)絡(luò)機(jī)構(gòu)搜索子系統(tǒng)的設(shè)計(jì),包括搜索空間中卷積單元與網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)以及搜索框架的整體設(shè)計(jì);然后從圖像理解、圖像生成和風(fēng)格遷移三個(gè)子系統(tǒng)入手,分別詳細(xì)地介紹了其結(jié)合注意力機(jī)制的Encoder-Decoder模型結(jié)構(gòu)設(shè)計(jì)、生成器判別器模型結(jié)構(gòu)設(shè)計(jì)、特征矩陣提取與損失計(jì)算設(shè)計(jì)以及各任務(wù)模型訓(xùn)練的流程設(shè)計(jì);最后為了對模型的推斷結(jié)果進(jìn)行展示,還簡單地介紹了Web前端的設(shè)計(jì)。2系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)是將系統(tǒng)設(shè)計(jì)部分完成的理論成果轉(zhuǎn)化為實(shí)際可運(yùn)行的系統(tǒng)成果的過程。本章將從系統(tǒng)的訓(xùn)練開發(fā)環(huán)境、模型的獲取與最終結(jié)構(gòu)、各圖像處理任務(wù)的具體實(shí)現(xiàn)方法到流程對整個(gè)圖像處理系統(tǒng)的實(shí)現(xiàn)進(jìn)行詳細(xì)闡述。2.1系統(tǒng)訓(xùn)練環(huán)境系統(tǒng)訓(xùn)練階段主要完成了基于網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法對模型結(jié)構(gòu)的搜索和圖像處理任務(wù)模型的訓(xùn)練、評估優(yōu)化工作。由于訓(xùn)練過程中模型對計(jì)算資源的需求較為嚴(yán)格,個(gè)人電腦無法完成滿足系統(tǒng)訓(xùn)練階段的要求,因此系統(tǒng)的訓(xùn)練環(huán)境為Linux服務(wù)器,環(huán)境配置為64位Linux系統(tǒng),并配以足夠的可用顯存與磁盤空間。2.2系統(tǒng)開發(fā)環(huán)境基于網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法的圖像處理系統(tǒng)基于Pytorch框架開發(fā),開發(fā)語言為Python3,Web前后端的應(yīng)用框架分別為Flask與Vue.js,開發(fā)主要是在Windows10和CentOS7.6操作系統(tǒng)上進(jìn)行,詳細(xì)信息見表5-1。表2.1系統(tǒng)開發(fā)軟件需求表名稱版本功能Windows10操作系統(tǒng)LinuxCentOS7.6操作系統(tǒng)Pycharm2020.3集成開發(fā)環(huán)境VScode1.56.0文本編輯器Python3.6開發(fā)語言Flask1.1.2Web框架Jinja22.11.3模板引擎Vue.js1.1.6Web框架Pytorch1.0.0機(jī)器學(xué)習(xí)框架由于系統(tǒng)在搜索與訓(xùn)練階段對于計(jì)算資源的需求較為嚴(yán)格,因此模型的搜索與訓(xùn)練均在Linux服務(wù)器端進(jìn)行,具體的硬件環(huán)境資源見表5-2。表2.2系統(tǒng)開發(fā)硬件環(huán)境資源表硬件資源配置需求CPU6核心GPUTITANX顯存大小12G硬盤空間大小10G2.3基于NAO的模型獲取本系統(tǒng)應(yīng)用于具體圖像處理任務(wù)的模型結(jié)構(gòu)基于網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法獲取,本節(jié)將從利用網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法進(jìn)行模型搜索訓(xùn)練的具體流程,與搜索出的具體結(jié)構(gòu)分別進(jìn)行詳細(xì)介紹。2.3.1模型搜索訓(xùn)練流程在第1.3.2小節(jié)中,我們詳細(xì)介紹了本系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的整體框架設(shè)計(jì),包括編碼器-性能預(yù)測器-解碼器結(jié)構(gòu)的設(shè)計(jì)與訓(xùn)練過程中損失函數(shù)的設(shè)計(jì),本節(jié)我們將結(jié)合以上部分的內(nèi)容,詳細(xì)敘述模型的搜索訓(xùn)練流程。首先我們隨機(jī)生成1000個(gè)模型結(jié)構(gòu)并將其加入到結(jié)構(gòu)池,對每一個(gè)結(jié)構(gòu)都進(jìn)行編碼成連續(xù)空間表示、訓(xùn)練與性能評估,按模型性能準(zhǔn)確率進(jìn)行排序,分別把排序后的結(jié)構(gòu)及對應(yīng)的性能分別寫入文件arch_pool與arch_pool_pref保存。隨后我們進(jìn)行編碼器-性能預(yù)測器-解碼器結(jié)構(gòu)控制器的訓(xùn)練,使用結(jié)構(gòu)及性能的數(shù)據(jù)對作為輸入數(shù)據(jù),訓(xùn)練的最終目的為最小化公式(1.2)中的損失函數(shù)L。與此同時(shí)結(jié)合性能,我們在結(jié)構(gòu)池中挑選出100個(gè)最優(yōu)結(jié)構(gòu),并在這些當(dāng)前最優(yōu)結(jié)構(gòu)的基礎(chǔ)上,利用控制器中性能預(yù)測器函數(shù)f基于編碼器LSTM隱藏層狀態(tài)的梯度派生出新的結(jié)構(gòu)表示,見公式(2.1):ht’=h將這些派生出的新結(jié)構(gòu)的嵌入經(jīng)解碼成原結(jié)構(gòu)后加入結(jié)構(gòu)池,重復(fù)上述評估、訓(xùn)練與派生的迭代過程4次左右,當(dāng)編碼器與解碼器都被訓(xùn)練至收斂時(shí),我們就可以在結(jié)構(gòu)池中選擇性能最優(yōu)的結(jié)構(gòu)作為搜索出的最終結(jié)構(gòu),并能夠?qū)⑵湓趫D像分類任務(wù)的Cifar或Imagenet數(shù)據(jù)集上進(jìn)行基礎(chǔ)訓(xùn)練。執(zhí)行上述網(wǎng)絡(luò)搜索算法的整體流程如算法1所示。算法2.1:網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法輸入:用于訓(xùn)練NAO模型的初始候選結(jié)構(gòu)集合X,等待評估的初始候選結(jié)構(gòu)集合Xeval構(gòu)性能集S=φ,種子結(jié)構(gòu)數(shù)K,步長η,迭代輪數(shù)輸出:集合X中性能最優(yōu)的結(jié)構(gòu)forl=1,?,L①訓(xùn)練所有結(jié)構(gòu)x∈X充S:S=S②使用結(jié)構(gòu)集X與性能集S,通過最小化模型損失函數(shù)(1.2)訓(xùn)練控制器,包括編碼器E、性能預(yù)測器f與解碼器D③從結(jié)構(gòu)集X中挑選性能最優(yōu)的K個(gè)結(jié)構(gòu),組成種子結(jié)構(gòu)集X④對于種子集中的所有結(jié)構(gòu)x∈Xseed,使用編碼器E與性能預(yù)測器f,通過公式(斷成更優(yōu)的表示ex‘,組成⑤使用解碼器D從上述連續(xù)向量表示ex‘中解碼出優(yōu)化結(jié)構(gòu)x',將新結(jié)構(gòu)的解碼輸出作為{D(ex‘endfor2.3.2搜索出的具體結(jié)構(gòu)本系統(tǒng)基于圖像分類任務(wù),采用結(jié)合權(quán)重共享思想的網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法,在設(shè)計(jì)好的元結(jié)構(gòu)搜索空間搜索出的普通卷積單元與規(guī)約池化單元的具體結(jié)構(gòu)分別如下圖2.1(a)及2.1(b)所示,將圖中的兩種單元按照1.3.1小節(jié)卷積單元的連接方式進(jìn)行堆疊,就能形成能夠用于處理圖像分類基礎(chǔ)任務(wù)的最終模型結(jié)構(gòu),并可以基于Cifar與Imagenet數(shù)據(jù)集對其進(jìn)行訓(xùn)練。2.4圖像理解任務(wù)實(shí)現(xiàn)2.1.1數(shù)據(jù)處理本系統(tǒng)的圖像理解任務(wù)子系統(tǒng)采用的數(shù)據(jù)集為MicrosoftCommonObjectsinContext(MSCOCO),常被應(yīng)用于圖像識別、分割與檢測等多種任務(wù)。數(shù)據(jù)處理時(shí)首先從圖片描述的json文件中讀取圖片路徑與相應(yīng)的圖像caption,并記錄caption中的詞頻處理成該任務(wù)的詞表。詞表中序號的首位為’<pad>’,后三位分別為’<unk>’,’<start>’,’<end>’,其中’<pad>’用于配合caption長度實(shí)現(xiàn)后續(xù)序列的長度統(tǒng)圖2.1搜索單元結(jié)果結(jié)構(gòu)圖一,它把長度不足預(yù)設(shè)最大長度的caption補(bǔ)全至最大長度,這里的最大長度我們設(shè)定為50,’<unk>’用于表示詞頻低于記錄最小值5的單詞,’<start>’和’<end>’分別用于標(biāo)記序列的開始與結(jié)束。每張圖片最多保留5種caption用于后續(xù)的評估,圖片數(shù)據(jù)通過h5py文件保存,圖片caption與caption長度通過json文件保存,三類文件內(nèi)容項(xiàng)一一對應(yīng),用于構(gòu)建數(shù)據(jù)集進(jìn)行訓(xùn)練與評估,在數(shù)據(jù)集的構(gòu)建過程中,圖片caption、caption長度與對應(yīng)圖片索引之間有模5的關(guān)系。2.1.2視覺注意力模型構(gòu)建訓(xùn)練具體實(shí)現(xiàn)在實(shí)現(xiàn)了數(shù)據(jù)的處理之后,就可以進(jìn)行結(jié)合注意力的Encoder-Decoder模型結(jié)構(gòu)的構(gòu)建。編碼器中圖片在經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)處理后還要傳入一個(gè)AdaptiveAvgPool2d模塊進(jìn)行平均池化,其目的是將不同大小的圖片編碼成相同尺寸的向量提取,方便后續(xù)的處理,經(jīng)過下采樣的圖片表示被統(tǒng)一縮放成(14,14,736)尺寸,其中14為預(yù)設(shè)定的encoded_image_size,736為模型的encoder_dim,這個(gè)統(tǒng)一尺寸的圖片表示與對應(yīng)圖片的caption及captionlength一起被解碼器接收。解碼器首先將編碼器提取的圖片向量表示扁平化為(196,736)大小,即把原本的enc_image_size×enc_image_size轉(zhuǎn)為一維的像素?cái)?shù)目表示num_pixels。對于圖片表示、圖片caption和caption長度數(shù)據(jù)對,我們將它按照caption長度降序排列,用于減少后續(xù)在訓(xùn)練過程中處理補(bǔ)全長度詞’<pad>’所帶來的無意義的計(jì)算資源浪費(fèi),并把所有captionlength減一作為解碼階段的decodelength,因?yàn)榈竭_(dá)’<end>’位置時(shí)該句的解碼工作就結(jié)束了。在完成上述工作后,我們進(jìn)行詞嵌入,將圖片caption由詞表空間大小嵌入到512維的向量空間中,并使用多層感知機(jī)以編碼器輸出作為輸入對LSTM模型的初始隱藏層狀態(tài)與單元狀態(tài)進(jìn)行初始化。在解碼階段,我們首先使用由多層感知機(jī)實(shí)現(xiàn)的注意力模型進(jìn)行每個(gè)位置相對權(quán)重alpha的計(jì)算,再結(jié)合注意力機(jī)制與已提取的圖片向量表示計(jì)算出上下文向量attention_weighted_encoding,并用門控單元gate_f_beta對上下文向量進(jìn)行加權(quán)用來更好地對圖片中的目標(biāo)物體進(jìn)行識別。解碼過程主要基于時(shí)間步的迭代進(jìn)行,并選擇使用Pytorch提供的LSTMCell結(jié)合for循環(huán)進(jìn)行實(shí)現(xiàn),避免直接使用LSTM模塊整體迭代時(shí)無法在每一個(gè)解碼步驟執(zhí)行注意力機(jī)制,把上下文向量和嵌入向量連接與隱藏層狀態(tài)、記憶單元狀態(tài)一同輸入LSTMCell后就能完成一次解碼步驟的執(zhí)行,實(shí)現(xiàn)的具體LSTM單元結(jié)構(gòu)如圖2.3所示。訓(xùn)練時(shí),對于解碼出的caption結(jié)果與真實(shí)的圖片caption標(biāo)簽,首先使用pack_padded_sequence去除’<pad>’占位符的冗余,本質(zhì)上是將序列按列壓縮,去除冗余的過程如圖2.2所示:圖2.2pack_padded_sequence使用原理在去除冗余后計(jì)算它們之間的交叉熵?fù)p失并結(jié)合隨機(jī)注意力機(jī)制的正則化損失得到模型的整體損失,就可以進(jìn)行反向傳播與權(quán)重更新。實(shí)驗(yàn)證明,模型損失與BLEU值不是總是呈正相關(guān)的,因此即使損失持續(xù)下降,也應(yīng)該在BLEU出現(xiàn)下降情況時(shí)盡早停止訓(xùn)練,這里使用epochs_since_improvement記錄從上次BLEU值提升后迭代經(jīng)歷的輪數(shù),超過20輪停止訓(xùn)練。在計(jì)算模型BLEU時(shí),涉及到給定多個(gè)captionreferences與單個(gè)captionhypotheses的比較,此處使用nltk庫的corpus_bleu模塊實(shí)現(xiàn)。2.1.3基于束搜索的模型評估實(shí)現(xiàn)模型評估過程中對圖片數(shù)據(jù)的處理與訓(xùn)練過程相似,由于采用束大小為K的束搜索方式,因此要在經(jīng)過圖片扁平化及前面的一系列處理后將其擴(kuò)展為k維,每個(gè)預(yù)測序列從’<start>’開始解碼,當(dāng)序列解碼到’<end>’時(shí)將其從解碼隊(duì)列中移除,用小于k的整型數(shù)s表示隊(duì)列中未完成解碼的序列數(shù),解碼時(shí)使用單層LSTMCell進(jìn)行預(yù)測經(jīng)topk選擇處理后逐詞將其加入到序列當(dāng)中,當(dāng)序列長度超過最大長度50時(shí)跳出解碼循環(huán)。利用模型推斷時(shí),還使用了matplotlib.pyplot庫函數(shù)進(jìn)行了位置相對權(quán)重alpha的可視化,即用不同時(shí)刻整張圖片局部位置相對權(quán)重的大小控制該位置生成圖像的透明度,以此把當(dāng)前時(shí)刻解碼單詞與圖片的部分區(qū)域相對應(yīng)。2.5圖像生成任務(wù)實(shí)現(xiàn)2.2.1數(shù)據(jù)處理本系統(tǒng)的圖像生成任務(wù)子系統(tǒng)采用的數(shù)據(jù)集為CenterforMachinePerception(CMP)Facades數(shù)據(jù)集,該數(shù)據(jù)集內(nèi)包含來自世界各地不同風(fēng)格的建筑物圖片,標(biāo)簽為人工注釋的草圖。數(shù)據(jù)處理時(shí)首先進(jìn)行數(shù)據(jù)集的讀取并執(zhí)行正則化,隨后進(jìn)行數(shù)據(jù)增強(qiáng),包括將圖片重設(shè)定為286×286并隨機(jī)剪裁成256×256尺寸,以及對圖片進(jìn)行隨機(jī)水平翻轉(zhuǎn),以避免模型在訓(xùn)練的過程中出現(xiàn)過擬合的現(xiàn)象REF_Ref150\r\h[20]。2.2.2條件對抗網(wǎng)絡(luò)模型構(gòu)建訓(xùn)練具體實(shí)現(xiàn)圖像理解任務(wù)子系統(tǒng)生成器模型的下采樣部分由網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法搜索出的卷積單元組合而成,上采樣部分由對應(yīng)的反卷積函數(shù)組成。對于生成器下采樣部分每個(gè)卷積單元后的激活函數(shù),我們采用固定值為0.2的LeakyReLU函數(shù),避免在輸入負(fù)值時(shí)出現(xiàn)一階導(dǎo)數(shù)恒為0的“DeadNeuron”現(xiàn)象,上采樣部分的反卷積函數(shù)之后,還要進(jìn)行批歸一化與比率為0.5的Dropout以避免過擬合現(xiàn)象等的發(fā)生。與此同時(shí),由于采用U-net結(jié)構(gòu),編碼器與解碼器區(qū)域?qū)ΨQ的第i層與第n-i層還要添加殘差連接來完成信息的共享,這個(gè)過程我們通過將二者沿原channel維度連接來實(shí)現(xiàn)。256×256的輸入圖片在經(jīng)過上述信息流動(dòng)過程后重新恢復(fù)成相同尺寸的圖片作為整個(gè)模型的目標(biāo)輸出。判別器結(jié)構(gòu)同樣采用卷積單元實(shí)現(xiàn),每個(gè)單元執(zhí)行后的結(jié)果也要進(jìn)行批歸一化與比率為0.5的Dropout。它接收生成器G生成的圖片與輸入圖像的真實(shí)標(biāo)簽并把二者沿原channel維度連接,在經(jīng)過中間卷積單元后由Sigmoid函數(shù)處理成30×30的patch矩陣用于判別器loss的計(jì)算,生成器與判別器整個(gè)信息流動(dòng)過程分別如圖2.3(a)與圖2.3(b)所示。模型訓(xùn)練時(shí),在數(shù)據(jù)集處理構(gòu)建并且本輪迭代生成器給出生成結(jié)果后,判別器首先會(huì)根據(jù)輸入圖片與其對應(yīng)的真實(shí)標(biāo)簽產(chǎn)生一個(gè)patch矩陣,并將它與形狀相同的全1矩陣進(jìn)行交叉熵?fù)p失函數(shù)的計(jì)算作為D_real_loss,其后又會(huì)根據(jù)輸入圖片與生成器的生成結(jié)果按相同方式計(jì)算出D_fake_loss,并把二者的均值作為判別器的最終loss圖2.3生成器判別器信息流動(dòng)過程進(jìn)行反向傳播,采用Adam優(yōu)化器進(jìn)行權(quán)值的更新。而對于生成器,它會(huì)使用判別器權(quán)值更新后對輸入圖片與生成圖片計(jì)算出的交叉熵?fù)p失結(jié)合生成圖片與真實(shí)標(biāo)簽的L1損失作為生成器的最終損失,進(jìn)行生成器的訓(xùn)練。上述過程迭代20輪后,模型基本收斂,此時(shí)生成器就可以單獨(dú)用于目標(biāo)圖片的生成。2.2.3尋找指標(biāo)評價(jià)模型圖像生成任務(wù)模型作為生成式模型,其性能評估具有一定的挑戰(zhàn)性,本系統(tǒng)選擇從感知哈希算法及三通道直方圖算法相似度兩方面對模型進(jìn)行評價(jià)。感知哈希算法將首先將要處理的圖片轉(zhuǎn)化為浮點(diǎn)型的大小為32×32的灰度圖,然后進(jìn)行離散余弦變換(DiscreteCosineTransform,DCT)得到原圖片的去相關(guān)矩陣,并對其使用掩碼操作只保留左上角的8×8矩陣,用以代表圖片的最低分辨率。對于該矩陣的每一個(gè)元素,將它與矩陣所有元素的均值作比較,就能得到一個(gè)長度為64的哈希序列,將輸入圖片與生成圖片經(jīng)感知哈希算法得到的哈希序列進(jìn)行按位比對,對能得到兩張圖片對的最終相似度,哈希值越小,代表相似度越高。三通道直方圖算法將圖片分離為RGB三個(gè)通道,對于每一個(gè)通道,通過calcHist函數(shù)將其映射到像素值為0到255的256個(gè)bin上,即分別統(tǒng)計(jì)每個(gè)像素值所對應(yīng)的像素個(gè)數(shù),隨后計(jì)算輸入圖片與生成圖片每個(gè)通道直方圖的重合度并求出平均值,用該均值作為圖片間的相似度標(biāo)準(zhǔn)。2.6風(fēng)格遷移任務(wù)實(shí)現(xiàn)2.6.1卷積神經(jīng)網(wǎng)絡(luò)模型構(gòu)建訓(xùn)練具體實(shí)現(xiàn)風(fēng)格遷移任務(wù)子系統(tǒng)采用網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法搜索出的卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),并基于該網(wǎng)絡(luò)的卷積結(jié)構(gòu)進(jìn)行圖片特征矩陣的提取。由于該模型針對Imagenet數(shù)據(jù)集訓(xùn)練,因此對于內(nèi)容圖片與風(fēng)格圖片,我們首先使用Imagenet數(shù)據(jù)集均值標(biāo)準(zhǔn)化后進(jìn)行訓(xùn)練,在圖片保存前再去除。生成圖片的初始化采用內(nèi)容圖片的拷貝,完成內(nèi)容及風(fēng)格提取層的選取后,分別使用MSELoss以及經(jīng)Gram矩陣計(jì)算后的MSEloss,結(jié)合內(nèi)容及風(fēng)格權(quán)重超參數(shù)α與β進(jìn)行內(nèi)容

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論