国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

圖片風(fēng)格融合及快速遷移

2021-03-08 09:41:28陳良
軟件工程 2021年1期

陳良

摘? 要:通過卷積神經(jīng)網(wǎng)絡(luò)對不同圖片的內(nèi)容和風(fēng)格進(jìn)行融合,可生成風(fēng)格多樣化的圖片。這不但為影視制作提供了豐富的素材,更有利于圖像修復(fù)和圖像增強。針對這類問題,前人曾提出一些算法,但很難在時間和空間方面都達(dá)到很好的效果。這里提出一種基于TensorFlow(將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)傳輸至人工智能神經(jīng)網(wǎng)中進(jìn)行分析和處理過程的系統(tǒng))的條件歸一化網(wǎng)絡(luò)來支持多風(fēng)格融合及圖片快速遷移,多風(fēng)格可共用一個網(wǎng)絡(luò)模型,這大大減少了算法耗時,并緩解了模型存儲耗費空間大的問題,節(jié)省了計算機資源。時間上優(yōu)于傳統(tǒng)遷移算法三個數(shù)量級,空間上25種風(fēng)格可共用一個模型。同時,更大程度地保留了內(nèi)容圖的語義特征,具有更好的視覺效果。

關(guān)鍵詞:條件歸一化網(wǎng)絡(luò);風(fēng)格融合;快速遷移;共享模型

中圖分類號:TP312? ? ?文獻(xiàn)標(biāo)識碼:A

文章編號:2096-1472(2021)-01-21-04

Abstract: Content and style of different pictures can be merged by convolutional neural network to generate pictures with diversified styles. This not only provides rich materials for film and television production, but also facilitates image restoration and enhancement. Aiming at this kind of problem, previous researchers have proposed some algorithms, which turned out to be difficult to achieve good results in both time and space. This paper proposes a conditional normalization network based on TensorFlow (a system that transmits complex data structures to artificial intelligence neural networks for analysis and processing) to support multi-style fusion and rapid image migration. Multiple styles share a network model, which greatly reduces time-consuming algorithm and relieves large space consumption for model storage, saving computer resources. It is three orders of magnitude better in time than traditional migration algorithms, and 25 styles in space share one model. At the same time, semantic features of the content map are retained to a greater extent, and the visual effect is better.

Keywords: conditional normalization network; style fusion; rapid migration; sharing model

1? ?引言(Introduction)

圖像風(fēng)格遷移不僅能改善電影動畫制作效果,降低制作成本,更重要的是它有利于圖像修復(fù)。圖像風(fēng)格遷移算法最初從研究紋理合成技術(shù)開始,大多數(shù)紋理合成算法采用非參數(shù)方法[1],并沒有提取圖像的高級特征,對紋理較為復(fù)雜的圖像很難做到理想的風(fēng)格遷移。Gatys[2]等人提出了一種基于CNN的傳統(tǒng)遷移算法,增強了遷移效果,但耗時很大。Johnson[3]等人提出快速遷移算法即訓(xùn)練一種前饋生成網(wǎng)絡(luò),生成速度提高了三個數(shù)量級,但仍然無法同時獲取多種風(fēng)格。

本文提出一種條件歸一化網(wǎng)絡(luò)算法,對每種風(fēng)格歸一化后再對其風(fēng)格參數(shù)進(jìn)行特定的調(diào)節(jié),令最終模型具有多風(fēng)格同步遷移且支持風(fēng)格融合的能力。這樣多風(fēng)格可以共享一個模型,不僅縮短了風(fēng)格融合時間,還大大緩解了模型存儲的空間壓力,為后期部署節(jié)約了很大的成本。

2? ?算法設(shè)計(Algorithm design)

2.1? ?構(gòu)思背景

