1. 程式人生 > >實時語義分割--ICNet for Real-Time Semantic Segmentation on High-Resolution Images

實時語義分割--ICNet for Real-Time Semantic Segmentation on High-Resolution Images

語義分割演算法精度和速度對比:

這裡寫圖片描述
由圖可以看出,ResNet38,PSPNet,DUC精度雖然較高,但是無法速度相對較慢,無法達到實時,ENet速度較快,但精度較低,而本文演算法既可以達到實時,精度也相對較高.

Speed Analysis

PSPNet50的處理不同大小的輸入影象所需時間:

這裡寫圖片描述

圖中,stage5的卷積核個數為stage4的兩倍,由圖可知,當輸入影象尺寸增加時,卷積核越多,時間增長程度越大,執行時間與輸入影象大小成正比.

加速方案

文章分別分析了三種可行的加速方案的可行性.

方案(1):輸入下采樣

這裡寫圖片描述

如圖3所示,下采樣尺度為0.25,時間較少,但是得到的f分類結果太粗略,很多小的,重要的細節沒有分類出來;尺度為0.5時,相對能分類出更多的物體,但是遠處的人和交通等仍然沒有分類出來;而且需要時間太多,無法達到實時.因此考慮方案(2).

方案(2):特徵下采樣

除了直接對輸入影象下采樣,另一種直接的方法是對feature map下采樣.文獻19的FCN網路對feature map下采樣32次,DeepLab(文獻2) 8次.為了驗證特徵下采樣效果,測試下采樣率分別為1:8,1:16,1:32次的效果,如表1.

這裡寫圖片描述

然而,取樣率為1:32時,時間仍需要131ms,仍然無法實時.

方案(3):模型壓縮(Model Compression)

採用文獻13的模型壓縮方案,對於每個濾波器,首先計算濾波核權重weights的L1的和;然後,對L1和進行降序排序,僅保留前k個更有意義的值.試驗對比如表2所示.

這裡寫圖片描述

雖然僅僅保留了一部分核權值,如Rates為0.25時,執行時間仍然需要72ms,時間仍然太長,而且精度下降很多.

ICNet

以上分析證明,要設計實際的實時分割網路是非常困難的,採用下采樣輸入影象雖然可以減小執行時間,但預測結果會丟失很多細節資訊,直接輸入影象,又需要很多執行時間.因此本文提出影象級聯網路(Image Cascade Network,ICNet),ICNet網路結構如下:

這裡寫圖片描述

網路輸入從上到下,分別為三個尺度的下采樣影象,scale值分別為1/4,1/2,1,分別定義為Low Resolution,Median Resolution,High Resolution(低解析度,中解析度,高解析度)影象.

Low Resolution

分支1,如圖4中,第一行,低解析度影象輸入到一個FCN-based PSPNet 結構,網路輸出為原始輸入的1/32大小的feature maps.

Median Resolution

分支2,如圖4中,第二行,低解析度影象輸入到3個卷積層,downsampling rate 8,網路輸出為原始輸入的1/16大小的feature maps.1/16的feature maps和1/32的feature maps通過CFF(cascade feature fusion)單元聚合,得到輸出為1/16的feature map.

High Resolution

分支3,如圖4中,第二行,低解析度影象輸入到3個卷積層(卷積核為3×3,stride=2),downsampling rate 8,網路輸出為原始輸入的1/8大小的feature maps.1/8的feature maps和1/16的feature maps通過CFF(cascade feature fusion)單元聚合,得到輸出為1/8的feature map.

在訓練的時候,在每個分支中,引入不同解析度的真實label影象,即輔助學習策略,並在測試的時候去掉這些模組.

CFF(cascade feature fusion)

CFF模組結構如下:

這裡寫圖片描述

圖中,F1,F2分別為輸入feature maps,且F2大小為F1的兩倍.LABEL為ground truth label.首先對F1 upsampling到與F2同樣大小,再對其進行dilated convolution,卷積核為3×3,dilations=1,並將輸出值與F2 sum,relu,得到輸出特徵F2.為了增強學習過程,引入輔助學習,輔助loss權重為0.4.

訓練

整體損失函式為:

這裡寫圖片描述