DCNN在語義分割這一塊的侷限性:
(1) 分辨率降低(max-pooling and downsampling 的stride引發)reduced feature resolutionhtml
引用了FCN作語義分割的[14] ,並指出其缺點是空間分辨率大大下降!做者爲克服該問題,去掉了池化後幾層的下采樣操做,而在後續的幾層卷積層中加入了上採樣操做。
Use atrous convolution as a shorthand for convolution with upsampled filters
atrous convolution [3,6,16]算法
相比採用deconv(反捲積)的方法[13,14],做者採用的atrous conv+線性插值的方法也很是有效。
其優點在於:不須要增長參數的個數,而能夠得到更大的感知野。網絡
(2) 物體存在不一樣的尺度(existence of objects at multiple scales)
對這個問題,一般的作法是將同一幅圖像的不一樣吃錯的feature/score map聚合獲得結果[6,17,18]。這方法的確能夠增提升性能,可是增長量計算量。參考SPP的作法,做者提出了在卷積操做以前小對給定的feature layer用多種採樣率進行 resample
即採用多個並行的不一樣採樣率的atrous convolutional layers(ASPP)app
(3) 定位不精確(reduced localization accuracy due to DCNN invariance)
這是因爲物體檢測時須要對空間變換具備不變性,所以限制了DCNN的空間精度。
解決該問題的一個辦法是:skip-layers ,從多層提取出hyper-column features
做者則是提出了一個更爲有效的方法:採用一個fully-connected CRF[22] 框架
算法基本框架:
(1)基於VGG-16/ResNet-101(效果可能比VGG-16更好)進行變化:先將全部的全鏈接層換成卷積層 [14],而後經過atrous conv提升feature的分辨率(從32x到8x)
(2)Bi-linear interpolation : factor =8 這樣把score map尺寸變回到原圖像尺寸。
(3)結果送入CRF 來refine分割結果。
算法優勢:
(1)速度快: 8FPS
(2)精度高:在PASCAL VOC 2012 semantic segmentation benchmark [34], PASCAL-Context [35], PASCALPersonPart [36], and Cityscapes [37]上取得了較好的成果。
(3)簡單:主要由兩部分組成:DCNN和CRFdom
第一類:傳統的方法
第二類:CNN提取特徵作稠密的image labeling
[21] use skip layer-> pixel 分類
[51] pool 中間的feature maos by region proposals
第三類:直接用DCNN 獲得抽魔的category-level pixel labels(甚至都不須要分割了),相關工做有[14,52], 將最後的全鏈接層替換爲全卷積層。針對空間定位問題,[14]採用上採樣並將中間過程的feature maps獲得的score鏈接起來,而[52] 是將粗略的結果經過另外一個DCNN進行refine.
近期進展:
- End-to-end training for structured prediction
[40], [59],[62], [64], [65]
[18], [68] combine semantic segmentation with edge detection.
- Weaker supervision
[49], [73] pursue instance segmentation, jointly tackling object detection and semantic segmentation.ide
atrous conv: 能夠擴大filter的感知野函數
FCN【14】中對分辨率降低的補救方法是反捲積;做者採用的是atrous convolution
以1D爲例,the output y[i] of atrous convolution 2 of a 1-D input signal x[i] with a filter w[k] of length K is defined as:
(見論文)
而在標準的卷積中,採樣率r=1 性能
受SPP的啓發,一個任意尺寸的區域能夠經過對一個固定尺度下的卷積特徵進行resample
本文采用的是多個並行的不一樣採樣率的atrous 卷積層,最後整合在一塊兒。 spa
解決方法:
1)[14] ,[21],[52] 將卷積網絡不一樣層的信息進行合併。
2)[50] 採用super-pixel -> 變成一個low-level 分割問題。
做者採用的是CRF 而且不能用局部的,要用全局的[22]。
能量函數參考[22]:
[14] J. Long, E. Shelhamer, and T. Darrell, 「Fully convolutional networks for semantic segmentation,」 in CVPR, 2015.
[18] I. Kokkinos, 「Pushing the boundaries of boundary detection using deep learning,」 in ICLR, 2016.
[21] B. Hariharan, P. Arbel´aez, R. Girshick, and J. Malik, 「Hypercolumns for object segmentation and fine-grained localization,」 in CVPR, 2015.
[22] P. Kr¨ahenb ¨ uhl and V. Koltun, 「Efficient inference in fully connected crfs with gaussian edge potentials,」 in NIPS, 2011.
[51] J. Dai, K. He, and J. Sun, 「Convolutional feature masking for joint object and stuff segmentation,」 arXiv:1412.1283, 2014 [52] D. Eigen and R. Fergus, 「Predicting depth, surface normals and semantic labels with a common multi-scale convolutional architecture,」arXiv:1411.4734,2014. [68] G. Bertasius, J. Shi, and L. Torresani, 「High-for-low and low-forhigh: Efficient boundary detection from deep object features and its applications to high-level vision,」 in ICCV, 2015.