語義分割領域初期思路總結

語義分割領域初期思路總結

來自專欄語義分割刷怪進階

學習了一些深度學習語義分割領域初期的論文,所以整理一下學習的心得

主體是我為月總結做的PPT,所以直接就把PPT轉成圖片放進來了

寫這個的時候我只看了幾篇領域初期的論文,所以說的也不一定對,理解的若是有問題歡迎大佬指正,下圖是目錄


一、語義分割任務分析

計算機視覺三個比較典型的任務是分類、檢測和分割。(當然還有其它的任務啦)

針對一張圖片,圖像分類這個任務只要求從圖片中提取出來類別這一個單獨的信息即可。

而物體檢測,則需要從一張圖片中定位出來物體,同時標註出來物體的位置和類別。也就是說物體檢測這個任務需要從一張圖片中同時提取出來類別、位置這兩個信息,同時一張圖片中可能有多個物體,要都標註出來。

再說語義分割,語義分割就要求把圖像中每一個像素都用類別的標籤給它標註上。即語義分割要從一張圖片中提取出來類別、位置/邊界的信息同時這個工作是針對所有的像素進行的。

--

所以從上邊應該能看出來,分類、檢測、語義分割這三個任務需要從圖片當中提取的信息是越來越多的。比較這三個任務誰更難沒有意義,哪個領域達到頂尖的水準都是一件極難的事,但是從「圖片中提取出來的信息」這個角度來看,語義分割相對來說需要的信息更多。

從上圖這些論文也可以看出來,深度學習在每個領域獲得成功應用的時間也是一步一步來的(只討論2012年以後的事。。)

深度學習應用於圖像分類Alex Net,2012年

深度學習應用於物體檢測 R-CNN,2013年

深度學習應用於語義分割 FCN,2014年11月

--

下面來簡單說一下將深度學習成功應用於物體檢測領域的論文R-CNN的做法

輸入一張圖片——對圖像生成1K~2K個候選區域(從原圖上裁剪出來的不同大小不同位置的小圖)——對每個候選區域,使用CNN提取特徵——特徵送入每一類的SVM 分類器(分類) ——使用回歸器精細修正候選框位置

所以R-CNN就相當於把檢測問題給轉化成了分類問題,演算法中的CNN實際上還是在進行分類,定位是由演算法中其他的部分完成的

--

所以,能否也像檢測一樣也把分割問題轉化為分類問題?

可以實現,但是十分的耗費計算量和時間。用這種方法的話,對一張200*200的圖片分割,就是對40000個像素點分類。即使裁剪成大一些的圖像塊,也會增加很多數量,而且如果是使用圖像塊的話,最終的分割結果也會是塊狀的。並且這種方法還存在著很多重複的計算,明顯不夠理想。

所以問題就變成了能否直接使用CNN來做分割


二、FCN思路回溯

2013年ImageNet的冠軍是ZF-Net,上邊是這篇論文的主要工作

一些論文的結論

由ZF-Net論文里的結論來看,深度網路里本身就是存在著很多類別、位置信息的,但是全連接層會直接把前面卷積層中的特徵都抽象成一維的概率信息。所以怎樣既利用上CNN卓越的分類性能,還能保留下來CNN里的圖像特徵呢?

全卷積神經網路出現,FCN的想法就是不要全連接層了,都用卷積層,這樣深度網路輸出的就是一個二維的圖了,既能對每個像素點分類,還能保持是一張「圖」的狀態。

但是feature map經過一系列卷積池化等操作後解析度變的很低了,所以就再用上採樣的手段把特徵圖還原回原圖解析度。

不過還存在著一些問題。

分類和分割這兩種任務本身就存在著一些矛盾。做分類決策時,其實是不需要太多細節和邊緣信息的,只需要看一個大概就基本能知道圖片中的東西是哪一類。所以分類CNN中使用了卷積和池化等下採樣手段,節省計算量,提升特徵的不變性,簡化為更高層的語義特徵。但是對於分割來說,這些下採樣會丟失大量細節和邊緣信息,顯然不利於準確的分割。

--

直接進行上採樣,效果很差。即使是用反卷積這種可學習的方式,效果也不好,畢竟很多的信息都在下採樣階段丟掉了。

所以問題就變成,能否把分類過程中下採樣階段丟失的信息找回來呢?

因此,FCN上採樣階段採用了加和的方式找回下採樣階段丟失的信息。直接把編碼階段的特徵圖加到解碼階段來。


三、領域初期論文思路總結

四篇,主要我寫這個的時候就看了這麼幾篇。。。。

FCN,領域開山作,大體思路第二節講了。

更多細節可以看我之前寫的FCN文章:

加油可好:FCN學習筆記?

zhuanlan.zhihu.com圖標

FCN發表後DeepLab V1發表,發表時性能比FCN更好。

DeepLab在編碼階段的全卷積網路中引入了空洞卷積,上採樣階段沒有使用反卷積和FCN的加和特徵圖的方式,而是直接雙線性插值。還原回原解析度後再使用全連接條件隨機場CRF進行後處理,修正分割結果。

更多細節可以看我之前寫的DeepLab V1文章:

加油可好:DeepLab V1 論文筆記?

zhuanlan.zhihu.com圖標

DeconvNet使用了反卷積作為上採樣的手段。反卷積用來平滑反池化後的結果,特徵圖大小不變,不做上採樣。上圖中(c)(e)(g)(i)是反池化後的結果,可以看到有值的區域是不相連的,(d)(f)(h)(j)是反卷積後的結果,可以看到有值的區域是平滑的。

DeconvNet還使用了目標檢測中的圖像塊proposal的方法來提升結果,個人感覺這種做法和全卷積的思想有點背離,純粹是為了讓分更高點,而且效果好像也不如CRF好。

更多細節可以看我之前寫的DeconvNet文章:

加油可好:DeconvNet 學習筆記?

zhuanlan.zhihu.com圖標

U-Net是發於醫學影像社區的論文,十分適合小數據集,想法簡潔有效,很叼。

比較重要的創新點就是U-Net把編碼階段的特徵圖全部送到了解碼階段,雖然一定程度上加大了顯存開銷,但是相當於把所有編碼階段丟失的細節信息全找了回來。使用特徵拼接的方式把編碼階段的特徵圖和解碼階段的特徵圖拼一塊,用卷積來學習,使用反卷積上採樣。

更多細節可以看我之前寫的DeconvNet文章:

加油可好:U-Net 論文筆記?

zhuanlan.zhihu.com圖標


推薦閱讀:

練習題︱圖像分割與識別——UNet網路練習案例(兩則)
【論文閱讀】Fully Convolutional Networks for Semantic Segmentation
ExFuse: Enhancing Feature Fusion for Semantic Segmentation
如何妙筆勾檀妝:像素級語義理解
複雜環境下的視頻流識別—茫茫大海中一眼看到你 | 解讀技術

TAG:深度學習DeepLearning | 圖像分割 | 總結 |