晏世武 羅金良 嚴慶



摘要:目標檢測在視頻監控、無人駕駛系統、機械自動化等領域起著重要作用。在如今大數據的背景下,為進一步提高Yolov3在不同數據集下的性能,本文以KITTI數據集為基礎,利用重新調整anchor數值和增加尺度融合的方法改進Yolov3,并通過增加數據的方法平衡類別,進一步提高Yolov3性能。實驗結果表明,改進的Yolov3較原始的框架,其mAP提高了近5.31%,從側面說明改進的Yolov3具有較高的實用價值。
關鍵詞:目標檢測;深度學習;尺度融合;平衡類別;mAP
0 引言
目標檢測能夠對圖像或視頻中的物體進行準確分類和定位,在監控、無人駕駛、機械自動化等領域中起著至關重要的作用。早前的目標檢測是通過人工提取特征的方法,使用DPM模型,并在圖像上進行窗口滑動的方法進行目標的定位。這種方法十分耗時且精度不高。隨著信息時代的快速發展,如今的數據量成幾何式地增長,再使用人工提取特征的方式是十分不明智的。自2012年Alexnet在ILSVRC(Large Visual Recognition Challenge)比賽中大放光彩以來,學者們不斷地使用卷積神經網絡(Convolution Neural Network,CNN)設計新的目標檢測框架,并出現了Faster RCNN、SSD、Yolov3等高性能的目標檢測框架,并且在實踐中展現出強大性能。
在如今較為主流目標檢測框架中,Yolov3在檢測速度和精度的平衡性方面表現較好,人們不斷在各種領域使用Yolov3實現目標檢測功能。然而原始的Yolov3架構并不能在各種數據集下均表現出色。對于小目標物體會出現定位不準確的和漏檢的情況。本文針對Yolov3的問題,設計以下改進方法:
(1)針對目標定位不準確的問題,對于不同的數據集,重新調整anchor的數值:
(2)針對小目標難檢和漏檢的情況,增加一個尺度融合:
(3)通過增加較少類別的物體數的方式平衡類別來優化Yolov3.
1Yolov3及其改進方式
1.1 Yolov3框架
Yolov3是目標檢測算法之一,是基于回歸的方式進行特征提取,通過端到端的過程訓練網絡。最終在多尺度融合的特征層中回歸出目標的類別與位置。端到端的訓練方式使得分類與定位過程為一體。其兩者共同的損失函數參與反向傳播計算,在節約特征提取時間的同時又提升了精度,滿足了目標檢測的實時陸需求。Yolov3目標檢測框架如圖1所示。
圖1中提取曾為Darknet-53的網絡結構。該結構以256x256圖片作為輸入,大量使用1×1和3×3的卷積層進行堆砌,并使用殘差網絡(如圖2所示)將淺層信息傳遞到深層,可在增加網絡深度的同時不引起梯度爆炸等問題,圖1中最左邊的數字即代表所重復的殘差網絡模塊的個數:Yolov3結構在檢測方面采用的是多尺度檢測策略,使用32x32、16x16、8x8三個不同尺寸的特征圖進行檢測輸出。原圖進行尺寸映射到檢測特征層的每個點上,且每個點有3個預測框。因此在三個特征層檢測上共有4032個預測框。該預測數極大滿足了檢測多類物體的需要。最終使用logistic回歸,對每個預測框進行目標性評分,根據目標性評分來選擇滿足需求的目標框,并對這些目標框進行預測。
1.2 anchors的設置
在Yolov3目標檢測框架中anchor十分重要,它是由當前數據集通過kmeans聚類算法統計出來的,合適的anchor值能夠降低網絡架構的損失值,加快收斂。在原始的Yolov3網絡層中,用于檢測物體的特征層為32x32、16x16、8x8大小的特征提取層,這些特征層可以映射到原始圖像,即原始圖像被切分為對應特征層的網格大小(grid cell)。如果真實框(ground truth)中某個物體的中心坐標落在gridcell里,就由該grid cell預測該物體,并且每個Cddcell預測3個邊界框,其邊界框的大小由anchor值決定,然后對預測的邊界框與真實框的交互比(IOU)來選出超過IOU值的邊界框去進行檢測,為進一步減少不必要的檢測次數,使用設置目標置信度的方法,當預測框的置信度小于該設定值就不再去檢測該框。
本文訓練使用的KITTI數據集,而原始Yolov3中的anchor值是使用COCO數據集得到的。因此,為提升本文物體的定位精度,重新使用kmeans算法去統計是十分必要的,且由于KITTI數據集的圖片較大。本文將Yolov3的初始圖片大小設為608×608,其對應特征層的大小也相應的會改變。COCO數據集和KITHI的anchor值分別見表1、表2.
1.3 多尺度檢測
Yolov3目標檢測框架中使用了多尺度檢測,即上文所提到的19x19、38×38、76×76三個特征層同時檢測圖像或視頻中的物體,且根據anchor中的值預先畫出預測邊界框。這種方式對中大型物體具有很好的檢測效果,但是對于小物體存在難檢或漏檢的情況。本文針對KITTI數據集,增加一個特征尺度以提升檢測精度。三尺度與四尺度檢測模型如圖3、4所示,由于增加了一個特征尺度,則anchor值也需要重新調整,見表3.
1.4 平衡數據類別
本文訓練的數據集為KITTI。它是由德國卡爾斯魯厄理工學院和豐田美國技術研究院聯合創辦,是目前國際上最大的自動駕駛場景下的計算機視覺算法評測數據集。標注了九個類別的物體,分別為Car、Van、Truck、Pedestrian、Person sitting、CyClist、Tram、Misc、DontCare。由于車輛的數據集較多而其它的數據較小,有結合CNN需要大量數據集的特點。本文對KITTI數據集中類別進行合并,合并策略如下:
(1)Car、Van、Truck、Tram合為一類,記為Vehicle;