在基於CNN的超分辨率中,經常在最后一層使用stride>1的deconv layer,而這會造成棋盤格噪聲。如下圖所示
具體產生原因
上面的黑格子是表示原始圖像中的某一個像素點,白色的表示轉置卷積中的stride,一般是用0去填充。下面一層就是deconv生成的圖像。可以看到stride不能整除size的時候,就會出現棋盤格效應(當然,就算整除也不能完全消除)。
如何避免呢?
采用一般的插值算法(NN或bilinear)先把圖像放大到目標分辨率,再用普通的conv去做計算,替代deconv layer。
最后效果
參考文獻
[1] https://distill.pub/2016/deconv-checkerboard/ deconvolution and checkerboard artifacts