Fully Convolutional Networks 論文閱讀

李謦伊
謦伊的閱讀筆記
6 min readMay 6, 2021

由於 CNN 最後一層都是使用全連接層來獲得分類預測機率,無法應用於語義分割 (Semantic Segmentation) 任務上,因為該預測機率是一維的且丟失了輸入的空間訊息,不能預測每個像素點的分類。為了改善這個問題,Fully Convolutional Networks (FCN) 於 2014 年提出,為影像分割奠定了很重要的基礎。

📝 Paper: https://arxiv.org/abs/1411.4038

Semantic Segmentation 是 Computer Vision (CV) 領域的一個重要應用,該任務是針對各個像素點做分類,把相同類別的物件劃分在一起,與分類、定位任務不大相同。

Semantic Segmentation

FCN 的主要思想就是將全連接層替換為卷積層,並且可輸入任意尺寸的影像,輸出會得到每個像素所屬的類別 dense prediction,如此一來可以將其應用於 Semantic Segmentation 任務上,同時實現了 end-to-end 訓練。

下圖是以 AlexNet 為例,將全連接層都改為卷積層,其中最後一層特徵圖的大小為原來的 1/32 倍。

接著需要進行上採樣 (upsampling) 至與原來輸入同樣大小的特徵圖,也就是把經過 pooling 後變小的特徵圖變大,進而得到 dense prediction。作者使用反卷積的方法來進行上採樣,最後輸出的通道數為 21,是由 20 個類別 + 1個背景類所組成。

反卷積 (Deconvolution) 又被稱為轉置卷積 (Transposed Convolution),具體運算過程如下圖,詳細概念可以參考: 一文看懂反卷積層

source

FCN 上採樣操作方式如下圖,分為 FCN-32s,FCN-16s,FCN-8s

  • FCN-32s: 由下圖可看到輸入會經過五次卷積和池化運算,因此最後一層特徵圖大小會是原來的 1/32 倍,因此要將第五層的輸出放大 32 倍 (32x upsampling)
  • FCN-16s:由於採用 32x upsampling 的方式無法修復一些細節,為了優化預測結果,先在 pool4 加上一個 1x1 卷積層產生 pool4 prediction,接著在 pool5 做 2x upsampling,再把兩者相加 (此時兩者維度相同),最後再進行 16x upsampling
  • FCN-8s: 基於同樣的思想,將剛剛 pool5 2x upsampling 與 pool4 prediction 相加所得的特徵做 2x upsampling,然後也在 pool3 加上一個 1x1 卷積層得到 pool3 prediction,把兩者相加再進行 8x upsampling

而這樣的操作只做到 FCN-8s,因為得到的提升結果有限。可由下圖看到 FCN-32s,FCN-16s,FCN-8s 的結果。

與當時的 SOTA 模型 SDS 及 R-CNN 於 VOC 2011, 2012 資料集上比較,FCN能夠得到更好的結果,同時提升推理速度。

Evaluation metrics

接著要介紹在 Semantic Segmentation 常用的指標,都是建立於 Confusion Matrix 的基礎之上 (TP, FP, FN),關於這部分在之前的文章有講解過。

先定義一下參數

令 i 為要預測的目標類別、j 為其他類別

n_ii 為類別 i 被預測為類別 i 的像素數量,指 True Positive

n_ij 為類別 i 被預測為類別 j 的像素數量,指 False Negative

n_ji 為類別 j 被預測為類別 i 的像素數量,指 False Positive

n_cl 為所有的類別數 (分類+背景類)

t_i 是指所有 n_ij 的總數+ n_ii 的總數,也就是類別 i 的總像素

Pixel accuracy

預測類別正確的像素佔總像素的比例

mean accuracy

基於 Pixel accuracy 所改進的指標,先計算每個類別的預測準確率後再求平均

mean IU (mIOU)

計算所有像素類別的平均 IOU,是目前廣泛使用的標準指標

單看公式可能覺得有點複雜,因此我畫了一個圖來幫助釐清觀念~~

frequency weighted IU

基於 mIOU 所改進的指標,會依據每個類別出現的頻率設置權重

Dice

Dice loss 是由 V-Net 提出的 Loss function,常用於醫學影像分割上,公式如下,其中 s 為 Dice coefficient,用於計算 X, Y 樣本間的相似度,值範圍介在 0~1 之間。

source

--

--