論文鏈接:Double Anchor R-CNN for Human Detection in a Crowd
論文題目表明該算法應用場景爲 擁擠人羣的人體檢測。
一、摘要
-
人體檢測的難題:1)擁擠遮擋問題;2)後處理的NMS,很難確定閾值,太大會導致誤檢多,太小漏檢較多,如圖1所示;
-
現象:相比於人體,頭部特徵更爲明顯,頭和頭之間的交叉肯定比人小很多;
-
思想:將頭部檢測添加到人體檢測中。
二、Faster R-CNN
1.Conv layers:作爲一種CNN網絡目標檢測方法,Faster RCNN首先使用一組基礎的conv+relu+pooling層提取image的feature maps。該feature maps被共享用於後續RPN層和全連接層。
2.Region Proposal Networks:RPN網絡用於生成region proposals。該層通過softmax判斷anchors屬於positive或者negative,再利用bounding box regression修正anchors獲得精確的proposals。
3.Roi Pooling:該層收集輸入的feature maps和proposals,綜合這些信息後提取proposal feature maps,送入後續全連接層判定目標類別。
4.Classification && Regression:利用proposal feature maps計算proposal的類別,同時再次bounding box regression獲得檢測框最終的精確位置。
三、Double Anchor R-CNN
- Backbone: RestNet50 + FPN(特徵金字塔);
- RPN:提出double anchor RPN,生成人體和頭部的推選框對;
- 特徵融合:融合頭部和人體的特徵;
- Joint NMS: 用於後處理。
3.1 Double Anchor RPN
-
Double Anchor RPN: 一個anchor同時預測頭部位置偏移和人體位置偏移,一個分類得分(前景or背景);
-
loss:
第一項爲分類的交叉熵損失,第二項爲頭部框的Smooth L1損失,第三項爲人體框的Smooth L1損失。 -
正例選取方法: head-body 分支(anchor和頭部gound truth iou > 0.7爲正例)。
3.2 Proposal Crossover
1.問題:因爲Double Anchor RPN只考慮了頭框groundtruth來選正樣本anchor,這樣的話該anchor往往和對應的人框groundtruth偏差較大,這就帶來了很大的迴歸難度,因此RPN階段得到的人框proposal質量並不高。
2.解決方案:訓練時並聯body-head分支作爲訓練增強,利用人框選正例anchor,可以保證人框proposal的質量,之後該分支的人框proposal和之前分支的人框proposal通過規則匹配(IOU>0.5),然後質量高的人框proposal就可以替換掉質量低的人框proposal,最終就可以得到一對質量高的頭框和人框。
3.3 特徵融合
將特徵通過RoIAlign變成相同大小,再通過FC層,得到head FC向量特徵和Body FC向量特徵,對兩個FC特徵進行融合(具體方式未知)。
3.4 Joint NMS
1.得分:利用head和body得分的加權和;
2.過濾:head和body框必須同時滿足條件纔會留下;
四、實驗
實驗數據:CrowdHuman(框框之間IOU>0.5的佔比比較大)
1. 整體表現
MR:在每張圖像固定誤檢率的情況下計算的漏檢率
DA-RCNN: 本文算法,後處理採用普通的NMS
DA-RCNN+J-NMS:本文算法
對比結論:1.本文算法效果較好;2.Joint NMS好於NMS
本文算法會減少誤檢。
2. 消融實驗
2.1 Proposal crossover
1.解釋
- sample by head:只有head-body rpn一個分支,利用anchor和head的iou選擇正例;
- sample by both-0.4: 只有head-body rpn一個分支, 當anchor和head及body的ground true都大於0.4時爲正例;
- sample by both-0.4: 只有head-body rpn一個分支, 當anchor和head及body的ground true都大於0.5時爲正例;
- 結論:
proposal crossover效果較好。
2.2 特徵融合
說明: 這兩種方式我也沒太弄明白
結論: 本文的特徵融合方式較好。
2.3 Joint NMS
3. 常用數據
結論:在普通數據集上效果也不差,但在’crowd’的數據集上效果顯著。
五、結論
1) 本文算法通過對每個人的頭部和人體同時進行檢測,直觀有效地解決了人體檢測中人羣遮擋問題;
2) 對“Crowd”數據最有效;
3) 具有較強的擴展性,擴展檢測其他部位。