Light-Head R-CNN學習筆記
在這篇文章裡,作者主要分析了:
為什麼two-stage detector會慢,主要慢在哪?
如何在解決速度慢同時保證精度?
文中,作者把 two-stage 拆解成 body 跟 head:
body: 生成proposal(RoI)的過程, 即: ROI warping.
head: 基于proposal的recognition過程, 即: RCNN subnet.
作者認為,目前的算法,為了追求best accurcy,一般都會把head設計的非常heavy,是以即使我們把前面的base model變小,還是無法明顯提升檢測速度。
下面的Figure1為我們展示了Faster R-CNN,R-FCN,Light-Head RCNN在結構上的對比圖。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90zdkZHeyImeSNzYxAnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwcDO3QDM1EjM3EjNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
我們知道,由于Faster RCNN經過ROI Pooling之後需要對每個候選框進行檢測,這是特别耗時的,特别是圖檔中目标很多時。針對這種情況,R-FCN将所有的權重共享,并引入了Position Sensitive Score Map來解決CNN的位置不敏感性,是以在R-FCN中将Score Map的通道設計為P^2(C+1)個,因為對于COCO資料集來說就需要3969個通道,這樣就極大的增加了運算的複雜度,基于這一點Light-Head RCNN的出發點就是是否可以将這個特征圖變薄?但一旦将特征圖變薄,那麼R-FCN裡面的vote方式産生預測結果就不能用了,是以需要增加全連接配接層做輸出映射。
相對于Faster RCNN來講,Light-Head RCNN的檢測頭部分是做了輕量化的,從上圖可以看到Light-Head RCNN中的Region Proposal的通道數變小了,隻有490層,并且隻有一個全連接配接層,參數量大幅減少了。
(這裡這個490是怎麼來的,一臉懵逼,還有怎麼縮減成490的?還是一臉懵逼)
另外論文還在BackBone的最後一層卷積中加入了可分離卷積,以減少該層卷積的運算複雜度,同時實作兩路卷積以增加不同的感受野。
Inception 3中将大小為k_k的卷積核,用1_k和k*1的兩層卷積來代替。使用這種卷積替換之後,可以在計算結果一緻的前提下減少計算量。減少的計算量,大緻為原來的k/2,文中作者将k取15,是以這裡大大減少了計算了。當然,計算複雜度還跟 C_mid 和 C_out 有關。
下面是精度和速度比較圖: