計算機視覺 - 語義分割


FCN - Fully Convolutional Networks for Semantic Segmentation

  1. 全卷積網絡

    1. 將全連接層轉換為卷積層,使得輸入的圖片大小不受限制。
    2. 輸入經過一系列的 Conv-Pooling 后,feature map 比原圖小 (FCN經過了五層 Pooling)
      為了實現pixel-wise prediction,可以采用最近鄰上采樣或者shift-and-stitch方法。或者使用雙線性插值上采樣法
    3. 基於 Patchwise 采樣的訓練方法可以緩解類別不平衡問題和空間相關性問題,但損失了一部分全局信息,是有損采樣。而FCN將整張圖片作為輸入去訓練,保留了全局信息
    4. Pooling 操作會使計算量下降,具有尺度不變性
  2. 架構

    FCN-32s - VGG16 (將全連接轉換成卷積 4096 - 4096) -> 21 Conv 1x1 -> bilinear upsampling 32x -> crop -> softmax loss
    【這里的 filters 為21,是因為數據集中一共有21類】
    輸入圖片在第一層卷積前,padding 100
    轉為卷積的 FC6,FC7 后面接0.5 dropout
    雙線性插值可以用 deconvolution 代替。根據實驗結果,雙線性插值與反卷積產生的效果差別不大。

    pad the input and crop 使得輸入可以為任意大小且輸出與輸入的大小相同

    網絡權重通過遷移對應數據集上的分類網絡得到

    FCN-16s - 計算 Pooling 4 -> 21 Conv 1x1 -> crop 和 FC7 -> 21 Conv 1x1 -> deconv/s2,然后相加 -> deconv/s16 -> crop -> softmax loss
    FCN-8s 同理,但一共訓練了三次,先遷移 VGG16,訓練 FCN-32s,然后遷移並訓練 FCN-16s,最后遷移訓練 FCN-8s

  3. 實驗框架

    在整張圖像上訓練的效果與固定輸入圖片大小,然后 sampling patch【即 crop randomly 】相同
    不需要對 class balancing 單獨處理
    最后一層 deconv 轉換成雙線性,前面的 deconv 在雙線性初始化的情況下再訓練
    【然而,開源的代碼中全部使用雙線性插值的方法】

SegNet - A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

  1. max-pooling 與 sub-sampling 降低了特征的分辨率能力(即無法把握圖片的局部信息)
    SegNet將低分辨率特征映射到輸入分辨率級別。【采用 memorized max-pooling indices 可以獲得更准確的邊界位置信息】
    retrain boundary information in feature maps
    efficient memory and computation
    end-to-end

  2. 結構

    • encoder - 使用 VGG16 的結構,去掉了最后兩層全連接。即 Conv - BN - ReLU 2 2 3 3 3,五次MaxPooling
    • decoder - 將 encoder 翻轉過來。這里的上采樣:Max Pooling時保存位置索引。上采樣時恢復,其他位置置0。這樣的優點是增加邊界描述信息,減少網絡參數,具有通用性
  3. 補充

    訓練過程中增加了類別平衡。一個類別對應的權重為:該類別在訓練圖片中的占比的中位數。
    作者之后又提出了 Bayesian SegNet

DeconvNet - Learning Deconvolution Network for Semantic Segmentation

  1. FCNs 的限制

    • 感受野固定,對於過大的物體可能只看到局部,過小的物體被當作背景
      (skip architecture 在邊界信息和語義信息中進行權衡)
    • 物體的細節結構在encoder過程中丟失
      (bilinear interpolation 直接將 coarse feature maps 擴大32倍)
  2. 本文結構與 SegNet主要區別是

    DeconvNet 在 7x7 feature maps【即 max pooling 5 的輸出】后面接了兩個全連接層
    即與VGG相同

  3. VGG的輸出 1 x 1 x 4096 (deonv7/s1)-> 7 x 7 x 512 (unpool)-> 14 x 14 x 512,然后通過 deconv 和 unpool 交替出現的結構

    這里反卷積為 kernel 3 strides 1 pad 1,即 feature maps 大小不變

  4. Unpool captures example-specific structures
    Unpool追蹤物體的信息
    Deconv captures class-specific structures
    Deconv確定是哪類物體

  5. 訓練過程

    分兩步訓練:簡單樣本 -> 復雜樣本 (目標:instance-wise)

    圖片被分為多張proposals,最終將這些proposals聚合

    fully-connected CRF

    Ensemble

