1. 程式人生 > >Light Head R-CNN個人總結

Light Head R-CNN個人總結

1. Motivation

這裡寫圖片描述

先梳理一下Faster RCNN和R-FCN。 Faster RCNN得到RoI後,進行RoI pooling,得到7x7xchannel的feature map,然後連線上2個FC層,再分類和迴歸。 R-FCN則是一方面得到RoI,另一方面繼續卷積得到一個7x7x(num_cls+1)x7x7的Position sensitive score map。然後進行PSRoI pooling,得到7x7x(num_cls+1)的feature map。直接通過vote(global ave pooling),分類和迴歸。

(1)針對準確率: faster rcnn通常為了減少計算量,會對7x7xchannel的feature map直接global pooling。但這樣會影響定位效果。 R-FCN的PSROI pooling本身並不是RoI-wise(roi中每個grid都不是對應感受野的資訊,而是不同通道的資訊),準確率通常不如faster rcnn。 (2)針對速度,faster rcnn序列計算每個roi,導致網路較慢,尤其是roi很多的情況下。 r-fcn則是因為要計算一個巨大的score map,也很費時。

所以提出light head rcnn,從而make a goog trade-off between the performance and computational speed。

2. light head rcnn

(1) thin feature map

thin指的是通道數變少了,主要針對r-fcn的score map的,原來是7x7x(num_cls+1)x7x7的feature map,現在變為7x7x10x7x7的feature map。其中兩個7x7指的是w和h。通道為490。

此外,如何得到這個feature map,也不再是r-fcn中的1x1卷積,而是引入了inception結構。這裡稱之為large seperable convolution。 這裡寫圖片描述

這裡K=15,為了獲得更大的感受野

(2) R-CNN subnet

由於score map的通道變成了7x7x10。因此PSRoI pooling後,roi的通道只有10,無法進行vote。 因此,我們連線上FC層,再進行分類和迴歸。

此外,除了PSROI pooing,我們也可以用RoI pooling。 RoI pooling因為時roi-wise,效果反而比PSRoI pooling好。

在rcnn subnet這塊,與faster rcnn相比,沒有太大的變化。

本文使用的base network 是Xception。最後作者對比了一系列實驗,證明light head rcnn無論是mAP還是速度,都超過了FPN、mask r-cnn、RetinaNet、YOLOv2、SSD。

所以,嘗試light head rcnn吧!