ICNet 是一個既考慮效能,又考慮準確率的分割網路,包含了語義分割和邊緣精確分割,因為偶然看到就簡單的瞭解一下,記錄下來

論文是: ICNet for Real_time Semantic Segmentation on High Resolution Images,整篇文章都在講如何在分割的過程中,減少前向計算的時間,同時保證一定的accuracy。

首先提到了目前的Inference time for most popular group of seg nets

可以看到PSPNet, ResNet等,在精確率上很高,但是單張前向計算速度相對很慢,而ENet則速度快而精確度不理想。

ICNet的目標是能在單張檢測上達到Real_time的速度,而保證一定的精確率。

ICNet的整個網路如下:

對一張原尺寸的影象進行壓縮,1/2, 1/4比例,然後分別進行卷積,再把1/4的feature map 和1/2的做CFF處理,同樣把1/2最後一層的Feature map 和原圖的進行CCF處理,而原圖的卷積則遵守了一般分割網路的特點,即desampling and then upsamping。

大致看了一下論文,原圖那一層是用來做語義分析的,而剩下兩層則用來作邊緣的特徵提取。

CCF是Cascade Feature Fusion,也就是特徵融合的操作。

 

看一下三層的效果,用了cityscape的資料集:

 

整個網路的深度還是可以的:

部署到linux上caffe,from https://github.com/BassyKuo/PSPNET-cudnn5.git, 此版本為CUDA8.0版本,原版只支援7.0

編譯了一下,需要Matlab, 或者octive, 以及matio等,需要預先進行安裝。

大概的用github上提供的指令碼測試了一下速度, 單個GPU Nvidia Titan的速度大約是:44ms/張,速度還是相當快的,後續由於要在CPU上使用,準備對他進行進一步優化