關於全卷積神經網路的思考

圖1、全卷積網路圖解

最近一個月先後想明白了目標檢測和影象分類、語意分割和影象分類之間的聯絡。

透過論文《Single-Stage Multi-Person Pose Machines》和《PolarMask: Single Shot Instance Segmentation with Polar Representation》,進一步找到了影象分類、語意分割、影象分類、多人姿態估計和例項分割之間的共同點。

即這些任務對應的模型大部分是全卷積神經網路,例如單階段目標檢測、語意分割等等,即使不是全卷積神經網路的影象分類模型,只要將最後一層fc換成1x1的conv,也就轉換為了全卷積神經網路。

所有的任務都可以統一為一個全卷積神經網路,該全卷積神經網路輸出的特徵圖如同昆蟲的

複眼

,每個grid為一隻眼睛,

每隻眼睛所看到的東西不一樣

,但是每隻眼睛的視野範圍相同(即,

每隻眼睛的感受野大小相同

),

每隻眼睛單獨工作

互不影響

。具體可見圖1,影象輸入到全卷積網路中,輸出的特徵圖大小為4*4,中間2*2個眼睛,每個眼睛看到的是影象不同的部位。

然後每隻眼睛會判斷:1、

它看到了什麼物體(類別)

;2、

這個物體有什麼特點(屬性,可選項)

以影象分類為例子,每隻眼睛(因為使用了global average pooling,影象分類只有一隻眼睛)會判斷它看到了什麼物體(類別)。

以語意分割為例子,每隻眼睛會判斷它看到了什麼物體(類別)。

以目標檢測為例子,每隻眼睛會判斷它看到了什麼物體(類別),這個東西的x offset、y offset、w、h分別是多少(屬性)。

以例項分割為例子,每個眼睛會判斷它看到了什麼物體,以該眼睛所在的地方為中心,該物體的36條極線分別有多長(屬性)。

其他基於CNNs的計算機視覺任務可依次類推。

總結一句話就是:基於CNNs的任務的核心是全卷積神經網路,全卷積神經網路輸出的特徵影象昆蟲的複眼,每個grid都是一隻眼睛,每隻眼睛的感受野相同,但是看到的內容不同,每隻眼睛獨立判斷它看到了什麼東西,這個東西有什麼屬性。

根據這一點,我們能更好的理解業界為了解決為了解決某種計算機視覺任務而設計的模型,當面對業界還沒有研究過的計算機視覺任務時,我們也能自己設計出模型。