影像分割

全卷積網路

全卷積網路(fully convolutional network,FCN)是把分類用的 CNN 端對端地改造成像素標記器的突破。其訣竅簡單卻深刻。像 VGG 這類分類器的尾端是全連接層(fully connected layers),會把空間特徵圖壓成一個向量與一個標籤——丟失了所有位置資訊。FCN 由 Long、Shelhamer 與 Darrell 於 2015 年提出,把那些全連接層重新詮釋為 1×1 卷積。由於每一層現在都是卷積,網路可接受任意輸入尺寸,並產生一張空間網格的類別分數,而非單一標籤。

然而那張網格很粗——反覆的池化已將它縮小(通常為 32 倍)。為了恢復完整解析度,FCN 接上可學習的上採樣層(轉置卷積 transposed convolution,有時鬆散地稱為反卷積 deconvolution),把分數圖放大回輸入尺寸。天真地放大 32 倍會得到模糊、團塊狀的遮罩,因此 FCN 加入跳接(skip connections):把來自深層、語意豐富但粗糙的預測,與來自淺層、解析度較高的較細預測結合起來。FCN-32s、FCN-16s、FCN-8s 三個變體的差別在於融合了幾條跳接;融合最多細節的 FCN-8s 輸出最俐落。

概念上,FCN 像是把一個分類器在影像上滑動、在每個位置讀出一個類別,但它透過共享計算在單一次前向傳遞中高效完成。這一個想法——把稠密層換成卷積、再上採樣——是後來幾乎每一個分割架構的根基,包括 U-Net、SegNet 與 DeepLab 家族。連 Mask R-CNN 都用一個迷你 FCN 作為它逐區域的遮罩頭。

「反卷積」是借自訊號處理的誤稱;FCN 的上採樣層並不會反轉卷積,它是一個可學習的轉置卷積。現代程式常以雙線性上採樣加上一個普通卷積取代它,以避免棋盤格狀偽影(checkerboard artifacts)。

又称
FCN