考慮到快速風(fēng)格遷移算法雖然加快了圖像遷移的速度,但每次遷移時的風(fēng)格圖像是固定的,也就是每當(dāng)更換風(fēng)格時都需要加載另一個模型,這不利于多風(fēng)格遷移且多個模型很不利于存儲,更會浪費計算機資源。更重要的是,這為后期模型部署帶來了很大的壓力,降低了圖片風(fēng)格遷移的應(yīng)用價值。于是設(shè)計一種網(wǎng)絡(luò)可以滿足對多個風(fēng)格實現(xiàn)同步遷移,并最終利用該網(wǎng)絡(luò)訓(xùn)練得到針對多風(fēng)格的單一模型就顯得尤為重要。

顯然,這里的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)屬于同一集合,因此不會存在過擬合問題。進(jìn)行圖像風(fēng)格遷移時,不同風(fēng)格圖片的參數(shù)計算有一定的規(guī)律,那么不同的風(fēng)格圖片與同一內(nèi)容圖片進(jìn)行風(fēng)格遷移時就會存在一種共享模式,因此在實際的多風(fēng)格遷移時多風(fēng)格可以共享模型的參數(shù)和結(jié)構(gòu),這會大大減少模型占用空間。憑直覺來講,不同的繪畫有著相似的筆觸,這代表著相似的視覺元素,但調(diào)色、用筆力度等方面存在差異,那么這多幅作品其實存在很多共通點。顯然,在進(jìn)行N風(fēng)格遷移時仍然構(gòu)建N個網(wǎng)絡(luò),這種共享模式就失去了意義,也很不利于模型的訓(xùn)練和存儲。從藝術(shù)的角度來講,繪畫風(fēng)格的多樣性代表了一種豐富的視覺信息,有利于增強人們對繪畫更高層次特征的理解。捕獲到不同的圖像風(fēng)格,訓(xùn)練得到的模型允許任意方式組合的全新風(fēng)格來探索新的藝術(shù)風(fēng)格,為學(xué)習(xí)藝術(shù)風(fēng)格的特征提供了一條獨特的途徑。

2.2? ?網(wǎng)絡(luò)架構(gòu)

條件歸一化網(wǎng)絡(luò)架構(gòu)從輸入層到輸出層依次為三層卷積層、五層殘差塊和兩層上采樣,最后一層為卷積層,如圖1所示;再結(jié)合損失函數(shù)網(wǎng)絡(luò)便構(gòu)成了條件歸一化網(wǎng)絡(luò)流程的整體網(wǎng)絡(luò)架構(gòu)(圖2)。與快速風(fēng)格遷移網(wǎng)絡(luò)架構(gòu)的主要區(qū)別為,條件歸一化網(wǎng)絡(luò)使用了條件歸一化操作,并且該操作貫穿了整個網(wǎng)絡(luò)的每一層,也就是圖像的多風(fēng)格遷移和風(fēng)格融合是同時進(jìn)行的。

圖1的卷積層包含三種操作:卷積、歸一化、relu。殘差塊使用的是Gross and Wilber的殘差網(wǎng)絡(luò),每個殘差塊共五層結(jié)構(gòu),包含兩個3×3的卷積層,每個卷積層有128個濾波器。殘差網(wǎng)絡(luò)的核心操作為跨卷積層做加法操作,目的為避免梯度消失。與其等效的卷積塊相比,該殘差塊最后缺少一個relu非線性,在分類方面有更好的性能,同時加快了損失函數(shù)收斂的速度,更易于訓(xùn)練深層的網(wǎng)絡(luò)[4]。上采樣同樣包含三種操作:雙線性插值、卷積和歸一化。最后一層為卷積層,與開始卷積層不同的是,這里把relu改為sigmoid。

2.3? ?條件歸一化

