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