卷積神經網絡CNN(YannLecun,1998年)通過構建多層的卷積層自動提取圖像上的特征,一般來說,排在前邊較淺的卷積層采用較小的感知域,可以學習到圖像的一些局部的特征(如紋理特征),排在后邊較深的卷積層采用較大的感知域,可以學習到更加抽象的特征(如物體大小,位置和方向信息等)。CNN在圖像分類和圖像檢測領域取得了廣泛應用。
CNN提取的抽象特征對圖像分類、圖像中包含哪些類別的物體,以及圖像中物體粗略位置的定位很有效,但是由於采用了感知域,對圖像特征的提取更多的是以“一小塊臨域”為單位的,因此很難做到精細(像素級)的分割,不能很准確的划定物體具體的輪廓。
針對CNN在圖像精細分割上存在的局限性,UC Berkeley的Jonathan Long等人2015年在其論文 “Fully convolutional networks for semantic segmentation”(用於語義分割的全卷積神經網絡)中提出了Fully Convolutional Networks (FCN)用於圖像的分割,要解決的核心問題就是圖像像素級別的分類。論文鏈接: https://arxiv.org/abs/1411.4038
FCN與CNN的核心區別就是FCN將CNN末尾的全連接層轉化成了卷積層:

以Alexnet為例,輸入是227*227*3的圖像,前5層是卷積層,第5層的輸出是256個特征圖,大小是6*6,即256*6*6,第6、7、8層分別是長度是4096、4096、1000的一維向量。

在FCN中第6、7、8層都是通過卷積得到的,卷積核的大小全部是1*1,第6層的輸出是4096*7*7,第7層的輸出是4096*7*7,第8層的輸出是1000*7*7(7是輸入圖像大小的1/32),即1000個大小是7*7的特征圖(稱為heatmap)。

經過多次卷積后,圖像的分辨率越來越低,,為了從低分辨率的heatmap恢復到原圖大小,以便對原圖上每一個像素點進行分類預測,需要對heatmap進行反卷積,也就是上采樣。論文中首先進行了一個上池化操作,再進行反卷積,使得圖像分辨率提高到原圖大小:


