Occlusion-aware R-CNN: Detecting Pedestrians in a Crowd 詳解(遮擋下的行人檢測)
文章地址:https://arxiv.org/pdf/1807.08407.pdf
暫時沒有放出原始碼,如果有小夥伴找到程式碼的話歡迎留言給我。
一、概述
依然是解決在遮擋的情況下對人的檢測的文章,作者分別從loss和two stage detector中核心的ROI Pooling操作這兩個角度出發改善遮擋物體的檢測問題。在之後我會根據這兩個方面對文章進行一個簡單的總結。先簡單的放個在2.2中我將會提到的網路結構圖:
二、 Occlusion-aware R-CNN
為了讓RPN module能夠更好地、更精確地提取到proposal,作者設計了一種AggLoss來限制proposals能夠更接近GT並且同一個object的proposals之間能夠儘可能的靠的緊緻。所以整體的RPN的Loss函式如下:
Note: i is the index of anchor in a mini-batch;
是第i個anchor屬於background/foreground的概率;
是第i個anchor屬於某個行人的bbox的座標;
是第i個anchor屬於某個行人的bbox的GT;
α是個平衡兩種loss的超引數;
其中:分類loss採用log loss:
2.1、Aggregation Loss(loss角度改善遮擋的問題)
為了減少對於緊鄰行人的錯檢,作者強制使proposals能夠靠近真正的GT,並且能夠proposals之間能夠緊密分佈。所以作者提出了AggLoss在RPN和Fast-RCNN層。這個loss能夠讓不同的proposals能夠接近各自的GT,並且讓屬於同一GT的proposals之間的距離能夠最小。
(3)式中第一項是regression loss,目的是讓每個proposal能夠更接近其真實的GT,採用smooth L1損失,如下(4)式所示;第二項是compactness loss,目的是讓屬於同一GT的proposals能夠分佈緊緻。
對於compactness term
目的是讓屬於同一GT的proposals之間能夠儘可能的分佈緊緻,使得可以減少對於臨近的兩個人之間的錯檢問題。如下:
2.2 、 Part Occlusion-aware RoI Pooling Unit(ROI Pooling操作改善遮擋的問題)
正如上圖Fig.1中所示,作者將新人分為5個區域,用RoI pooling層把feature map固定在HxW的尺寸。
作者分別對著5個區域性區域分別進行了預測一個0到1的遮擋的score,用來表示著5個區域是否被遮擋,可以把這個部分認為是一個簡單的mask訊號,最後作者使用這5個score和其對應區域的feature相乘後相加,得到最終的RoI feature。
但是在這裡將不通part的feature和全域性feature直接相加不知帶代表什麼意思,但是直觀上說不通,感覺不是很合理。
所以作者提出FRCNN中的loss如下:
最後作者在不同的資料集上進行了測試,這裡就不再多做贅述了,有興趣的可以直接去看原文。