1. 程式人生 > >FCN(Fully Convolutional Network)與Unet:談到語義分割不得不提的兩個網路

FCN(Fully Convolutional Network)與Unet:談到語義分割不得不提的兩個網路

語義分割經典之作:FCN(Fully Convolutional Network)

參考論文:Fully Convolutional Networks for Semantic Segmentation. Jonathan Long ,Evan Shelhamer ,Trevor Darrell

FCN毫無疑問是語義分割領域的經典之作,在FCN出現之前,傳統的CNN分割是將畫素周圍一個小區域作為CNN輸入,做訓練和預測,這樣低效且不準確(忽略整體資訊)。CNN主要有三點創新:

• 卷積化:即將傳統CNN結構(文中提到的Alexnet、VGG)最後的全連線層改成卷積層,以便進行直接分割,這是十分有創造性的。
• 上取樣:由於網路過程中進行了一系列下采樣,使得特徵層大小減小,了最後得到的預測層和原圖一致,需要採用上取樣,作用類似於反捲積。
• 並聯跳躍結構:想法類似於resnet和inception,在進行分類預測時利用多層資訊,具體如下圖:

Unet:醫學影像分割的基石

參考論文:U-Net: Convolutional Networks for Biomedical Image Segmentation. Olaf Ronneberger, Philipp Fischer, and Thomas Brox

我翻閱很多醫學影像分割的論文,大部分都以Unet為基礎進行改良,可見其重要性。而Unet是在FCN的基礎上進行改良的,其網路結構如下:

   可見,Unet 包括左邊的收縮路徑和右邊的擴張路徑。收縮路徑就是經結構,包括幾個 3 × 3 的卷積加 RELU 啟用層再加 2 × 2maxpooling 的結構(stride :2) ,下采樣的每一步特徵通道數都增加一倍。擴張路徑的每一步包括上取樣、 2 × 2 卷積(減少一半通道數),和相應收縮路徑中的剪裁過的特徵層的串聯以及兩個 3 × 3 卷積加 RELU 。最後一層用了 1 × 1 卷積把64個通道
對映到想要的類別種類數。

  這篇論文中優化用的是SGD with momentum, 能量函式十分有趣,用了加權的交叉熵形式,而不是通常的平均形式:

 其中

即畫素點形式的softmax。

其中 w(x) 表示訓練構成中畫素點的重要性,越重要權重越大。由於分割問題邊界處的分割一直是難題,因此本文賦予邊界處更高的權重以達到精確分割:

上式 d 1 表示此畫素點到離他最近的cell的邊界的距離,d 2 表示此畫素點到離他第二近的cell的邊界的距離。這樣離邊界越近的畫素點權重越大,因而也會被著重訓練。此舉取得了很好的效果,這個idea也可謂讓人拍案叫絕。