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上使用,准備對他進行進一步優化