一篇不錯的行人檢測文章

來自專欄物體檢測隨筆7 人贊了文章

最近看了一篇CVPR2016年的行人檢測文章How Far are We from Solving Pedestrian Detection?距離現在兩年,算是老文章了。

這篇文章分析問題的思路非常清晰、細緻,我覺得蠻值得借鑒的。這種清晰和細緻的背後,一方面是嚴謹的科研態度,另一方面是對行人檢測問題的深入理解。

文章對當前sota的檢測器在caltech行人測試集上的failure case進行分析,failure case主要有兩類,一類是false positive,一類是false negative。

false positive來源的原因分析如下圖,主要有9個來源,9個來源又被歸為三類原因:定位不準、背景、標註錯誤。定位不準的問題文章認為來自於訓練集標註的框不準,於是文章重新標註了一遍數據集,最後實驗下來發現提高訓練集標註框的精度的確有助於提高檢測器的效果。而背景問題也是行人檢測裡邊的老大難問題,比如路邊的指示牌、車後面的方向燈、樹葉等等都可能被識別為行人,現在也沒啥好的解決方法。

false positive來源分析

背景被檢測為行人示例1

背景被檢測為行人示例2

false negative來源的原因分析如下圖,主要有6個來源。其中尺寸小和遮擋是眾所周知的難題。而side view和cyclists,文章認為是由於訓練集裏這兩類情況表達不足,也就是訓練集裡邊這類情況比較少,解決這種問題的最好方法是在訓練集中增加對應圖片。對於尺寸小的問題,文章又進一步分析,尺寸小的行人包含三種問題:模糊不清、像素點少、對比度差,經過實驗,文章發現像素點少纔是尺寸小的行人容易出現false negative的原因。

false negative來源分析

這篇文章對行人檢測問題,真可謂是條分縷析,將問題一步一步拆分,範圍一步一步縮小,讓真實的原因無處遁形,最後便可以甕中捉鱉。

遇到問題的時候,分為兩步,第一步是定位問題,第二步是解決問題。定位問題就是上一段所述"將問題一步一步拆分,範圍一步一步縮小,讓真實的原因無處遁形」,就像一段代碼出了問題,第一步我們需要通過debug確認到底是哪一行出了問題。解決問題就很好理解了,根據定位出來的問題,提供解決方案。

我感覺做檢測這一塊,大部分人缺少定位問題的能力。當然定位問題的確也不容易,一個錯誤的背後存在著若干種原因,每種原因後邊還有若干種可能,只有對檢測各個方面都理解比較深,纔可能具備定位問題的能力。而檢測的pipeline又比較長、比較複雜,要對檢測各個方面理解比較深,不是一朝一夕的事情。

而解決問題的能力相對定位問題的能力容易培養一些,畢竟大部分論文都是就某個問題提出一套解決方案,照葫蘆畫瓢就可以。

另外這篇文章再一次提醒我們,數據真的非常重要。無論是false positive裏的定位不準,還是false negative的side view和cyclists,都可以通過數據解決,甚至說只能通過數據解決。

模型跟數據是一個硬幣兩面,是不可分割的,脫離數據談模型沒有任何意義,脫離數據調模型更是會南轅北轍。模型是對數據分佈的一系列假設,要想得到好的效果,模型需要跟數據的分佈匹配。所以效果不好大概率是模型跟數據分佈不匹配導致的,為了讓二者匹配,要麼調整模型,要麼調整數據分佈。

推薦閱讀:

查看原文 >>
相關文章