ECCV 2018 | OR-CNN行人检测:为‘遮挡’而生
本文為極市平臺原創(chuàng)文章,轉(zhuǎn)載請附原文鏈接:
https://blog.csdn.net/Extremevision/article/details/82801692
——————————————————————————————————————————————
作者:Panzer
論文地址:https://arxiv.org/abs/1807.08407
本文首發(fā)于極市博客
背景介紹
與通用目標檢測相比,遮擋情況在行人檢測中更為普遍,為此也是行人檢測領(lǐng)域最廣為關(guān)注的問題之一。現(xiàn)實場景中行人的遮擋情況主要分為兩種情況:一種是行人個體之間的相互遮擋,這往往會引入大量的干擾信息,進而導(dǎo)致虛檢;一種是其他物體對行人的遮擋,這往往會帶來目標信息的缺失,進而導(dǎo)致漏檢。近年來,已有很多解決遮擋問題的相關(guān)工作發(fā)表,主要有兩種思路:一是對目標候選框分成不同part逐一處理、區(qū)別對待再加以特征融合,這種思路更適用于第一種遮擋情況;二是從loss的角度使得目標候選框?qū)ο嗷フ趽醯那闆r更具判別性,如CVPR2018的RepLoss[1],這種思路更適用于第二種遮擋情況。
作為通用目標檢測中的一個特定問題,現(xiàn)有基于CNN的行人檢測方法主要來源于通用目標檢測,目前主流的行人檢測算法多基于Faster R-CNN框架,本文也不例外,但提出了兩種全新的策略,分別針對性地解決以上兩種遮擋問題,并實驗驗證了其有效性。
本文方法
OR-CNN遵循兩階段的Faster R-CNN的檢測框架,其主要包括兩個部分:第一階段RPN產(chǎn)生目標候選框,第二階段Fast R-CNN對目標候選框進行進一步的分類和回歸。為了處理遮擋問題,本文提出兩種策略:aggregation loss和PORoI pooling unit,分別加持在兩個階段上,當(dāng)然aggregation loss也適用于第二階段,詳情見下文。
Aggregation Loss:
在行人個體之間的相互遮擋時,會產(chǎn)生相互重疊的虛檢。為了減少這種虛檢,作者從anchor出發(fā),通過設(shè)計一種loss,使得訓(xùn)練過程中多個匹配到真實目標上的anchor盡量靠近,具體實現(xiàn)方式為在原有的regression loss基礎(chǔ)上加上compactness loss,因此本文提出的Aggregation Loss就包括兩部分:
其中為正常的regression loss,采用原始Faster R-CNN中選用的smooth l1 loss;
是本文設(shè)計的compactness loss,使得多個匹配上真實目標的anchor能夠更加緊密圍繞在真實目標周圍,具體實現(xiàn)方式為:
也即對多個匹配上真實目標的anchor的回歸目標取平均值再與真實目標計算誤差,誤差度量依然采用的是smooth l1 loss。值得注意的是,Aggregation Loss既可以用在第一階段也可以用在第二階段。
Part Occlusion-aware RoI Pooling Unit:
Faster R-CNN的第二階段需要提取每個目標候選框的特征,如果對目標候選框分成不同的Part分別提取特征,就可以減少遮擋位置對全局特征的影響,這也是處理遮擋問題的一種常用方式。與已有方式不同的是,本文并非隨機選取part,而是根據(jù)先驗將行人目標分成5個part(如下圖1所示),分別提取這5個part的特征,這種根據(jù)人體布局的先驗?zāi)軌颢@得互補的局部特征,再結(jié)合整個目標的全局特征做加權(quán)求和,得到融合特征再做進一步的分類和回歸。顯然,這里的加權(quán)方式就顯得尤為重要,為此作者提出了一種遮擋處理單元(圖1(b)所示),該單元的輸出是一個sigmoid值,意味著該part沒被遮擋的程度,因此遮擋處理單元就是一個二分類問題,可以和檢測網(wǎng)絡(luò)聯(lián)合訓(xùn)練了。
綜上,第二階段的損失函數(shù)包括三個部分:分類loss、定位loss和遮擋處理單元loss,如下式所示:
其中的定位loss和第一階段一致,也是采用的本文提出的第一個遮擋處理策略:Aggregation Loss。
實驗分析
實驗細節(jié):
本文的detector采用的是改進版的Faster R-CNN[2],以保證實驗對比的公平性,驗證實驗是在CityPersons驗證集上做的。對比實驗是在CityPersons、Caltech-USA、ETH和INRIA,其中Caltech訓(xùn)練和測試均采用新標注[3]。
實驗結(jié)果:
首先我們看下在CityPersons驗證集上的剝離實驗(如下表),其中Scale x1.3代表將圖像擴大1.3倍進行測試,heavy partial bare代表不同的遮擋程度,可見本文OR-CNN不僅在Reasonable設(shè)定下取得了最佳性能,而且在嚴重遮擋情況下也取得了最好的檢測結(jié)果,miss rate比RepLoss降低了4個點。此外,通過對本文提出的兩個策略進行剝離分析,可見AggLoss和PORoI二者對檢測性能的提升均有貢獻,其中AggLoss聚焦于loss層面,因此測試時不會帶來算法耗時的增加,是一種更為經(jīng)濟的處理遮擋情況的方式。
下圖對AggLoss的作用做了進一步的可視化分析,通過有無AggLoss的對比,圖(a)表明訓(xùn)練時,目標候選框能夠更加緊密集中在目標周圍,圖(b)表明測試時,加上AggLoss訓(xùn)練的檢測器對NMS閾值的選取更為魯棒,而Baseline則對NMS閾值的選取則非常敏感,由于CityPersons數(shù)據(jù)集中遮擋情況較為普遍,所以NMS閾值達到0.55時才能取得最好效果。
下圖則對PORoI的作用做了進一步的可視化分析,本文共對行人目標分成5個part,遮擋處理單元會對每個part進行打分,得分越低代表遮擋越嚴重,從圖3可以發(fā)現(xiàn)圖(a)(b)中沒有遮擋的情況下,每個part的得分都普遍偏高,而在圖(e)(f)存在嚴重遮擋時,下面兩個part(黑色)的得分較低,充分驗證了本文PORoI的有效性。
同樣在Caltech測試集上的表現(xiàn)也是state-of-the-art(如下圖4):在Reasonable設(shè)定下取得了4.1的表現(xiàn),僅次于第一名RepLoss0.1個百分點。此外論文中還展示了在ETH和INRIA數(shù)據(jù)集上的結(jié)果,同樣也是state-of-the-art,在此不再贅述。
總結(jié)展望
本文貢獻:
(1)本文重點關(guān)注行人檢測中的遮擋問題,并為此提出了兩種遮擋處理策略。
(2)本文提出的兩種遮擋處理策略分別來自不同的角度,分別加持在Faster R-CNN檢測框架的兩個階段,因而具有互補性,在CityPersons嚴重遮擋子集上展現(xiàn)了非常出色的性能。
個人見解:
(1)本文重點針對行人檢測中長期以來廣為關(guān)注的問題——遮擋,已有工作中主要從‘分part’的角度加以解決,而CVPR2018的RepLosss[1]首次提出從loss的角度加以解決,使網(wǎng)絡(luò)在自動學(xué)習(xí)的過程中不斷提升定位性能。本文分別從以上兩個角度提出了兩種全新的策略,思路簡潔而有效。有關(guān)RepLosss[1]的技術(shù)解讀已在極市平臺發(fā)表,詳情可見[4]。
(2)值得注意的是,盡管近年來有大量工作聚焦于行人檢測中的遮擋問題,但現(xiàn)有算法距離該問題的解決依然還有很長的路要走,從論文中展現(xiàn)的結(jié)果來看,遮擋情況下的檢測結(jié)果要遠遠劣于非遮擋情況下的結(jié)果。一個很關(guān)鍵的原因來自于人群密集場景下行人自遮擋的情況普遍存在,在訓(xùn)練數(shù)據(jù)有限的情況下,基于有監(jiān)督訓(xùn)練得到的檢測器難以學(xué)習(xí)到無法窮盡的各種遮擋情況,因此如何利用現(xiàn)有的無監(jiān)督或者半監(jiān)督方式來改善這個問題,應(yīng)該是非常值得探索的一個方向,期待你的精彩發(fā)現(xiàn)。
**參考文獻**
[1] Repulsion Loss: Detecting Pedestrians in a Crowd. CVPR (2018)
[2] Citypersons: A diverse dataset for pedestrian detection. CVPR (2017)
[3] How Far are We from Solving Pedestrian Detection? CVPR (2016)
[4] CVPR 2018 | Repulsion loss:專注于遮擋情況下的行人檢測
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的ECCV 2018 | OR-CNN行人检测:为‘遮挡’而生的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ECCV 2018 | CornerNe
- 下一篇: 吴恩达新书《Machine Learni