ENet - A Deep Neural Network Architecture for Real-Time Semantic Segmentation

  1. 結構

    end-to-end 和 real time

    input -> initial block -> bottleneck

  2. 策略

    • 圖片分辨率 feature map resolution
      下采樣缺點:損失空間信息,特別是邊緣信息;語義分割要求輸出的大小與輸入相同,使用上采樣會增加模型大小與計算代價
      下采樣優點:更大的感受野,有利於區別不同的類(更具有判別性)【結合 dilated convolution 獲得更大的感受野】
      對於損失空間信息的缺點來說,FCN 采用增加特征圖維度的方法,SegNet 采用記錄 MaxPooling 的索引,ENet 在上采樣時,使用反卷積而不是卷積,同時像 SegNet 一樣記錄 MaxPooling 的索引位置。同時,下采樣率僅為 8x

    • 較早的下采樣 early downsampling
      視覺信息有較大的空間冗余,作者認為最初的網絡層不應該有助於分類,相反,應作為特征處理器和圖像預處理器

    • decoder 結構小於 encoder 結構,不是鏡像對稱的
      encoder 負責信息處理和過濾,decoder 上采樣編碼器的輸出。

    • identify mappings in deep residual networks 指出卷積前加 ReLU 和 BN 的效果好。這里使用 PReLU 代替 ReLU

    • Information-preserving dimensionality changes
      使用 initial block,10倍速度加速
      下采樣時 projection 1x1/s2 轉變為 2x2/s2

    • factorizing filters - 5 x 5 -> 1 x 5 + 5 x 1

    • Dilated convolution
      獲得更大的感受野。但是,交叉使用不同 rate 的空洞卷積的效果更好。
      本文中, dilated 1 -> dilated 2 -> asymmetric 5 -> dilated 4 -> dilated 1 -> dilated 8 -> asymmetric 5 -> dilated 16

    • Regularization 使用了 Spatial Dropout。dropout rate 0.01

Deeplab -Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

DCNN 具有平移不變性,使網絡學到抽象的判別特征 abstract data representation
但損失了空間信息,不適合 dense prediction

語義分割面臨三個挑戰

  1. reduced feature resolution 由於下采樣使得特征精度下降 -> atrous convolution

  2. 存在不同尺度大小的物體 -> atrous spatial pyramid pooling ASPP

  3. 平移不變性導致位置信息精度下降及邊界信息丟失 -> fully connected pairwise CRF

空洞卷積擴大感受野的同時不需要增加參數和計算量

方法

  1. 空洞卷積:在不增加計算量的情況下擴大感受野,因此可以減小降采樣率

  2. ASPP:Pool5 后,使用 rate 為 6,12,18,24 的空洞卷積,然后經過 FC7 1x1 + FC8 1x1,最后四路相加合並

  3. FC CRF:每個像素 i 具有類別標簽 \(x_i\) 與觀察值 \(y_i\)
    \(P(X=x|I) = \frac{exp(-E(X|I))}{Z(I)}\)
    \(E(X|I) = \sum_{i} \theta_i(x_i) + \sum_{ij} \theta_{ij} (x_i, x_j)\)

    \(\theta_{ij}\) 與位置、顏色有關
    實際使用中,使用平均場近似方法

后續論文

  1. Rethinking Atrous Convolution for Semantic Image Segmentation

  2. Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

  3. Understanding Convolution for Semantic Segmentation


免責聲明!

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



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