條件歸一化可用來學(xué)習(xí)多種圖像樣式,該操作將單風(fēng)格的圖像轉(zhuǎn)換網(wǎng)絡(luò)轉(zhuǎn)變?yōu)槎囡L(fēng)格的轉(zhuǎn)換網(wǎng)絡(luò)。多風(fēng)格圖像轉(zhuǎn)換網(wǎng)絡(luò)的卷積權(quán)重在不同風(fēng)格間是共享的,歸一化后對其對應(yīng)的風(fēng)格參數(shù)進(jìn)行調(diào)節(jié)[5]。具體做法就是先將輸入圖像映射到正態(tài)分布,再對每個固定的風(fēng)格在歸一化之后進(jìn)行特定的縮放和平移,所以這個網(wǎng)絡(luò)中增加了W和B這兩個參數(shù),一個負(fù)責(zé)縮放,另一個負(fù)責(zé)平移。針對多風(fēng)格的模型,只需要訓(xùn)練一個網(wǎng)絡(luò),網(wǎng)絡(luò)整體也只是增加了W和B這兩個參數(shù),實際增加量為:2×風(fēng)格數(shù)目×特征映射數(shù)目。在典型的網(wǎng)絡(luò)設(shè)置中,只有0.2%的參數(shù)代表風(fēng)格的獨立特征。又因為條件歸一化只對縮放和移動參數(shù)起作用,所以在多個風(fēng)格上訓(xùn)練圖像轉(zhuǎn)換網(wǎng)絡(luò)所需的參數(shù)比訓(xùn)練多個單獨網(wǎng)絡(luò)的方法需要的參數(shù)少得多,這大大減少了模型訓(xùn)練需要的時間。

條件歸一化把每種風(fēng)格壓縮為嵌入空間的一個點,多個不同點構(gòu)成了最終的模型。該模型可以允許一些全新的方式組合風(fēng)格,能更快地捕獲新的藝術(shù)風(fēng)格。

2.4? ?改進(jìn)圖像生成質(zhì)量

棋盤現(xiàn)象:在快速遷移算法上采樣過程中使用了轉(zhuǎn)置卷積,這會導(dǎo)致生成圖像出現(xiàn)一些類似棋盤狀的偽影,尤其在顏色較深的區(qū)域,嚴(yán)重影響了圖像的生成質(zhì)量。本文采用雙線性插值算法,避免了棋盤現(xiàn)象的產(chǎn)生。

偽影現(xiàn)象:在快速風(fēng)格遷移算法中殘差塊的卷積層沒有使用填充操作,但一般卷積層會采用零填充。零填充雖然可以控制特征圖的大小,但會造成邊界偽影現(xiàn)象,嚴(yán)重影響了生成圖像的質(zhì)量。據(jù)了解,鏡像填充可以緩解這種現(xiàn)象,但設(shè)置較為復(fù)雜,同時會增加訓(xùn)練時間,不利于多風(fēng)格遷移模型的訓(xùn)練。那么這里僅是修改卷積時的邊緣填充方式,使用VALID方式進(jìn)行卷積,避免了生成圖像邊緣發(fā)黑,因此這與鏡像填充方式的作用一致,較大程度地增強了風(fēng)格遷移生成圖像的質(zhì)量。

降低內(nèi)容損失層:大部分的風(fēng)格遷移算法都采用conv_3作為內(nèi)容損失層。Gatys提出層數(shù)越低越能很好地重建內(nèi)容特征,但conv_1層的內(nèi)容損失很小,變化幅度相對更小不利于損失函數(shù)收斂。實驗中發(fā)現(xiàn)采用conv_2作為內(nèi)容損失層能加快收斂速度,增強生成圖像質(zhì)量,更適合多風(fēng)格遷移。

sigmoid函數(shù):實驗中發(fā)現(xiàn)當(dāng)最后一層卷積層采用relu時圖像有黑塊現(xiàn)象,改為sigmoid這種現(xiàn)象幾乎消失,同時有利于將結(jié)果控制在(0,255)內(nèi)。

2.5? ?多風(fēng)格融合及快速遷移

