于維納
(南京理工大學 南京 210000)
行人與車輛目標檢測,是計算機視覺領域和公共安全交通領域的重點研究方向。因為隨著在智能駕駛方向,如汽車自動駕駛系統或者汽車輔助駕駛系統的高速發展,行人與車輛的目標檢測在視頻監控、公共安全等領域的均有著廣泛的應用。
Anchor-free方法在目標檢測人車方面的網絡結構設計,目前有三大方向:基于key-point的算法(CornerNet[1]、CornerNet-lite[2]、CenterNet[3]、ExtremeNet[4]、Reppoints[5]),基于anchor-point的算法(CSP[6]、FCOS[7]、Foveabox[8]、DenseBox[9]、UnitBox[10]、DuBox[11]),結合Anchor-free和Anchor-based的算法(FSAF[12]、GA-RPN[13])等方法。以上的方法在本文的數據集上,測試效果均不理想,有的是精度高速度慢,有的是速度快精度低。本文提出的方法,在輕量級的目標檢測的網絡上,增加一種誤檢抑制的方法,從而在不降低速度的情況下,提高檢測的精度。
本文使用的目標檢測的骨干網絡是基于key-point的CornerNet-lite方法。而CornerNet-lite又是在CornerNet的基礎上進行了優化。
CornerNet的主要思想是將框的左上角及右下角的兩個角點看作一組關鍵點。如圖1所示,主干網采用了Hourglass Network,主干網后緊跟兩個prediction modules分支,其中一個檢測top-left corners,另一個檢測bottom-right corners,最后對兩組corner進行篩選,組合,修正得到object的一對corners,從而定位object的box。對于每一個分支有三條線路,即用一個卷積網絡預測所有同一類別的樣本的左上角點或者右下角點的heatmap,及一個檢測到角點的embeding vector,還有用于對點的位置進行修正的offsets。此模型簡化了模型的輸出,同時移除了anchor的設計步驟。

圖1 CornerNet網絡架構圖
基于CornerNet-lite,是通過減少每個像素的處理過程來加速inference,其結合了SqueezeNet及MobileNet的思想,同時,引入了一個新的backbone hourglass,利用了1×1的卷積,bottleneck層及深度分離卷積。
基于關鍵點的單階段檢測CornerNet-lite,通過檢測一組關鍵點來檢測目標,進而移除了anchor,但由于其缺乏對目標全局信息的參考,仍然具有局限性。同時,每個目標由一組關鍵點組成,算法對邊界框比較敏感,同時,無法確定哪組關鍵點屬于同一個目標物。因此,如實驗中,經常會產生一些不正確的邊界框,導致誤檢的檢測框較多。為了提高mAP,減少誤檢率,本文提出同類別抑制匹配規則。
本文在基于CornerNet-lite的基礎上做了改進。但在其它的Anchor-free方法中,基于key-point的算法也存在此問題。因為key-point方法存在不同點的匹配問題,而本文提出的“同類別抵制匹配算法”,就是為了解決不同點的錯誤匹配問題而應運而生的。本文算法增加了一個觀察每個候選區域的視覺模式的功能,進而可以判斷每個邊界框的正確性。本文通過增加一個類別信息來探索proposal區域的信息,本文創新點在于,如果預測的邊界框與ground truth有較高的IoU,則預測出相同類別的概率要高,反之亦然。因此,在進行inference結束后,當通過判斷兩個同類別的bounding box是否是包含關系,若是包含關系,則根據類別本身的長寬比規則抵制冗余框的產生。
經試驗證實,此方法在存在feature-level噪聲的情況下更加穩定,有助于準確率及召回率的提升。
本文構造了一個新的大規模的數據集,由長時間的某幾個交通路口的監控視頻組成,涵蓋真實世界的一些基本情況,如烈日、陰天、雨雪、夜晚、白天等不同場景,這些場景基本涵蓋了現實世界所有的場景。
本文經過視頻采集、標注數據、數據增強來完成相對應的數據集。
3.1.1 數據增強
采集的數據往往很難覆蓋掉全部的場景。數據增強是擴充數據樣本規模的一種有效的方法。在實施過程中,主要有兩種方式:離線增強和在線增強。離線增強:對已采集到的數據集進行相應的變換,使得訓練數據集得以擴充,以用于訓練模型。在線增強:在訓練過程中,根據batch獲取到訓練數據后,對batch數據進行相應的變換。
數據增強的方法,主要有以下幾種方法:顏色操作、幾何操作、邊界框操作。圖像的增強是一種正則,增加訓練的數據量,使網絡能夠學習到圖像在不同形態下的特征,增強模型的泛化能力。同時也能夠增加噪聲數據,提升模型的魯棒性。
3.1.2 訓練和測試集
本文將數據集分為三部分,如圖1所示。訓練集包括13251個圖片(詳細信息顯示表2),測試集包括4417個圖片,驗證集包括4417個圖片。訓練集、測試集、驗證集以6∶2∶2的比例進行分割,且每個集合都包含不同時間不同攝像頭不同場景下的圖片。

