反卷積的棋盤格效應

2021-09-24 19:20:17 字數 1171 閱讀 5262

反卷積只能恢復出原訊號的shape,而並不能恢復value,若想要恢復出value還需要learn的過程

從3*3 -> 6*6

對於stride = 2, 先將小解析度的feature map每乙個畫素中間插入stride-1個0值.然後進行正常的卷積操作(預設的卷積stride為1),得到卷積後的結果,再裁剪到想要的大解析度的feature map

假設反卷積生成的影象中,包含1只黑貓,黑貓身體部分的畫素顏色應該是平滑過渡的。或者極端的說,身體部分應該全部都是黑色的。而在實際生成的影象中,該部分卻是由深深淺淺的近黑方塊組成的,很像棋盤的網路。這就是所謂的棋盤效應。

詳見: 

(1)卷積過程中只能用到乙個畫素(只有乙個畫素值不為0)

(2)卷積過程中能用到兩個畫素(只有兩個畫素值不為0)

(3)卷積過程中能用到四個畫素(有四個畫素值不為0)

因為插入的值為0,使得卷積的input feature map本身就是棋盤狀,所以得到的大解析度feature map也會產生棋盤格

反卷積產生的棋盤格,在stride和卷積核size是整數倍的時候能夠有所緩解,但是依然不能完全消除

為什麼會有所緩解呢?

因為二者整除關係使得卷積核每次滑動能用到的非零畫素的個數是一樣的(或者中間區域向兩邊逐漸減少(而不是隨著滑動反覆變化產生棋盤格形狀))

如:stride = 2, kernel size = 2

不是將小解析度的feature map的畫素之間插0,而是採用插值的方法

也就是現在常用的插值+conv

反卷積與棋盤效應

來自 google brain 的 augustus odena 等人的文章 deconvolution and checkerboard artifacts 的部分內容 1。影象生成網路的上取樣部分通常用反卷積網路,不合理的卷積核大小和步長會使反卷積操作產生棋盤效應 checkerboard ar...

反卷積棋盤效應解決方法

反卷積 置卷積 後生成的影象,放大後往往會出現棋盤效應,在深色部分尤為明顯,如下圖所示 總結了幾種常用的解決方案,如下所示 1.修改反卷積形式 1 使用能被stride整除的kernel size,如kernel size 4,stride 2 2 堆疊反卷積減輕重疊 效果一般 3 網路末尾使用1x...

反卷積的作用

經常在別人的網路結構看到反卷積的存在,我們知道卷積池化的作用是提取高維特徵,但是反卷積的作用只能說出類似於利用學習的方法把影象細節還原,類似超分的作用,那到底是什麼作用呢?這裡整理網上有用的參考 反卷積又稱轉置卷積 來還原feature map的尺寸大小,用於還原之前一系列卷積操作之後特徵圖解析度變...