當(dāng)我們仔細(xì)觀察神經(jīng)網(wǎng)絡(luò)生成的圖像時(shí),會(huì)經(jīng)常看到棋盤(pán)樣式的瑕疵。在一些特殊場(chǎng)景下這種現(xiàn)象更明顯,尤其最近的模型。
更重要的是,這種棋盤(pán)偽影在顏色越鮮艷的區(qū)域越明顯,這是為什么呢?難道神經(jīng)網(wǎng)絡(luò)不喜歡明亮的顏色嗎?其實(shí),造成這些偽影的原因很簡(jiǎn)單,不過(guò)想解決也很簡(jiǎn)單。
反卷積與重疊
當(dāng)我們用神經(jīng)網(wǎng)絡(luò)生成圖像時(shí),通常會(huì)從低分辨率、高水平的描述中對(duì)其進(jìn)行創(chuàng)造。網(wǎng)絡(luò)可以表現(xiàn)粗略的圖像并填充其中的細(xì)節(jié)。
為了做到這一點(diǎn),我們需要將低分辨率的圖像轉(zhuǎn)換成高分辨率圖像,這一過(guò)程通過(guò)反卷積操作進(jìn)行。簡(jiǎn)單地說(shuō),反卷積圖層可以讓模型使用小圖中的每個(gè)點(diǎn)來(lái)“繪制”一個(gè)更大的正方形。
但是,反卷積會(huì)很容易生成“不均勻的重疊”,使得某些區(qū)域比其他地方有更多抽象的結(jié)果。尤其是當(dāng)核的尺寸(輸出窗口的大小)不能被步長(zhǎng)(頂部各點(diǎn)之間的距離)整除時(shí),反卷積就會(huì)有不均勻的重疊。雖然理論上,網(wǎng)絡(luò)可以通過(guò)權(quán)重避免這一現(xiàn)象,但實(shí)際上,神經(jīng)網(wǎng)絡(luò)想要完全消除這種現(xiàn)象是非常困難的。
重疊圖案同樣是二維的。兩個(gè)軸上不均勻的重疊相乘,就能創(chuàng)造出不同程度的棋盤(pán)狀偽影。
事實(shí)上,這種不均勻的重疊在兩個(gè)維度上更明顯,因?yàn)閮蓚€(gè)圖案相乘,不均勻性是原來(lái)的平方。例如,在一維中,一個(gè)步長(zhǎng)為2,尺寸為3的反卷積的輸出是輸入的兩倍,但是在二維中就變成了四倍。
現(xiàn)在,神經(jīng)網(wǎng)絡(luò)在創(chuàng)造圖像時(shí)通常使用多層的反卷積,經(jīng)過(guò)迭代從低分辨率中創(chuàng)建更大尺寸的圖像。雖然這些堆棧的反卷積可以消除偽影,但它們通常是混合的,會(huì)在多個(gè)尺度上產(chǎn)生棋盤(pán)偽影。
這些偽影在輸出特殊顏色時(shí)會(huì)更加顯眼,由于神經(jīng)網(wǎng)絡(luò)圖層通常存在偏差(一種添加到輸出中經(jīng)過(guò)學(xué)習(xí)的值),很容易就輸出平均色。如果一種顏色越偏離平均色,反卷積的作用就越大。
重疊和學(xué)習(xí)
理論上來(lái)說(shuō),我們的模型可以學(xué)習(xí)仔細(xì)寫(xiě)入不均勻重疊位置,從而讓輸出達(dá)到平衡。
但是要達(dá)到平衡有些難度,尤其是有多個(gè)通道的時(shí)候。想要避免偽影,就要嚴(yán)格限制可能用到的過(guò)濾器,犧牲模型部分性能。在實(shí)際中,神經(jīng)網(wǎng)絡(luò)要經(jīng)過(guò)很長(zhǎng)的學(xué)習(xí)才能完全避免這些偽影。
事實(shí)上,不僅僅是有著不均勻重疊的模型不會(huì)學(xué)習(xí)避免這種情況,那些有著均勻重疊的模型會(huì)經(jīng)常學(xué)習(xí)核,也會(huì)造成相似的偽影。雖然對(duì)于不平均重疊來(lái)說(shuō)這不是默認(rèn)的情況,但對(duì)平均重疊卷積來(lái)說(shuō)是很容易造成偽影的。
對(duì)過(guò)濾器來(lái)說(shuō),完全避免偽影仍然是非常重要的限制,實(shí)際上,偽影仍然會(huì)出現(xiàn)在這些模型中,雖然并不明顯。
造成這一情況的可能有多種因素。例如,在生成對(duì)抗網(wǎng)絡(luò)的情況下,一個(gè)關(guān)鍵要素可能是判別器和他的梯度,但是問(wèn)題的主要還是反卷積。在最好的情況下,反卷積非常脆弱,因?yàn)樗鼈兒苋菀拙捅憩F(xiàn)出人工偽影,即使尺寸很小。最壞情況下,偽影的生成是反卷積的默認(rèn)行為。
所以,還有其他上采樣方法能避免偽影的出現(xiàn)嗎?
更好的采樣方法
為了避免這些瑕疵,我們想用另一種方法對(duì)反卷積進(jìn)行規(guī)范。和反卷積不同,這種上采樣方法不會(huì)將偽影的生成變?yōu)槟J(rèn)行為,理想情況下,它會(huì)進(jìn)一步對(duì)抗這些偽影。
有一種方法可以確保你使用的核尺寸可以被步長(zhǎng)整除,避免重疊。和“次像素卷積”相同,這種技術(shù)是最近提出的,在超分辨率圖像上產(chǎn)生了巨大成功。但是,雖然這一方法有用,反卷積仍然會(huì)很容易地生成偽影。
另一種方法是將上采樣分離后在更高分辨率的卷積上計(jì)算特征。例如,你可能會(huì)對(duì)圖像尺寸進(jìn)行改變,然后建立一個(gè)卷積層。這似乎是自然的做法,類似的方法在超分辨率圖像上效果也很好。
反卷積和各種對(duì)卷積調(diào)整尺寸的方法都是線性操作,可以用矩陣解釋,這也有助于我們了解它們之間的不同。
調(diào)整卷積層的尺寸可以用TensorFlow上的tf.image,resize_images( )實(shí)現(xiàn),想得到最佳結(jié)果,在用tf.nn.conv2d( )進(jìn)行卷積之前先使用tf.pad( )來(lái)避免邊界上出現(xiàn)偽影。
圖像生成結(jié)果
經(jīng)過(guò)研究我們發(fā)現(xiàn),用最近鄰尺寸調(diào)整和一個(gè)卷積能在大部分語(yǔ)境下得出較好的結(jié)果。其中表現(xiàn)較好的是GAN,簡(jiǎn)單的對(duì)反卷積層進(jìn)行調(diào)整,就能生成不同程度的偽影:
實(shí)際上,偽影的不同可以在訓(xùn)練之前就看到。如果我們看一張生成器輸出的圖像,初始權(quán)重是隨機(jī)的,就能看到偽影。這說(shuō)明偽影與生成圖片的方法有關(guān),與對(duì)抗訓(xùn)練無(wú)關(guān)。
另一種能夠解釋偽影并不是GAN獨(dú)有的現(xiàn)象的原因是,我們將其放在另一種模型中時(shí),調(diào)整卷積尺寸的上采樣,仍然能發(fā)現(xiàn)這一現(xiàn)象。
結(jié)語(yǔ)
雖然用反卷積可以生成圖像,但它也會(huì)導(dǎo)致偽影的出現(xiàn)。使用其他自然的替代方法可以消除這些棋盤(pán)偽影。同時(shí),我們還提出了可以提高圖像生成質(zhì)量的神經(jīng)網(wǎng)絡(luò)方法,我們希望能幫助到多領(lǐng)域的研究者們。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4779瀏覽量
101032 -
圖像
+關(guān)注
關(guān)注
2文章
1089瀏覽量
40532
原文標(biāo)題:用縮放CNN消除反卷積帶來(lái)的棋盤(pán)偽影
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論