條件歸一化網(wǎng)絡(luò)(圖1)生成目標(biāo)圖像,再將生成圖像及內(nèi)容和風(fēng)格圖像一并傳入損失函數(shù)網(wǎng)絡(luò)計算得到總損失,損失函數(shù)值按公式(1)計算。最后通過Adam優(yōu)化器最小化損失值,逐步優(yōu)化模型參數(shù),如圖3所示。

3? ?實驗(Experiment)

3.1? ?實驗數(shù)據(jù)和環(huán)境

本次風(fēng)格遷移實驗需要的數(shù)據(jù)集分為內(nèi)容圖片和風(fēng)格圖片。內(nèi)容圖片為MSCOCO官網(wǎng)的train 2014中的82783張訓(xùn)練圖片,數(shù)據(jù)集大小為12.5G。另外需要20張風(fēng)格鮮明的風(fēng)格圖片用于訓(xùn)練。

環(huán)境搭建:由于數(shù)據(jù)集很大,CPU訓(xùn)練非常耗時且容易斷電或網(wǎng)絡(luò)中斷影響模型訓(xùn)練,因此這里采用GPU服務(wù)器進(jìn)行模型訓(xùn)練,GPU型號為NVIDIA GeForce RTX 2080 Ti。編寫語言為python,采用TensorFlow框架,在jupyter notebook和pycharm上運行代碼。

制作tfrecord訓(xùn)練集:對數(shù)據(jù)進(jìn)行統(tǒng)一的管理是很有必要的。tfrecord文件[6]就是對輸入數(shù)據(jù)做統(tǒng)一管理的格式,加上一些多線程的處理方式,使得在訓(xùn)練期間對于數(shù)據(jù)管理把控的效率和靈活度都比普通暴力的方法好得多。再加之實驗需求的數(shù)據(jù)量很大,使用統(tǒng)一格式管理顯得尤為重要。

3.2? ?模型訓(xùn)練

讀取制作好的tfrecord訓(xùn)練集,依照圖3所示訓(xùn)練得到最終模型。模型訓(xùn)練時的風(fēng)格矩陣用于提取當(dāng)前風(fēng)格的參數(shù)W和B。訓(xùn)練中提供了斷點續(xù)訓(xùn)功能,可及時查看當(dāng)前訓(xùn)練結(jié)果,保存最優(yōu)模型。實驗開啟了多線程訓(xùn)練,進(jìn)一步減少了模型訓(xùn)練時間,為節(jié)省磁盤空間只保存最后一代模型。

3.3? ?實驗結(jié)果

3.3.1? ?圖像多風(fēng)格遷移

選擇多張不同類別的圖像為風(fēng)格圖像,一張兒童圖片為內(nèi)容圖像,采用訓(xùn)練好的模型進(jìn)行多風(fēng)格遷移。實驗結(jié)果證明,該算法確實可以很好地將每種風(fēng)格特征遷移到如圖4所示的內(nèi)容圖,生成圖如圖5和圖6所示。

3.3.2? ?圖像多風(fēng)格融合

條件歸一化網(wǎng)絡(luò)算法能提取多張圖像的風(fēng)格特征,并將它們按照一定比例融合。實驗采用了一張灰度圖像作為內(nèi)容圖像,如圖7所示。四張不同風(fēng)格的圖像令原本單調(diào)的灰度圖像充滿生機,驗證了條件歸一化網(wǎng)絡(luò)算法具有很好的多風(fēng)格融合能力,如圖8所示。

4? ?算法對比(Algorithm comparation)

4.1? ?普通圖像遷移效果

這里采用相同的內(nèi)容和風(fēng)格圖像,分別利用Gatys提出的傳統(tǒng)遷移算法、Johnson提出的快速遷移算法和本文的條件歸一化網(wǎng)絡(luò)算法生成三張遷移后的效果圖像,直觀地對比三種算法對普通圖像的風(fēng)格遷移效果,如圖9至圖11所示。

