反卷積、上取樣、上池化圖示理解,如上所示。
目前使用得最多的deconvolution有2種。
方法1:full卷積, 完整的卷積可以使得原來的定義域變大
上圖中藍色為原影象,白色為對應卷積所增加的padding,通常全部為0,綠色是卷積後。卷積的滑動是從卷積核右下角與左上角重疊開始進行卷積,滑動步長為1,卷積核的中心元素對應卷積後影象的畫素點。可以看到卷積後的影象是4x4,比原圖2x2大了,我們還記1維卷積大小是n1+n2-1,這裡原圖是2x2,卷積核3x3,卷積後結果是4x4,與一維完全對應起來了。其實這才是完整的卷積計算,其他比它小的卷積結果都是省去了部分畫素的卷積。
方法2:記錄pooling index,然後擴大空間,再用卷積填充
假設原圖是3x3,首先使用上取樣讓影象變成7x7,可以看到影象多了很多空白的畫素點。使用乙個3x3的卷積核對影象進行滑動步長為1的valid卷積,得到乙個5x5的影象,我們知道的是使用上取樣擴大,使用反卷積填充影象內容,使得影象內容變得豐富,這也是cnn輸出end to end結果的一種方法
影象的deconvolution過程如下,
輸入:2x2, 卷積核:4x4, 滑動步長:3, 輸出:7x7
即輸入為2x2的經過4x4的卷積核進行步長為3的反卷積的過程
1.輸入每個畫素進行一次full卷積,根據full卷積大小計算可以知道每個畫素的卷積後大小為 1+4-1=4, 即4x4大小的特徵圖,輸入有4個畫素所以4個4x4的特徵圖
2.將4個特徵圖進行步長為3的fusion(即相加); 例如紅色的特徵圖仍然是在原來輸入位置(左上角),綠色還是在原來的位置(右上角),步長為3是指每隔3個畫素進行fusion,重疊部分進行相加,即輸出的第1行第4列是由紅色特陣圖的第一行第四列與綠色特徵圖的第一行第一列相加得到,其他如此類推。
可以看出反卷積的大小是由卷積核大小與滑動步長決定, in是輸入大小, k是卷積核大小, s是滑動步長, out是輸出大小
得到 out = (in - 1) * s + k
上圖過程就是, (2 - 1) * 3 + 4 = 7
**:
上取樣,反卷積,上池化區別
通過卷積和池化等技術可以將影象進行降維,因此,一些研究人員也想辦法恢復原解析度大小的影象,特別是在語義分割領域應用很成熟。通過對一些資料的學習,簡單的整理下三種恢復方法,並進行對比。在fcn u net等網路結構中,涉及到了上取樣。上取樣概念 上取樣指的是任何可以讓影象變成更高解析度的技術。最簡單的...
上取樣 反卷積 上池化的區別
上取樣 反卷積 上池化的區別 圖 a 表示unpooling的過程,特點是在maxpooling的時候保留最大值的位置資訊,之後在unpooling階段使用該資訊擴充feature map,除最大值位置以外,其餘補0。與之相對的是圖 b 兩者的區別在於unsampling階段沒有使用maxpooli...
卷積 池化 反卷積 反池化 上取樣的知識點記錄
卷積 same 輸入大小不夠時會在右邊加padding補足。output shape ceil input shape stride size valid output shape ceil input shape kernel shape 1 stride size 池化 池化沒有引數,除非使用t...