管紹春 向宇
摘要:隨著機器學(xué)習(xí)到深度學(xué)習(xí)的拓展,基于深度學(xué)習(xí)的多種網(wǎng)絡(luò)模式和學(xué)習(xí)框架使得深度學(xué)習(xí)可以有更多更加復(fù)雜的研究方向。其中生成對抗網(wǎng)絡(luò)(GAN)是Ian J. Goodfellow等人于2014年提出的一個通過對抗過程估計生成模型的新框架,被廣泛應(yīng)用于圖片風(fēng)格轉(zhuǎn)移,超分辨率,圖像補全,去噪等領(lǐng)域。本研究意在將生成對抗網(wǎng)絡(luò)的服裝風(fēng)格轉(zhuǎn)移作為技術(shù)基礎(chǔ),引入到服裝文化的傳承保護和發(fā)揚的具體應(yīng)用中,將服裝風(fēng)格轉(zhuǎn)換的時效性、多樣性,契合深度學(xué)習(xí)來更好的為人們服務(wù)。為此本研究融合圖像分割和圖像風(fēng)格遷移兩個研究領(lǐng)域的內(nèi)容,將原始輸入的圖像根據(jù)設(shè)定進行分割,然后基于分割結(jié)果進行相應(yīng)的全局或局部風(fēng)格遷移。
關(guān)鍵詞:深度學(xué)習(xí);生成對抗網(wǎng)絡(luò);圖像風(fēng)格遷移;圖像識別分割
中圖分類號:G434? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)26-0191-03
開放科學(xué)(資源服務(wù))標識碼(OSID):
1序言
1.1研究的背景和意義
圖像的內(nèi)容和風(fēng)格聽上去好像模糊難辨,理論上來說沒有無風(fēng)格的內(nèi)容,也沒有無內(nèi)容而單獨存在的風(fēng)格。所以從藝術(shù)的角度很難說清圖像的內(nèi)容和風(fēng)格到底有什么界限,也很難說圖片的哪部分屬于內(nèi)容,哪些東西又該是風(fēng)格。而從統(tǒng)計學(xué)角度或者數(shù)學(xué)角度來說,圖像的內(nèi)容和風(fēng)格是可以分離開的,然后將不同圖片的風(fēng)格和不同圖片的內(nèi)容結(jié)合從而實現(xiàn)圖像風(fēng)格的遷移。已有的圖像風(fēng)格遷移辦法有很多,本研究選擇cycleGAN這一生成對抗網(wǎng)絡(luò)GAN的變種作為風(fēng)格轉(zhuǎn)移處理的網(wǎng)絡(luò)模型,利用其無監(jiān)督學(xué)習(xí)的學(xué)習(xí)方法,以一種巧妙的對抗博弈的方法,使得其中關(guān)鍵的生成器和辨別器二者互相促進互相學(xué)習(xí),以達到模糊原始輸入圖像與生成圖像的效果,并最終運用到圖像風(fēng)格轉(zhuǎn)移這一目標上。相較傳統(tǒng)的pix2pix模型只能對特定形狀的簡單圖形做單向風(fēng)格遷移[1],cycleGAN能對風(fēng)格做雙向遷移,并具有輸入的兩張圖可以是任意非配對圖片的優(yōu)點。
本研究使用的是yolov3目標檢測算法,其秉承yolo系列的目標檢測模型的優(yōu)點和基本的檢測原理,并且做了以下改進:不使用Softmax對每個框進行分類;具備多尺度預(yù)測(類FPN)能力;具備更好的基礎(chǔ)分類網(wǎng)絡(luò)(類似于ResNet)和分類器[2]。其使用的Darknet-53與ResNet-101或ResNet-152相比準確率接近,但速度更快。在實例分割上選用的是Mask R-CNN,這是一個兩階段的框架,第一個階段掃描圖像并生成有可能包含一個目標的區(qū)域,第二階段分類區(qū)域并生成邊界框和掩碼。其在底層檢測的是低級特征(邊和角等),在較高層檢測的是更高級的特征(狗、人、車等)。
1.2相關(guān)技術(shù)及主要研究內(nèi)容
1.2.1目標檢測
目標檢測顧名思義就是在圖像中找出所有感興趣的目標,確定其位置和大小,屬于機器視覺領(lǐng)域的核心問題之一。目標檢測要解決的問題除了在復(fù)雜的圖像單元中進行圖像分類之外,還要考慮目標可能出現(xiàn)在圖像中的任何位置;目標大小各不相同,即使在同一圖像中的相同物體在不同位置或光照下也會有不同的呈現(xiàn);目標在圖像中所展示的內(nèi)容在機器內(nèi)部的解讀和在人類一般意識的認識和解讀的不同。針對以上問題,本研究使用了經(jīng)典的滑動窗口結(jié)合圖像縮放的解決方案,此外,該方案還同時解決了如果采用矩形框來定義目標的話矩形會有不同的寬高比從而造成通用目標檢測成本太高的問題。
本研究使用的yolov3算法屬于yolo系列算法,其在之前幾版算法的基礎(chǔ)上對精度和速度做了平衡和優(yōu)化,屬于one stage類算法里面的基于端到學(xué)習(xí)的目標檢測。本研究對yolov3算法進行了進一步提升,將其改進為多尺度預(yù)測算法,并匹配更好的基礎(chǔ)分類網(wǎng)絡(luò)和分類器darknet-53,另外還為其增加了分類器-類別預(yù)測等功能。
1.2.2實例分割
圖像分割就是預(yù)測圖像中每一個像素所屬的類別或者物體。圖像分割中分為語義分割和實例分割兩大類,比如以汽車圖片的分割舉例,語義分割就是區(qū)分是不是車,而實例分割(又稱個體分割)則區(qū)分不同類型的車或者區(qū)分有幾輛車,并把不同的車標記出來。傳統(tǒng)的圖像切割是將圖的一些邊移除,從而讓兩個子圖不相連,目的是找到一個使得移除邊的和權(quán)重最小的切割。
本研究使用的Mask R-CNN目標實例分割框架,該框架能在高效的檢測圖像中所有目標的同時,對每一個目標實例生成高質(zhì)量的分割掩膜。此外該框架還可以通過增加不同的分支來完成不同的任務(wù),具有很強的靈活性。在Mask R-CNN框架內(nèi),為滿足高速和高準確率,本研究選擇了可以既快又準的完成目標檢測功能的經(jīng)典目標檢測算法Faster-rcnn,以及可以精準的完成語義分割功能的經(jīng)典語義分割算法FCN。同時本研究在原始Faster-rcnn算法基礎(chǔ)上增加FCN來產(chǎn)生對應(yīng)的MASK分支這種方式也保證了必要的簡單直觀,降低計算量。
1.2.3 風(fēng)格轉(zhuǎn)移
結(jié)合目標檢測和實例分割的處理結(jié)果,在被遷移圖像的基礎(chǔ)上將分割出來的部分以覆膜的方式覆蓋在目標圖像上,然后就可以實現(xiàn)對單獨的選定區(qū)域進行風(fēng)格遷移。鑒于圖像風(fēng)格遷移的過程是圖片到圖片的轉(zhuǎn)換過程,且有風(fēng)格相近的潛在需求,本研究采用cycleGAN來滿足這一需求,好處除了可以避免所有輸入圖片對應(yīng)到同一目標圖片上外,還可以檢驗生成圖片是否真的是由輸入圖片的原圖對抗而生成的。
2 算法詳解
2.1目標檢測
相比yolov2,yolov3的很多東西是繼承的,比如分而治之的思想,還有從yolov2開始的采用batch normalization作為正則化、加速收斂和避免過擬合的方法,同時還繼承和發(fā)展了多尺度訓(xùn)練,所謂發(fā)展就是可以在速度和準確率之間找到適合自己需要的平衡點,如圖1所示。yolov3結(jié)構(gòu)里沒有池化層和全連接層。前向傳播過程中,張量的尺寸變換則通過改變卷積核的步長來實現(xiàn)。
2.2實例分割
本研究采用的Mask R-CNN以Faster-RCNN為主體框架,在其網(wǎng)絡(luò)的頭部引入另一條FCN并行分支用于檢測ROI的mask map信息,這樣它的頭部包含三個子任務(wù):分類、回歸和分割。第一階段掃描圖片并生成提議(即有可能包含一個目標的區(qū)域),第二階段對提議進行分類并生成邊界框和掩碼。
Mask-RCNN的處理過程一般是輸入一幅要處理的圖片進行相應(yīng)的預(yù)處理(或者直接輸入預(yù)處理后的圖片);將處理結(jié)果輸入到一個預(yù)先訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)中得出對應(yīng)的feature map;對feature map中每一點設(shè)定預(yù)定個的ROI,從而獲得多個候選ROI;將候選的ROI送入RPN網(wǎng)絡(luò)進行二值分類(就是識別出是前景還是背景)和BB回歸,過濾掉一些候選ROI;對剩下的ROI進行ROI Align操作(即先將原圖和feature map的pixel對應(yīng)起來,然后將feature map和固定的feature對應(yīng)起來。亦即對ROI中的每個點取其所在格子的四個頂點的坐標值做雙線性插值);對這些ROI進行分類、BB回歸和MASK生成(在每個ROI里面進行FCN操作);進行max pooling(如圖2所示)。Mask-RCNN訓(xùn)練生成的每個ROI如果最終與某個Ground truth box的IOU為0.5以上,那么就可視為一個positive box,若小于0.5則為negative box。而最終的Lmask的計算只在positive box上面進行。
2.3 風(fēng)格遷移
圖像風(fēng)格遷移中所說的風(fēng)格可用Gram矩陣表示,因為Gram Matrix實際上可看作是feature之間的偏心協(xié)方差矩陣,在feature map中,每一個數(shù)字都來自一個特定濾波器在特定位置的卷積,因此每個數(shù)字就代表一個特征的強度,而Gram計算的是兩兩特征之間的相關(guān)性,即Gram矩陣是特征圖矩陣與自身逆矩陣相乘得到的矩陣,因此它會包含自身的相關(guān)性這一隱藏信息。進行圖片風(fēng)格遷移時,尋找這種相關(guān)性的“匹配”,Gram矩陣就會將色彩風(fēng)格和圖像形狀特征通過計算后以某種方式組合在一起,也就是我們所理解的以及能夠表現(xiàn)出來的表示圖像的藝術(shù)風(fēng)格。同時,Gram的對角線元素,還體現(xiàn)了每個特征在圖像中出現(xiàn)的量,因此,Gram有助于把握整個圖像的大體風(fēng)格。要度量兩個圖像風(fēng)格的差異,只需比較他們Gram矩陣的差異即可。
2.4 CycleGAN
傳統(tǒng)GAN是單向的,而cycleGAN本質(zhì)上是兩個鏡像對稱的GAN所構(gòu)成的一個環(huán)形網(wǎng)絡(luò),如圖3所示。其中有兩個鑒別器網(wǎng)絡(luò),一個是鑒別生成圖像是否達到要求,一個是辨別還原為原圖像是否達到預(yù)期結(jié)果。
3 實驗
3.1目標檢測實驗部分
目標檢測實驗主要進行Yolov3的目標檢測,這部分的實驗可以大致分為定義問題、搜集數(shù)據(jù)(圖片)、數(shù)據(jù)預(yù)處理、搭建環(huán)境、訓(xùn)練模型、測試、得出結(jié)論幾大步驟。
定義問題就是明確自己需要通過目標檢測達到什么目的,對于數(shù)據(jù)搜集和整理的側(cè)重點是什么,以及如何對癥下藥。本研究在目標檢測階段要達到的目的是先檢測出人物所在的區(qū)域。數(shù)據(jù)搜集主要是考慮是否有合適的數(shù)據(jù)集可用,或者別人訓(xùn)練好的模型可以直接使用等。對于人物的識別官方有很多數(shù)據(jù)集可以直接使用。數(shù)據(jù)預(yù)處理主要是利用一些圖像處理工具或便捷的腳本對圖片進行標注,并實現(xiàn)標注產(chǎn)生的數(shù)據(jù)集的格式轉(zhuǎn)換。本研究對圖像的標注用的是windows上的labelimg,其使用簡單快捷。搭建環(huán)境這部分有兩套方法,類unix系統(tǒng)平臺和windows系統(tǒng)平臺。當(dāng)安裝配置好CUDA、CUDNN以及Opencv以后,就可以從yolo官網(wǎng)上下載源碼進行編譯。訓(xùn)練模型就是在搭建好的平臺上利用之前預(yù)處理好的數(shù)據(jù)來訓(xùn)練生成模型。
3.2實例分割和風(fēng)格轉(zhuǎn)移實驗部分
本研究采用Mask R-CNN進行目標檢測和實例分割實驗的過程是:在一個圖中用矩形框框出所識別出來的目標物體所在區(qū)域,并在邊上標識出類的名稱,接著在標識出來的框中目標檢測出要進行處理的區(qū)域,實驗效果如圖4所示;將這張圖片全局風(fēng)格遷移,然后在局部采用先目標檢測再實例分割的辦法產(chǎn)生掩膜。將掩膜覆蓋在原圖上使其只把掩膜部分實現(xiàn)風(fēng)格轉(zhuǎn)換。這樣一來就實現(xiàn)了局部風(fēng)格轉(zhuǎn)換,如圖5至圖9所示。
4 總結(jié)
通過本研究對生成對抗網(wǎng)絡(luò)的實際學(xué)習(xí)和運用,對深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)可以運用的場景有了更多理解和設(shè)想,同時也對以后相關(guān)領(lǐng)域知識的學(xué)習(xí)奠定了基礎(chǔ)。
參考文獻:
[1] Unpaired Image-to-Image Translationusing Cycle-Consistent Adversarial Networks. Jun-Yan Zhu?Taesung Park?Phillip Isola Alexei A. Efros Berkeley AI Research (BAIR) laboratory, UC Berkeley
[2] You Only Look Once:Unified, Real-Time Object DetectionJoseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi University of Washington, Allen Institute for AI, Facebook AI Research (FAIR) arXiv:1703.06870v3 [cs.CV] 24 Jan 2018.
[3] Generative Adversarial Networks Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, SherjilOzair, Aaron Courville, YoshuaBengio.
[4] Goodfellow I. NIPS 2016 tutorial: generative adversarial networks. arXiv preprint arXiv: 1701.00160, 2016.
[5] Hu W W, Tan Y. Generating adversarial malware examples for black-box attacks based on GAN. arXiv preprint arXiv: 1702.05983, 2017.
【通聯(lián)編輯:王力】