采用條件歸一化網(wǎng)絡(luò)算法生成的遷移圖與其他算法的生成圖在整體感官上很接近,但經(jīng)過網(wǎng)絡(luò)模型得到的圖像更易捕獲內(nèi)容信息,如圖10和圖11能夠保留原內(nèi)容圖中的文字信息,圖11的文字更清晰,而圖9的文字幾乎被圖像色彩覆蓋,很難辨認(rèn)。

4.2? ?灰度圖像遷移效果

4.1節(jié)表明了條件歸一化網(wǎng)絡(luò)算法對普通圖像的遷移效果要優(yōu)于傳統(tǒng)遷移算法和快速遷移算法,圖12為灰度圖,圖13為風(fēng)格圖,圖14和圖15對比了灰度圖像遷移效果。

實驗采用了一張年代較遠(yuǎn)的灰度圖像和一張色彩很濃的風(fēng)格圖像,對傳統(tǒng)遷移算法和條件歸一化網(wǎng)絡(luò)算法進(jìn)行了遷移效果對比。傳統(tǒng)風(fēng)格遷移算法雖然能對普通圖像進(jìn)行較好的風(fēng)格遷移,但這種方式對灰度圖像不是很理想,存在圖像失真、風(fēng)格渲染不均勻等現(xiàn)象。對比圖14和圖15很容易發(fā)現(xiàn):圖14中人物鼻部和眼部特征被光斑遮蓋,甚至衣服的褶皺度也被變小。而圖15幾乎融合了圖12的內(nèi)容信息,例如,女性右側(cè)頭發(fā)的卷曲度和臉部距離與圖12相比,在肉眼觀察的范圍內(nèi)是沒有差距的,這主要因為條件網(wǎng)絡(luò)算法是通過卷積神經(jīng)網(wǎng)絡(luò)生成圖像的,而在卷積池化的過程中,網(wǎng)絡(luò)就很好地學(xué)習(xí)了圖像中的魯棒特征[7]。當(dāng)然,可采用語義分割的方式來改善圖像失真問題。更為重要的是,人的臉部特征并沒有因為融合風(fēng)格圖像而大幅度地失去,也就是在保持風(fēng)格化的前提下,盡量降低內(nèi)容損失。

總之,條件歸一化網(wǎng)絡(luò)下的風(fēng)格遷移比傳統(tǒng)遷移算法更大程度地減少了損失函數(shù)值,同時生成圖15的速度比生成圖14快了約300倍。

4.3? ?圖像裁剪

實際應(yīng)用中往往提供的風(fēng)格和內(nèi)容圖像大小并不一致,但傳統(tǒng)遷移算法和快速遷移算法都沒有給出一種合理的裁剪方案,故遷移效果不理想。本文的條件歸一化網(wǎng)絡(luò)算法提出了一種中心裁剪的方式,即以圖像中心為起點裁剪出一個正方形,該方法可調(diào)整輸入圖像使之大小一致,并較好地保留圖像內(nèi)容信息。圖16對比了兩種不同算法下的裁剪效果。

圖16右上角為條件歸一化網(wǎng)絡(luò)算法下的生成圖像,左上角為傳統(tǒng)遷移算法生成圖像。值得肯定的是,中心裁剪保留了更多的內(nèi)容圖特征,如條件歸一化網(wǎng)絡(luò)算法將舞者的形體美更好地展示出來。

4.4? ?算法耗時和空間

快速遷移算法在時間上至少快了幾百倍,這一點是很有價值的。但條件歸一化網(wǎng)絡(luò)不僅加快了速度,還有效緩解了模型存儲的空間壓力,表1對比了三種算法在時間和模型空間儲存上的差異。

