論文筆記《Fully Convolutional Networks for Semantic Segmentation》


一、Abstract

提出了一種end-to-end的做semantic segmentation的方法,也就是FCN,是我個人覺得非常厲害的一個方法。

             

二、亮點

1、提出了全卷積網絡的概念,將Alexnet這種的最后的全連接層轉換為卷積層,好處就是可以輸入任意的scale。

    只不過在輸出的scale不同的時候,feature map的大小也不同,因為這里的目的是最piexl的語義分割,所以其實不重要。

 

    在Alexnet基礎上, 最后的channel=4096的feature map經過一個1x1的卷積層, 變為channel=21的feature map, 然后經過上采樣和crop, 變為與輸入圖像同樣大小的channel=21的feature map, 也就是圖中的pixel-wise prediction。 在Longjon的試驗中一共有20個語義類別, 加上背景類別每個像素應該有21個softmax預測類, 因此pixel-wise prediction中channel=21。

 

2、如何做上采樣的?

     對CNN的輸出結果進行upsampling,上采樣的參數是可學習的,這里采用的方法是反卷積,其實跟BP的求卷積層的梯度是一樣的算法,最后得到一個和原圖一樣大小的輸出,輸出結果為對每個像素的分類。

 

3、如何把全連接層轉換為卷積層?

         

    這篇博文寫的很好http://blog.csdn.net/u010668083/article/details/46650877,這里有一個概念我之前一直模糊了,把全連接層轉換為卷積層,實際上是用一個和輸入的圖像一樣大小的卷積核去做這個操作。對於一個7*7*512的cov輸出,連接到一個1*1*4096的全連接層,轉換的方法也就是:用4096組濾波器,每組濾波器有512組,每組的大小是7*7的(所以我的理解就是..這個濾波器的大小實際上是7*7*512),這樣的話,參數數量一致,最后的輸出也是一致的。在輸出變大的時候,因為是都是卷積層,最后當然可以得到一個上面那張圖的輸出。

 

 

4.refinement

作者發現,直接這樣做效果並不是很好,於是拿出了祖傳trick來解決問題了。

如下圖所示,在最后upsampling的時候,不只用最后一層,還要結合前面幾層一起來做一個fusion,這個很好理解,前面幾層的感受野是比較小的,所以在局部的輸出結果上是不錯的,而后面的輸出感受野是越來越大的,可以說准確率會高一點,進行融合以后,效果好的飛起..

 

三、結論

語義分割方面FCN可以說是開了一個山頭了,我覺得這個想法很好,對於之后的instance segmentation也有很大的幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM