目標檢測特殊層:RFCN中PSROIPooling層
RFCN是基於Faster RCNN的工作,base net得到feature maps, 用RPN得到proposals。由於classification需要固定長度的feature vector,就需要ROI pooling layer + fully connected layer來獲得,但是這個過程會去除目標的位置資訊,而這個資訊對於檢測問題,至關重要。所以,RFCN提出position-sensitive score maps來解決這個問題。
position-sensitive ROI pooling layer的輸入是ROI features, 輸出是C+1維的特徵向量。
以k=7, C=20為例,具體的資料形式如下:
其實在第二個卷積的時候,它產生的7*7*21個輸出,是不知道具體所謂的位置資訊的,而是後面的position-sensitive roi pooling這一步的特定選取規則,使得對於每一類,這49個maps產生了差異,在訓練的時候,為了使最後的損失函式最小,這49輸出對應的kernel就慢慢地顯現出差異。
rfcn的核心是延續fastRCNN的思想:對於每一個proposal,所有的卷積操作(費時的操作)都只做一次。fastRCNN提出baseNet,讓proposal從feature map上尋找roi,但是不同的proposal還是得重複進行後面的全連線層;rfcn提出psROIpooling, 讓proposal從bbox map和score map上尋找roi
示例圖如下:
RFCN解決的問題:
1:平移不變性指的是一個物體,不管在圖片的哪個位置,你都能準確的識別出來這個物體。因此在影象分類任務中,平移不變性非常重要。但是在物體檢測中,你識別到了一個物體之後,你需要準確地定位這個物體,這個時候你就需要在意物體在圖片中的位置(IoU)
2 :rcnn證明了cnn提取的特徵的有效性;而spp解決了如何應對不同尺度feature map的問題;fast rcnn通過roi pooling將需要應用到多個候選框上的基CNN模型進行共享,加快了速度並且提升了準確度;
3:減少了全連線層,推薦視窗在位置敏感圖上直接提取特徵,這一點和fasterRCNN一樣,之後得到ROI的特徵,之後做一下全域性的平均,分類;貢獻就是得到了減少的二階段的計算量,提出了位置敏感特徵圖