日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

语义分割研究进展

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 语义分割研究进展 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://m.blog.csdn.net/article/details?id=52434826

介紹

圖像語義分割,簡單而言就是給定一張圖片,對圖片上的每一個像素點分類從圖像上來看,就是我們需要將實際的場景圖分割成下面的分割圖:

不同顏色代表不同類別。
經過我閱讀“大量”論文(羞澀)和查看Pascal VOC 2012 Learderboard,我發現圖像語義分割從深度學習引入這個任務(FCN)到現在而言,一個通用的框架已經大概確定了。即:
原圖
FCN/SegNet/DeconvNet/DeepLab
CRF/MRF
分割圖
FCN-全卷積網絡
CRF-條件隨機場
MRF-馬爾科夫隨機場
前端使用FCN進行特征粗提取,后端使用CRF/MRF優化前端的輸出,最后得到分割圖。
接下來,我會從前端和后端兩部分進行總結。

前端

為什么需要FCN
我們分類使用的網絡通常會在最后連接幾層全連接層,它會將原來二維的矩陣(圖片)壓扁成一維的,從而丟失了空間信息,最后訓練輸出一個標量,這就是我們的分類結果。
而圖像語義分割的輸出需要是個分割圖,且不論尺寸大小,但是至少是二維的。所以,我們需要丟棄全連接層,換上全卷積層,而這就是全卷積網絡了。具體定義請參看論文:Fully Convolutional Networks for Semantic Segmentation

前端結構

FCN

此處的FCN特指Fully Convolutional Networks for Semantic Segmentation論文中提出的結構,而非廣義的全卷積網絡。
作者的FCN主要使用了三種技術:
- 卷積化(Convolutional)
- 上采樣(Upsample)
- 跳躍結構(Skip Layer)

卷積化

卷積化即是將普通的分類網絡,比如VGG16,ResNet50/101等網絡丟棄全連接層,換上對應的卷積層即可。如下圖:

上采樣

此處的上采樣即是反卷積(Deconvolution)。當然關于這個名字不同框架不同,Caffe和Kera里叫Deconvolution,而tensorflow里叫conv_transpose。CS231n這門課中說,叫conv_transpose更為合適。
眾所諸知,普通的池化(為什么這兒是普通的池化請看后文)會縮小圖片的尺寸,比如VGG16 五次池化后圖片被縮小了32倍。為了得到和原圖等大的分割圖,我們需要上采樣/反卷積。
反卷積和卷積類似,都是相乘相加的運算。只不過后者是多對一,前者是一對多。而反卷積的前向和后向傳播,只用顛倒卷積的前后向傳播即可。所以無論優化還是后向傳播算法都是沒有問題。圖解如下:

但是,雖然文中說是可學習的反卷積,但是作者實際代碼并沒有讓它學習,可能正是因為這個一對多的邏輯關系。代碼如下:

layer {name: "upscore"type: "Deconvolution"bottom: "score_fr"top: "upscore"param {lr_mult: 0}convolution_param {num_output: 21bias_term: falsekernel_size: 64stride: 32} }

可以看到lr_mult被設置為了0.

跳躍結構

(這個奇怪的名字是我翻譯的,好像一般叫忽略連接結構)這個結構的作用就在于優化結果,因為如果將全卷積之后的結果直接上采樣得到的結果是很粗糙的,所以作者將不同池化層的結果進行上采樣之后來優化輸出。具體結構如下:

而不同上采樣結構得到的結果對比如下:

當然,你也可以將pool1, pool2的輸出再上采樣輸出。不過,作者說了這樣得到的結果提升并不大。
這是第一種結構,也是深度學習應用于圖像語義分割的開山之作,所以得了CVPR2015的最佳論文。但是,還是有一些處理比較粗糙的地方,具體和后面對比就知道了。

SegNet/DeconvNet

這樣的結構總結在這兒,只是我覺得結構上比較優雅,它得到的結果不一定比上一種好。
SegNet

DeconvNet

這樣的對稱結構有種自編碼器的感覺在里面,先編碼再解碼。這樣的結構主要使用了反卷積和上池化。即:


反卷積如上。而上池化的實現主要在于池化時記住輸出值的位置,在上池化時再將這個值填回原來的位置,其他位置填0即OK。

DeepLab

接下來介紹一個很成熟優雅的結構,以至于現在的很多改進是基于這個網絡結構的進行的。
首先這里我們將指出一個第一個結構FCN的粗糙之處:為了保證之后輸出的尺寸不至于太小,FCN的作者在第一層直接對原圖加了100的padding,可想而知,這會引入噪聲。
而怎樣才能保證輸出的尺寸不會太小而又不會產生加100padding這樣的做法呢?可能有人會說減少池化層不就行了,這樣理論上是可以的,但是這樣直接就改變了原先可用的結構了,而且最重要的一點是就不能用以前的結構參數進行fine-tune了。所以,Deeplab這里使用了一個非常優雅的做法:將pooling的stride改為1,再加上1padding。這樣池化后的圖片尺寸并未減小,并且依然保留了池化整合特征的特性。
但是,事情還沒完。因為池化層變了,后面的卷積的感受野也對應的改變了,這樣也不能進行fine-tune了。所以,Deeplab提出了一種新的卷積,帶孔的卷積:Atrous Convolution.即:

而具體的感受野變化如下:

a為普通的池化的結果,b為“優雅”池化的結果。我們設想在a上進行卷積核尺寸為3的普通卷積,則對應的感受野大小為7.而在b上進行同樣的操作,對應的感受野變為了5.感受野減小了。但是如果使用hole為1的Atrous Convolution則感受野依然為7.所以,Atrous Convolution能夠保證這樣的池化后的感受野不變,從而可以fine tune,同時也能保證輸出的結果更加精細。即:

總結
這里介紹了三種結構:FCN, SegNet/DeconvNet,DeepLab。當然還有一些其他的結構方法,比如有用RNN來做的,還有更有實際意義的weakly-supervised方法等等。

后端

后端全都是數學公式,就不復制了。
引用
[1]Fully Convolutional Networks for Semantic Segmentation
[2]Learning Deconvolution Network for Semantic Segmentation
[3]SegNet
[4]Efficient Inference in Fully Connected CRFs with Gaussian Edge Potentials
[5]Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs
[6]Conditional Random Fields as Recurrent Neural Networks
[7]DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,
and Fully Connected CRFs
[8]Semantic Image Segmentation via Deep Parsing Network

總結

以上是生活随笔為你收集整理的语义分割研究进展的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。