表2 各類型數據集的分配情況
所 有 實 驗 均 在Intel(R)Xeon(R)CPU ES-2620 v4@2.10GHz上 進 行,使 用NVIDIA 1080Ti GPU、62GB內存。所有程序都用Python_3.7編寫,并使用了CUDA 10.1和PyTorch 1.0.0。
目標檢測問題同時是一個回歸和分類問題。首先,為了評估定位精度,需要計算IoU(Intersection over Union,介于0到1之間),其表示預測框與真實框(ground-truth box)之間的重疊程度。IoU越高,預測框的位置越準確。因而,在評估預測框時,通常會設置一個IoU閾值(如0.5),只有當預測框與真實框的IoU值大于這個閾值時,該預測框才被認定為真陽性(True Positive,TP),反之就是假陽性(False Positive,FP)。
對于二分類,AP(Average Precision)是一個重要的指標,這是信息檢索中的一個概念,基于precision-recall曲線計算出來。對于目標檢測,首先要單獨計算各個類別的AP值,這是評估檢測效果的重要指標。取各個類別的AP的平均值,就得到一個綜合指標mAP(Mean Average Precision),mAP指標可以避免某些類別比較極端化而弱化其它類別的性能這個問題。
對于目標檢測,mAP一般在某個固定的IoU上計算,但是不同的IoU值會改變TP和FP的比例,從而造成mAP的差異。COCO數據集提供了官方的評估指標,它的AP是計算一系列IoU下(0.5:0.05:0.9)AP的平均值,這樣可以消除IoU導致的AP波動。其實對于PASCAL VOC數據集也是這樣,Facebook的Detectron上的有比較清晰的實現。
除了檢測準確度,目標檢測算法的另外一個重要性能指標是速度,只有速度快,才能實現實時檢測,這對一些應用場景極其重要。評估速度的常用指標是每秒幀率(Frame Per Second,FPS),即每秒內可以處理的圖片數量。當然要對比FPS,你需要在同一硬件上進行。另外也可以使用處理一張圖片所需時間來評估檢測速度,時間越短,速度越快。
為了驗證提出算法的有效性,基于采集的安防數據集,對CornerNet-lite網絡模型的識別性能進行了分析和比較。
本文使用CornerNet-lite訓練后的網絡模型在未增加“同類別抑制匹配規則”和增加了此規則的實驗結果圖片,如圖2和圖3所示。

圖2 誤報抑制前后對比

圖3 誤報抑制前后對比
由圖2可以看出,在無“同類別抑制匹配規則”的左側子圖中,兩個行人中的一個存在一個多余的檢測框,而在使用了“同類別抑制匹配規則”的右側子圖中,將多余的檢測框得以去掉。其余圖也存在類似的情況,如圖3中車輛存在多余的檢測框。
在使用了“同類別抑制匹配規則”后,一些多余的檢測框得以去掉,此些誤報抑制后,mAP有了顯著的提升。表明本文提出的方法有效且新穎。
本文對速度的評估,使用的是處理一張圖片所需要的時間,測試結果如表3。

表3 不同圖片所需要的時間
經過以上的測試得出,圖片的分辨越高,圖片處理的時間越長。故在后期,為達到可以實時檢測的目的,在得到原始圖片大小后,都統一調整到640*480,以提高檢測速度。值得說明的是圖片由高分辨率調整到低分辨率后,mAP的值,幾乎沒有下降。
然而,本文的檢測結果中也存在一定的缺點,有時存在一些目標未檢測成功,即漏檢問題,這些問題將在今后的工作中加以解決。
為了解決基于Anchor-based方法的目標檢測的相關問題,提出使用基于Anchor-free方法的目標檢測,針對采集的數據集,進行相應的人工標注及離線和在線的數據增強方法,得到訓練數據集后,采用多種訓練策略進行模型的訓練。在前向推理過程時,使用“同類別抑制匹配規則”來抵制冗余框的產生,提高了mAP。通過實驗結果充分證明了本文提出的算法的有效性和新穎性。