為了有效對比不同算法耗時,表1的時間都是在CPU服務(wù)器上的運行時間。時間1、時間2分別指生成單張圖像和25張不同圖像所需時間??臻g1、空間2分別指生成單張圖像和25張圖像所需模型占用空間的大小。由表1可知:時間層次上,條件歸一化網(wǎng)絡(luò)算法所需時間與快速遷移算法差不多,都優(yōu)于傳統(tǒng)遷移算法三個數(shù)量級,且遷移的圖像數(shù)目越多,這種優(yōu)勢越明顯??臻g層次上,傳統(tǒng)遷移算法是直接梯度下降生成目標(biāo)圖像,故不需要模型;而快速遷移算法和本文的條件歸一化網(wǎng)絡(luò)算法都需要模型,生成一張圖像時兩者幾乎沒有差距。但條件歸一化網(wǎng)絡(luò)是支持多風(fēng)格同步遷移的,只要沒超過訓(xùn)練時的風(fēng)格圖像數(shù)目,模型所占空間不變,極有利于后期開發(fā);而快速遷移算法模型占用空間會隨著模型數(shù)量而線性增加,這顯然對模型的移動端部署是很不利的。總之,本文提出的條件歸一化網(wǎng)絡(luò)一方面能夠像快速遷移算法一樣,大大縮短圖像遷移所需的時間;另一方面由于模型共享,很大程度地緩解了模型存儲的空間壓力。

5? ?結(jié)論(Conclusion)

本文設(shè)計的條件歸一化網(wǎng)絡(luò)算法不僅加快了圖像生成時間,更大大緩解了模型存儲的空間壓力,節(jié)省了計算機資源,為后期的部署應(yīng)用節(jié)約了成本。更重要的是,該算法的遷移效果在很多方面要優(yōu)于其他算法,且能實現(xiàn)風(fēng)格融合。

參考文獻(xiàn)(References)

[1] 陳淑環(huán),韋玉科,徐樂.基于深度學(xué)習(xí)的圖像風(fēng)格遷移研究綜述[J].計算機應(yīng)用研究,2019,36(08):2250-2255.

[2] Leon A Gatys, Alexander SEcker, Matthias Bethge. A neural algorithm of artistic style[J]. arXiv preprint arXiv, 2015, 1508(06276):4-12.

[3] Justin Johnson, Alexandre Alahi, Li Fei-Fei. Perceptual losses for real-time style transfer and super-resolution[J]. arXiv preprint ar Xiv, 2016, 1603(08155):1-7.

[4] Kaiming He, Xiangyu Zhang, Shaoqing Ren, et al. Deep residual learning for image recognition[J]. arXivarXiv preprint arXiv, 2015, 1512(03385):2-8.

[5] Vincent Dumoulin,Jonathon Shlens,Manjunath.Kudlur. A learned repre sentation for artistic style[J]. In ICLR, 2017, 1610(07629):4-8.

[6] 鄭澤宇,梁博文,顧思宇.TensorFlow:實戰(zhàn)Google深度學(xué)習(xí)框架[M].北京:電子工業(yè)出版社,2017:170-183.

[7] Andrew Ilyas, Shibni Santurkar, Dimitris Tsipras, et al. A adversaral examples Are NotBugs, They are Features[J]. arXiv preprint arXiv, 2019, 1905(02175):6-7.

作者簡介:

陳? ?良(1995-),男,本科生.研究領(lǐng)域:深度學(xué)習(xí),模型壓縮.

南部县| 油尖旺区| 元朗区| 温州市| 卓尼县| 高阳县| 寿阳县| 台中县| 永平县| 黎城县| 天门市| 肃宁县| 郯城县| 木里| 阳曲县| 分宜县| 武夷山市| 府谷县| 绥江县| 大渡口区| 于田县| 巴青县| 永定县| 灵丘县| 湾仔区| 姚安县| 漳浦县| 阿拉善右旗| 玉田县| 信宜市| 浮山县| 铜梁县| 长治市| 德州市| 青川县| 奉化市| 台山市| 东兰县| 英吉沙县| 多伦县| 巴楚县|