1. 程式人生 > >Fully Convolutional Networks for Semantic Segmentation論文閱讀

Fully Convolutional Networks for Semantic Segmentation論文閱讀

FCN: Fully Convolutional Networks for Semantic Segmentation

作者:Jonathan Long, Evan Shelhamer ,Trevor Darrell

UC Berkeley
[pdf]—CVPR2015Best Paper

0. 簡介

本文將經典網路結構(AlexNet,VGG等)改為全卷積神經網路,通過有監督預訓練的方法端到端的完成image semantic segmentation這種畫素級任務,取得了 state- of-the-art segmentation of PASCAL VOC (20% relative improvement to 62.2% mean IU on 2012)。文中利用skip connection結合深淺層資訊,使得分割結果更加精細,即解決semantics and location之間的矛盾。

a skip architecture that combines semantic information from a deep, coarse layer with appearance information from a shallow, fine layer to produce accurate and detailed segmentations.

fcn

1.Fully convolutional networks定義

卷積神經網路中的常見層(卷積,池化,啟用函式)都是隻依賴於相對空間座標,記:

xijfeaturemap(i,j)yij
那麼
yij=fks({xsi+δi,sj+δj}0δi,δjk)

k是kernel size,s是stride,f決定層的型別。若上式中的函式形式經複合後保持相同的形式,且其kernel size和stride滿足下式如下變換規則:

fksgks=(fg)k+(k1)s,ss.
這樣的網路叫做全卷積神經網路。全卷積網路(FCN)可以處理任意大小的輸入,併產生對應大小的輸出。計算損失函式時也與patchwise處理具有相同作用,如果損失函式是對最後一層所有空間維度損失函式的和,即:
l(x;θ)=ijl(xij;θ)
,則損失函式的梯度是每個空間組成部分梯度之和。則在整張圖上對l進行梯度下降等同於將最後一層所有感受野組成一個mini-batch。然後對l′進行梯度下降。當這些感受野重疊很多時,直接使用整張圖進行運算patchwise要有效率。

3. Adapting classifiers for dense prediction

dense2conv

帶有全聯接層的網路結構要求input size是固定的,可以利用kernel size 定義為 feature map size大小的卷積來代替全連線網路,如上圖,第一個全連線改為4096個(6*6)的卷積,之後兩層定義為若干個1*1的卷積。這樣對於任意尺寸的輸入影象,都可以通過改變的網路計算得到相應的heatmap。

4.Upsampling is backwards strided convolution

為了完成從高層語義特徵到畫素類別的對映,作者應用了 deconvolution,文中作者提到了Decreasing subsampling 和shift-and-stitch trick方法,但是應用到網路中都是不同組成件的trade-off。其實插值法是deconvolution中的一個特例,文中指出反捲積中的引數不需要固定,引數也隨著訓練更新。

5. Segmentation Architecture

We decapitate each net by discarding the final classifier layer, and convert all fully connected layers to convolutions. We append a 1 × 1 convolution with channel dimension 21 to predict scores for each of the PASCAL classes (including background) at each of the coarse output locations, followed by a deconvolution layer to bilinearly upsample the coarse outputs to pixel-dense outputs.

作者實驗了幾種網路結構,實驗結果如下:
netselect
最終實驗網路為VGG-16。
arch
FCN-32s直接將conv7的輸出進行反捲積上取樣到與輸入尺寸相同,最終得到的分割結果比較粗糙,作者提出要將高層語義資訊於淺層位置資訊結合的方法,得到FCN-16s,FCN-8s。FCN-16s將conv7進行上取樣2倍至pool4大小,然後將其進行相加,接著再上取樣16倍至輸入圖片大小;FCN-8s綜合了conv7,pool4,poo3的輸出,實驗證明這種結構效果最好。

實驗結果

comp
與其他方法對比,大幅度領先。
show