超分辨率 | 反卷積deconvolution存在的弊端及引起的棋盤效應


1. 棋盤效應

在這里插入圖片描述
當我們要用到深度學習來生成圖像的時候,是往往是基於一個低分辨率且具有高層語義的圖像。這會使得深度學習來對這種低分辨率圖像進行填充細節。一般來說,為了執行從低分辨率圖像到高分辨率圖像之間的轉換,我們往往要進行deconvolution。簡單來說,deconvolution layer可以允許模型通過每一個點進行繪制高分辨率圖像上的一個方塊,這種情況的產生與deconvolution的stride、kernel size有關。

然而,在使用deconvlution的時候,如果出現kernel size與stride無法整除的時候,這時候便會發生uneven overlap。
如下圖中,便會出現圖像中的某個部位的顏色比其他部位更深的情況。
在這里插入圖片描述
在這里插入圖片描述

2. 問題產生:kernel size無法被stride整除

stride為1,kernel size為3,這導致了重復上采樣繪圖的部分不均勻(下圖深色部分),
在這里插入圖片描述
二維情況更為嚴重,
在這里插入圖片描述

3. 思路

3.1. 思路一:多層重復轉置卷積

一個常見的想法是寄希望於多層重復轉置卷積,希望能抵消掉棋盤效應,但是實際上一般事與願違,
在這里插入圖片描述

重復的結構使得棋盤更加復雜。

3.2.思路二:kernel為1的轉置卷積

此時可以很好地解決這個問題,

在這里插入圖片描述
但是……轉置卷積的意義在於上采樣,stride為1還上采毛線……,所以一般會用於卷積棧的末尾作為調整,不過效果有限,
在這里插入圖片描述

3.3. 思路三:調整kernel權重分布

加大無重疊部分的權重分布可以很好的解決的這個問題,原理如下圖:
在這里插入圖片描述
但是這種做法會極大地限制模型的學習能力(避免棋盤效應往往會降低模型容量,會使得模型變得更大從而使得難以訓練。原文的話是指: Avoiding artifacts significantly restricts the possible filters, sacrificing model capacity)

4. 更好的上采樣

4.1 方法一:采取可以被stride整除的kernel size

該方案較好的應對了棋盤效應問題,但是仍不夠圓滿,因為一旦我們的kernel學習不均勻,仍然會產生棋盤效應,
在這里插入圖片描述
在上圖中,我們的weight並不夠平衡,這直接導致了輸出的棋盤效應。

去仔細調節kernel size和stride的大小關系以確保他們盡量能整除。在Twitter的超分辨率文章中的《Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network 》中,作者提出了一種亞像素卷積的上采樣方式。這個方法及其類似於kernel size和stride之間可以整除的情況。但同上一小節分析的一樣,我們可以看到這個方法仍然會出現一定程度的偽影和棋盤效應。

即便如此,采用這個思路去設計網絡仍然是必要的。

4.2 方法二:插值

可以直接進行插值resize操作,然后再進行卷積操作。這種操作在超分辨率文獻中很常見。例如,我們可以采取近鄰插值或者樣條插值來進行上采樣。
在這里插入圖片描述

5. 最后


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM