論文地址:PIXEL DECONVOLUTIONAL NETWORKS
代碼地址:github
一、簡介
這篇文章提出的PixelDCL主要是爲了解決Deconvolution所造成的棋盤效應。
二、細節
1、Tranditional Deconvolutional Layers
傳統的Deconvolution操作分爲兩個:空洞卷積和轉置卷積,這裏討論的是轉置卷積。轉置卷積的操作一般是先對輸入進行padding或者插入0,然後對其使用普通的卷積操作即可。
但是如果這樣進行上採樣會出現棋盤效應,如下圖所示,可以看到Deconvolution操作可以分解爲多個卷積操作的合集,而分爲多少個具體看上採樣的倍數。
上圖是一維情況的下的結果,下圖是二維圖像下的情況,可以看到得到的輸出feature中點與點之間的關係基本沒有。
用公式描述的話,假設上採樣兩倍:
分別對應輸入和輸出的feature,表示核內的參數。
爲了更加直觀的理解上面的說法,看下圖,基本操作是先對輸入填充0,然後進行卷積操作,最終得到的結果可以看到右上角的部分只和輸入右上角的元素相關,其他位置相同,而且每個小方格中的四個位置的元素信息和對應的卷積核中對應位置中的信息相關,像素與像素之間基本不相關。
從反捲積的上述解釋中可以清楚地看出,這些中間特徵圖之間沒有直接關係,因爲它們是由獨立的卷積核生成的。
現如今解決這個問題的一種做法是使用後處理,但是這樣會導致網絡並不是end-to-end的。
2、Pixel Deconvolution Layers
爲了解決deconvolution layer存在的棋盤效應,作者提出了pixel deconvolutional layers(PixelDCL)可以將不同像素之間的關係有效的利用起來。
iPixelDCL:
PixelDCL如下面的公式所示,分別對應輸入和輸出的feature,表示核內的參數。
PixelDCL:
從上面的公式中可以看出,其實該層次中存在信息冗餘,可以一處部分的冗餘,這樣不僅僅可以減少計算量還可以減少深度模型的參數量。
下面是一個改進的版本,先生成途中的紫色的feature,然後根據紫色的feature生成橘色的feature,將兩個feature穿插成目標大小的feature,再用masked卷積生成剩下的位置的信息,最終填充到一起得到最終的feature。
三、結果