Caffe學習記錄(十一) ICNet分割網路學習
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上使用,準備對他進行進一步優化