羅建華,黃 俊,白鑫宇
(重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
隨著近年來(lái)計(jì)算機(jī)技術(shù)的快速發(fā)展,計(jì)算機(jī)視覺領(lǐng)域也得到了充分發(fā)展.作為計(jì)算機(jī)視覺的基本問題之一,目標(biāo)檢測(cè)在視頻領(lǐng)域與圖像領(lǐng)域發(fā)揮著重大作用,與人臉識(shí)別、人類行為分析,自動(dòng)駕駛等技術(shù)息息相關(guān).但通用的目標(biāo)檢測(cè)算法在檢測(cè)小目標(biāo)物體時(shí)由于分辨率較低、圖像模糊等原因?qū)е绿卣鞅磉_(dá)能力弱,提取特征不足,在實(shí)際應(yīng)用中存在著漏檢、誤檢及定位精確度不高的情況,嚴(yán)重影響目標(biāo)檢測(cè)精度,是目標(biāo)檢測(cè)領(lǐng)域待解決的一個(gè)重要問題[1].
傳統(tǒng)的目標(biāo)檢測(cè)方法主要采用手動(dòng)提取體征,然后通過滑窗的方式來(lái)進(jìn)行檢測(cè).通常采用方向梯直方圖(Histogram of Oriented Gradients,HOG)[2]、尺度不變特征變換(Scale-invariant Feature Transform,SIFT)[3]、可變形部件模型(Deformable Parts Model,DPM)[4]等方式提取物體特征.而真實(shí)場(chǎng)景下,常常由于遮擋,距離太遠(yuǎn)等因素導(dǎo)致難以提取特征,檢測(cè)時(shí)常會(huì)出現(xiàn)漏檢和誤檢等情況,無(wú)法滿足實(shí)際需求.隨著深度學(xué)習(xí)的興起,其提取到的深度特征相比于傳統(tǒng)的手工特征具有更強(qiáng)大的表征能力,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法逐漸成為目標(biāo)檢測(cè)算法的主流.主流的目標(biāo)檢測(cè)算法主要分為兩大類,第1類為兩階段目標(biāo)檢測(cè)算法(two stage),代表為R-CNN(region-convolution neural network)[5]、Fast-RCNN[6]、Faster-RCNN[7]等模型,這類算法將目標(biāo)檢測(cè)分為兩步,首先利用滑動(dòng)窗口在圖片上獲得候選區(qū)域,并且提取候選區(qū)域的特征向量,然后利用回歸等方法對(duì)候選區(qū)域進(jìn)行分類和位置預(yù)測(cè),該類算法在一定程度上提升了目標(biāo)檢測(cè)的準(zhǔn)確率.第2類為單階段目標(biāo)檢測(cè)算法(one stage),代表為SSD(single shot multibox detector)[8]、YOLO(you only look once)[9]、YOLOv2[10]、YOLOv3[11],該類算法采取直接回歸目標(biāo)類別的方式,在一定程度上提升了目標(biāo)檢測(cè)的速度.
盡管目標(biāo)檢測(cè)算法在傳統(tǒng)方式及深度學(xué)習(xí)方式上已經(jīng)取得不錯(cuò)的成績(jī),但仍存在以下問題:對(duì)小目標(biāo)檢測(cè)的研究還不成熟,小目標(biāo)分辨率低、像素占比少.小目標(biāo)物體其自身占有固定的低分辨率,在目標(biāo)檢測(cè)過程中提取到的有效信息十分有限;卷積神經(jīng)網(wǎng)絡(luò)中深層感受野大,經(jīng)過多次下采樣后特征圖不斷減小,更難提取特征,導(dǎo)致小目標(biāo)檢測(cè)存在嚴(yán)重的物體漏檢、誤檢等情況[12].
本文基于改進(jìn)的YOLOv3模型,針對(duì)道路檢測(cè)中小目標(biāo)檢測(cè)時(shí)效果不佳及漏檢率較高等問題,首先對(duì)YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行修改,將檢測(cè)尺度擴(kuò)展到4種尺度.并且利用DIOU損失代替YOLOv3算法中預(yù)測(cè)框平方損失,保持置信度交叉熵?fù)p失以及類別概率交叉熵?fù)p失函數(shù)不變.同時(shí)對(duì)目標(biāo)邊框應(yīng)用K-means++算法進(jìn)行維度聚類,選取更為合適的Anchor Box.在混合數(shù)據(jù)集上與其他目標(biāo)檢測(cè)算法進(jìn)行對(duì)比試驗(yàn),結(jié)果表明改進(jìn)后的YOLOv3模型在不影響實(shí)時(shí)性的情況下,小目標(biāo)的漏檢率有了明顯下降,平均精度有了明顯的提升.
YOLOv3算法是基于YOLOv2算法的基礎(chǔ)上,融合特征金字塔網(wǎng)絡(luò)(feature pyramid network,FPN)[13]、殘差網(wǎng)絡(luò)(ResNet)[14]等方法提出來(lái)的單階段目標(biāo)檢測(cè)算法,它將目標(biāo)檢測(cè)問題轉(zhuǎn)換為回歸問題,將圖片輸入后即可直接得到目標(biāo)位置以及類別信息,實(shí)現(xiàn)了端到端的檢測(cè).YOLOv3主要由Darknet-53特征提取網(wǎng)絡(luò)及預(yù)測(cè)網(wǎng)絡(luò)兩部分組成,Darknet-53包含5個(gè)殘差塊,為了避免網(wǎng)絡(luò)層數(shù)的加深引起的梯度爆炸現(xiàn)象,其借鑒了殘差網(wǎng)絡(luò)的思想,使用了大量的跳躍連接保證避免梯度彌散的現(xiàn)象.Darknet-53與傳統(tǒng)的CNN結(jié)構(gòu)不同,不含有全連接層與池化層,為全卷積網(wǎng)絡(luò),其中包含眾多1×1卷積層和3×3卷積層,共包含53個(gè)卷積層.在進(jìn)行道路目標(biāo)檢測(cè)時(shí),由于車輛和攝像頭的距離有遠(yuǎn)有近,車輛在圖片上呈現(xiàn)的大小也不等,最后一層輸出的特征圖的尺寸僅為13×13,是原始圖像的1/32.網(wǎng)絡(luò)層數(shù)越深,導(dǎo)致丟失的小物體的特征越多.在深度神經(jīng)網(wǎng)絡(luò)中,語(yǔ)義信息往往包含在深層次網(wǎng)絡(luò)結(jié)構(gòu)中;而淺層網(wǎng)絡(luò)結(jié)構(gòu)中具有更大的分辨率并保留了更多的位置信息.YOLOv3網(wǎng)絡(luò)由大量DBL結(jié)構(gòu)組成,其中包含卷積層,批量標(biāo)準(zhǔn)化層和激活函數(shù).網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLOv3 network structure
YOLOv3在預(yù)測(cè)方面,利用FPN選取主干網(wǎng)絡(luò)上3個(gè)不同尺度的特征圖進(jìn)行預(yù)測(cè),分別為13×13、26×26、52×52,每種規(guī)??梢灶A(yù)測(cè)3個(gè)目標(biāo)邊框.由于多次卷積后小物體的特征容易消失,因此52×52的網(wǎng)格用來(lái)檢測(cè)小物體.對(duì)于一張圖片,初始將其劃分為K×K的網(wǎng)格,如果一個(gè)物體的中心落在某個(gè)單元格上,那么這個(gè)單元格就負(fù)責(zé)檢測(cè)這個(gè)物體.最終特征圖輸出的張量大小為K×K×(3×(4+1+C)).其中包括了確定一個(gè)目標(biāo)邊框中所需要的4個(gè)中心點(diǎn)坐標(biāo)、置信度得分以及物體類別.然后將置信度得分小于閾值的邊框得分置為0,最后采用NMS(非極大值抑制)算法去除重復(fù)的邊界框,保留得分最大的邊界框?yàn)樽詈蟮念A(yù)測(cè)框.
不同于YOLOv2算法,YOLOv3算法中選取9個(gè)Anchor Box作為人工選取的初始侯選邊框.Anchor Box的大小由K-means聚類算法對(duì)數(shù)據(jù)集進(jìn)行聚類得到.預(yù)測(cè)過程中,網(wǎng)絡(luò)輸出相對(duì)于Anchor Box的偏移量分別為tx,ty,tw,th,Anchor Box和Bounding Box的關(guān)系圖如圖2所示.
其中Bounding Box的坐標(biāo)計(jì)算公式如式(1)所示:
bx=σ(tx)+cx
by=σ(ty)+cy
bw=pwetw
bh=pheth
(1)
式(1)中bx,by,bw,bh,分別為Bounding Box的中心坐標(biāo)及框的寬高;cx,cy分別為當(dāng)前網(wǎng)格坐標(biāo)偏移量;pw,ph分別為對(duì)應(yīng)Anchor Box的寬高,利用 sigmoid 函數(shù)將偏移量限制在當(dāng)前網(wǎng)格中,利于收斂;tw和th代表預(yù)測(cè)框的寬高偏移量.
圖2 Anchor Box與Bounding Box關(guān)系圖Fig.2 Relationship between Anchor Box and Bounding Box
損失函數(shù)一般用來(lái)評(píng)價(jià)模型的預(yù)測(cè)值和真實(shí)值的誤差,在網(wǎng)絡(luò)學(xué)習(xí)速度的快慢及最終模型預(yù)測(cè)效果的好壞起著關(guān)鍵的作用.YOLOv3中l(wèi)oss由邊界框損失、置信度損失及分類損失3部分組成,如式(2)所示:
(2)
λcoord和λnoobj分別代表邊界框損失和置信度損失的權(quán)重.
針對(duì)本文所提出的問題,使用目前國(guó)際上最大的道路場(chǎng)景下計(jì)算機(jī)視覺數(shù)據(jù)集KITTI,其中包括了市區(qū)、鄉(xiāng)村和高速公路等場(chǎng)景下采集的真實(shí)圖像數(shù)據(jù),每張圖像中多達(dá)15輛車和30個(gè)行人,并且進(jìn)行了不同程度的遮擋和截?cái)郲15].KITTI數(shù)據(jù)集中一共包含8個(gè)類別:car、van、truck、pedestrian、pedestrian(sitting)、cyclist、tram以及misc.從KITTI官方網(wǎng)站所下載來(lái)的數(shù)據(jù)集中,訓(xùn)練集中包含7481張有標(biāo)注信息的圖片.同時(shí)本文將car、van、truck、tram合并為car類,pedestrian(sitting)、cyclistc、pedestrian合并為pedestrian類,并且刪除misc,即本文只需檢測(cè)行人及車輛.
由于KITTI中行人樣本相比于車輛樣本較少,可能會(huì)導(dǎo)致過擬合問題,導(dǎo)致最終模型泛化能力差.本文在KITTI數(shù)據(jù)集的基礎(chǔ)上,融合CQUPT-data,形成混合數(shù)據(jù)集.其中CQUPT-data為自制數(shù)據(jù)集,圖片的獲取來(lái)源為校園內(nèi)手機(jī)攝像頭實(shí)拍,總共拍攝了1000張圖片,采取人工手動(dòng)標(biāo)注的方式進(jìn)行標(biāo)注.本文所采用的混合數(shù)據(jù)集中共包含8481張圖片,其中7000張用于訓(xùn)練驗(yàn)證數(shù)據(jù)集,1481張圖片用于測(cè)試數(shù)據(jù)集.數(shù)據(jù)集中部分圖片如圖3所示.
圖3 數(shù)據(jù)集示例Fig.3 Example of data set
本文提出的改進(jìn)的YOLOv3模型在傳入數(shù)據(jù)時(shí)選用寬、高均為416個(gè)像素點(diǎn),整體像素為416×416的預(yù)處理圖像.
YOLOv3利用FPN結(jié)構(gòu),利用3個(gè)不同的尺度的Anchor Box檢測(cè)物體,針對(duì)大目標(biāo)物體檢測(cè)效果較佳,因其對(duì)淺層信息的提取不充分,在經(jīng)過多次卷積后小目標(biāo)物體特征信息丟失,在實(shí)際場(chǎng)景中對(duì)于小目標(biāo)物體依舊存在漏檢情況.
針對(duì)上述情況,在原有基礎(chǔ)上新增一個(gè)檢測(cè)尺度,為104×104的特征層,用于將淺層信息提取出來(lái).將104×104的特征層與其他3個(gè)特征層進(jìn)行融合,形成新的特征提取網(wǎng)絡(luò).使得淺層的特征具有較強(qiáng)的位置信息,深層的特征具有較強(qiáng)的語(yǔ)義信息,在降低小目標(biāo)的漏檢率的同時(shí)還增強(qiáng)定位的精度.
改進(jìn)后的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,在YOLOv3網(wǎng)絡(luò)中進(jìn)行多次卷積操作,將尺寸為13×13的特征層經(jīng)過上采樣擴(kuò)張成26×26的大小,同時(shí)與26×26的特征層進(jìn)行融合,將融合的結(jié)果輸入到下一特征層,直到4個(gè)檢測(cè)尺度相融合.本文設(shè)計(jì)的4個(gè)檢測(cè)尺度同時(shí)利用淺層高分辨率及深層高語(yǔ)義信息,且在并沒有顯式的增加網(wǎng)絡(luò)復(fù)雜度的情況下,增強(qiáng)了網(wǎng)絡(luò)結(jié)構(gòu)的表征能力,改進(jìn)后的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)能夠更好適應(yīng)小目標(biāo)物體的檢測(cè).
圖4 改進(jìn)后YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Improved YOLOv3 network structure
IOU是目標(biāo)檢測(cè)中最常用的指標(biāo),可以用來(lái)評(píng)價(jià)輸出框與真實(shí)框的距離,如公式(3)所示:
(3)
式(3)中A,B分別代表預(yù)測(cè)框和真實(shí)框.IOU具有尺度不變性,但如果兩個(gè)框沒有相交,如圖5所示.
圖5 IOU為0的情況Fig.5 Condition where IOU is 0
此時(shí)A框與B框,A框與C框的IOU都為0.但A框與B框的距離小于A框與C框的距離.此時(shí)IOU無(wú)法衡量?jī)蛇吔缈虻木嚯x.YOLOv3算法在計(jì)算邊界框損失時(shí)采或L2范數(shù)來(lái)計(jì)算位置回歸損失,在評(píng)測(cè)時(shí)卻采用IOU判斷是否檢測(cè)到目標(biāo).如果直接將IOU作為損失函數(shù),此時(shí)loss=0,沒有梯度回傳,無(wú)法進(jìn)行學(xué)習(xí)訓(xùn)練.
Rezatofighi等[16]提出了GIOU的思想,先計(jì)算兩個(gè)框的最小閉包區(qū)域面積Ac,再計(jì)算出IOU,然后計(jì)算閉包區(qū)域中不屬于兩個(gè)框的區(qū)域占閉包區(qū)域的比重,最后利用IOU減去所述比重得到GIOU,如公式(4)所示:
(4)
與IOU類似,GIOU也是一種距離度量,并且GIOU是IOU的下界,在兩個(gè)框無(wú)限重合的情況下,IOU=GIOU=1.與IOU只關(guān)注重疊區(qū)域不同,GIOU不僅關(guān)注重疊區(qū)域,還關(guān)注非重合區(qū)域,能夠更好的反映兩者的重合度.YOLOv3中邊界框損失由L2范數(shù)評(píng)估,由于L2范數(shù)對(duì)物體的尺度比較敏感,SSD論文中直接采用distance losses,即以IOU代替邊界框損失,但I(xiàn)OU無(wú)法直接優(yōu)化沒有重疊的Bounding Box.
GIOU針對(duì)兩框不相交的情況,提出了一種解決思路.Zheng等人[17]指出,GIOU仍然存在局限性.GIOU實(shí)際上通過增大預(yù)測(cè)框的大小來(lái)使其與目標(biāo)框重疊,如果兩框是相交的,此時(shí)GIOU退化為了IOU,即GIOU仍然存在收斂速度慢,并且回歸不準(zhǔn)等問題.由此引出了DIOU的思想,與GIOU類似,DIOU在與目標(biāo)框不重疊時(shí),仍然可以為邊界框提供移動(dòng)方向.而DIOU可以直接最小化兩個(gè)目標(biāo)框的距離,因此比GIOU收斂的更快.
DIOU表達(dá)式如式(5)所示:
(5)
式(5)中,d=ρ2(b,bgt)表示預(yù)測(cè)框與實(shí)際框中心點(diǎn)之間的直線距離,c表示兩者矩形閉包的對(duì)角線長(zhǎng)度.
本文使用DIOUloss代替YOLOv3中邊界框損失函數(shù):
DIOUloss=1-DIOU
(6)
當(dāng)兩邊界框DIOU越大時(shí),DIOUloss越小,網(wǎng)絡(luò)會(huì)朝著預(yù)測(cè)框與真實(shí)框重疊度較高的方向去優(yōu)化.修改后的損失函數(shù)如式(7)所示:
(7)
為了驗(yàn)證改進(jìn)后損失函數(shù)的有效性,使用改進(jìn)后的損失函數(shù)代替原YOLOv3中的損失函數(shù),Anchor Box大小保持不變.表1分別展示了使用IOU、GIOU、DIOU邊界框損失函數(shù)在混合數(shù)據(jù)集上目標(biāo)檢測(cè)效果對(duì)比.從表1中可以看出,使用GIOU改進(jìn)損失函數(shù)的YOLOv3算法在混合數(shù)據(jù)集上目標(biāo)檢測(cè)的平均精度為90.32%,相比于原始YOLOv3算法沒有實(shí)質(zhì)性的提升,這是由于檢測(cè)過程中存在大量重疊的邊界框,此時(shí)GIOU并沒有進(jìn)行實(shí)質(zhì)性的優(yōu)化.而使用DIOU改進(jìn)損失函數(shù)的YOLOv3算法的平均精度有顯著提升,達(dá)到了92.17%,檢測(cè)速度為42.88f·s-1.
表1 YOLOv3改變損失函數(shù)后檢測(cè)效果Table 1 YOLOv3 detects the effect after changing the loss function
YOLOv3中每一個(gè)輸出尺度都采用3個(gè)不同的Anchor Box進(jìn)行預(yù)測(cè),Anchor Box尺寸是針對(duì)數(shù)據(jù)集而變化的,需要通過聚類方式得到.原始YOLOv3算法中的Anchor Box尺寸是根據(jù)COCO數(shù)據(jù)集聚類得到,由于COCO數(shù)據(jù)集中類別太多,且尺寸不一,因此聚類出的Anchor Box形狀不一.本文僅僅針對(duì)車輛以及行人,需要重新對(duì)混合數(shù)據(jù)集進(jìn)行聚類,選出更有代表性的Anchor Box.原始YOLOv3算法采用K-means[18]算法選取Anchor Box,但由于 K-means算法中對(duì)初始點(diǎn)的選取比較敏感,需要多次聚類才能得到結(jié)果,并且結(jié)果不一定是全局最優(yōu),只能保證局部最優(yōu).本文采取K-means++[19]算法,在選取初始點(diǎn)時(shí)進(jìn)行改進(jìn),能夠使得聚類中心之間距離足夠遠(yuǎn),并且將距離定義為:
d=1-GIOU(box,centroid)
(8)
K-means++算法步驟如下:
1)從數(shù)據(jù)集X中隨機(jī)選取一個(gè)樣本作為聚類中心Ci.
2)對(duì)于數(shù)據(jù)集X中的每一個(gè)樣本點(diǎn)Xi,計(jì)算出它與最近聚類中心的距離D(Xi).其中:
D(Xi)=1-GIOU(Xi,Ci)
(9)
3)計(jì)算每個(gè)樣本被選為下一個(gè)聚類中心的概率:
(10)
依此選出下一個(gè)聚類中心.
4)重復(fù)步驟2)和步驟3),直到K個(gè)聚類中心被選出.
5)利用上述步驟選定的K個(gè)聚類中心運(yùn)行標(biāo)準(zhǔn)的K-means算法.
依據(jù)聚類中心選取9個(gè)Anchor Box,使用logistic回歸函數(shù)對(duì)不同尺度上的每個(gè)Anchor Box進(jìn)行置信度回歸,預(yù)測(cè)出Bounding Box,然后根據(jù)置信度選出最合適的類別.
本文使用優(yōu)化后的K-means++聚類算法,對(duì)混合數(shù)據(jù)集進(jìn)行聚類分析.保持K值為9不變,經(jīng)聚類算法迭代后選取的對(duì)應(yīng)Anchor Box的寬高分別為(14,37)、(8,77)、(23,53)、(18,136)、(37,76)、(60,108)、(38,261)、(93,173)、(147,291).
表2 YOLOv3改變聚類算法后檢測(cè)效果Table 2 YOLOv3 detects the effect after changing the clustering algorithm
對(duì)混合數(shù)據(jù)集分別使用不同的聚類算法進(jìn)行聚類得到Anchor Box,其檢測(cè)效果如表2所示.從表2中可以看出,使用改進(jìn)K-means++的YOLOv3算法在混合數(shù)據(jù)集上的平均精度為91.23%,檢測(cè)速度為43.23f·s-1.
本次實(shí)驗(yàn)基于Linux平臺(tái)通過Python語(yǔ)言實(shí)現(xiàn),配置Ubuntu 18.04系統(tǒng),應(yīng)用深度學(xué)習(xí)框架Tensorflow1.13.2搭配Keras2.1.5搭建網(wǎng)絡(luò)模型,硬件環(huán)境為Inter(R)Core(TM)i7-8750H CPU、16GB內(nèi)存、NVIDIA GeForce GTX1080Ti 11G顯存.數(shù)據(jù)集采用自制混合數(shù)據(jù)集.
對(duì)YOLOv3算法和改進(jìn)的YOLOv3算法分別采用批梯度下降的方式進(jìn)行訓(xùn)練,使用遷移學(xué)習(xí)的思想,加載darknet53.conv.74預(yù)訓(xùn)練權(quán)重進(jìn)行訓(xùn)練.樣本總共進(jìn)行50000次迭代,其中批量大小設(shè)置為64,初始學(xué)習(xí)率設(shè)定為0.001,動(dòng)量為0.95,權(quán)重衰減系數(shù)為0.0002.在網(wǎng)絡(luò)迭代40000次和45000次時(shí)將學(xué)習(xí)率分別下降為0.0001和0.00001,使得模型盡快收斂,圖6為訓(xùn)練過程中平均損失函數(shù)收斂曲線.
圖6 avg_loss收斂曲線Fig.6 Avg_loss convergence curve
本文使用均值平均精度(mAP)與每秒檢測(cè)幀數(shù)(FPS)兩項(xiàng)指標(biāo)對(duì)模型進(jìn)行評(píng)價(jià),小目標(biāo)漏檢率通過對(duì)比YOLOv3算法前后的預(yù)測(cè)效果評(píng)估.其中精確率與召回率的定義為:
(11)
(12)
準(zhǔn)確率表示某一類別預(yù)測(cè)目標(biāo)中預(yù)測(cè)正確占總正確樣本的比例,召回率表示預(yù)測(cè)目標(biāo)正確占總預(yù)測(cè)樣本的比例.以召回率為橫坐標(biāo),準(zhǔn)確率為縱坐標(biāo),繪制出P-R曲線,曲線下的面積即為AP.由于本文數(shù)據(jù)集中只包含兩個(gè)樣本,mAP計(jì)算如式(13)所示:
(13)
選取6組城市道路圖片,并且分別使用改進(jìn)后的YOLOv3算法和原始YOLOv3算法進(jìn)行檢測(cè).實(shí)驗(yàn)結(jié)果如圖7所示.
圖7 檢測(cè)結(jié)果示意圖Fig.7 Schematic diagram of detection results
在第1、2組實(shí)驗(yàn)中,由于距離較遠(yuǎn),靠后的車輛像素較小,原始YOLOv3算法僅僅只能檢測(cè)出常規(guī)物體,而漏掉了最后兩輛車.得益于本文所提出的改進(jìn)YOLOv3算法,本文算法成功的檢測(cè)出了漏檢的車輛.
在第3組實(shí)驗(yàn)中,由于樹干的遮擋,并且右側(cè)行人的像素較小,原始YOLOv3算法僅僅檢測(cè)出正前方的車輛,而漏掉了右側(cè)行人.而改進(jìn)的YOLOv3可以正確定位到右側(cè)行人,并且成功的檢測(cè)出來(lái)該目標(biāo).表明本算法在進(jìn)行小目標(biāo)檢測(cè)時(shí)具有良好的抗遮擋能力.
在第4、5組實(shí)驗(yàn)中,最后的車輛距離較遠(yuǎn),原始YOLOv3算法只能檢測(cè)出正前方的小轎車,并不能定位較遠(yuǎn)的目標(biāo).而本文算法在圖像模糊和像素占比少的情況下,依舊能夠成功檢測(cè)出漏掉的小目標(biāo).
在第6組實(shí)驗(yàn)中,原始YOLOv3算法在檢測(cè)過程中漏掉了右側(cè)一個(gè)行人目標(biāo).而本文算法不僅成功檢測(cè)出該行人,而且成功檢測(cè)出最后的小車.
基于上述分析,原始YOLOv3算法對(duì)于小目標(biāo)檢測(cè)均存在漏檢的情況,而本文所提出改進(jìn)的YOLOv3算法不僅可以有效檢測(cè)出遺漏的行人及車輛,并且在檢測(cè)小目標(biāo)時(shí)具有良好的抗遮擋能力.
表3 YOLOv3算法改進(jìn)前后效果對(duì)比 Table 3 YOLOv3 algorithm before and after the improvement of the effect comparison
為了進(jìn)一步驗(yàn)證本文提出方法的有效性,本文通過檢測(cè)精度及召回率對(duì)改進(jìn)的YOLOv3算法進(jìn)行評(píng)價(jià).表3中展示了YOLOv3算法在混合數(shù)據(jù)集上前后對(duì)比實(shí)驗(yàn)的結(jié)果.從表中可以看出,相比于原始YOLOv3算法,改進(jìn)后的YOLOv3算法在混合數(shù)據(jù)集上的精度及召回率均有提升,對(duì)小物體檢測(cè)的召回率提高了1.57%,達(dá)到90.05%,有效的降低了小物體的漏檢率.
本文還將改進(jìn)的YOLOv3算法與Faster-RCNN、SSD、YOLOv2,YOLOv3等目標(biāo)檢測(cè)算法進(jìn)行對(duì)比,均采用自制混合數(shù)據(jù)集進(jìn)行車輛與行人檢測(cè).同時(shí)選取mAP和檢測(cè)速度兩項(xiàng)指標(biāo)對(duì)算法進(jìn)行評(píng)估,為了進(jìn)一步對(duì)目標(biāo)檢測(cè)算法進(jìn)行評(píng)估,還引入F1-score指標(biāo).
(14)
F1-score是對(duì)精度和召回率的調(diào)和平均,可以更準(zhǔn)確的反映模型的好壞.
表4中展示了其他目標(biāo)檢測(cè)算法與改進(jìn)的YOLOv3算法對(duì)比實(shí)驗(yàn)結(jié)果.
表4 改進(jìn)后算法與其他目標(biāo)檢測(cè)算法對(duì)比 Table 4 Comparison between the improved algorithm and other target monitoring algorithms
從表4中可以看出,YOLOv3的平均精度達(dá)到了92.82%,檢測(cè)速度達(dá)到了42.87f·s-1,滿足實(shí)時(shí)性的要求.同時(shí),本文所提出的改進(jìn)YOLOv3模型的F1-score排名第一,同時(shí)兼顧了高準(zhǔn)確率與高召回率,優(yōu)于其他對(duì)比試驗(yàn).
針對(duì)傳統(tǒng)目標(biāo)檢測(cè)算法在檢測(cè)小目標(biāo)物體時(shí)漏檢率較高,檢測(cè)精度低的問題.本文基于原始YOLOv3算法進(jìn)行了改進(jìn),首先新增了一個(gè)檢測(cè)尺度,用于降低小目標(biāo)的漏檢率,并且使用K-means++聚類算法對(duì)數(shù)據(jù)集重新進(jìn)行聚類,得到合適的Anchor Box,提高了檢測(cè)的平均精度和速度.然后使用DIOU損失替代邊界框損失,提高了定位準(zhǔn)確度及平均精度.將改進(jìn)的YOLOv3算法在自制混合數(shù)據(jù)集上與原始YOLOv3算法進(jìn)行對(duì)比實(shí)驗(yàn).實(shí)驗(yàn)結(jié)果表明改進(jìn)的YOLOv3能夠有效的降低小目標(biāo)的漏檢率,并且在不影響檢測(cè)速度的情況下,提高檢測(cè)的平均精度.本實(shí)驗(yàn)檢測(cè)的平均精度達(dá)到92.82%.
道路小目標(biāo)檢測(cè)在很多領(lǐng)域具有重要作用,例如交通安全,智能交通,無(wú)人駕駛等等,目前該研究依然具有一定的挑戰(zhàn)性.本文主要通過改變特征融合結(jié)構(gòu)、即新增一個(gè)檢測(cè)尺度,從而更有利于小目標(biāo)物體檢測(cè).但不同檢測(cè)場(chǎng)景下的小目標(biāo)信息各不相同,即多尺度融合方法的可遷移性較差,并不適合遷移學(xué)習(xí),在某個(gè)具體場(chǎng)景進(jìn)行小目標(biāo)檢測(cè)時(shí),要選擇合適的特征融合結(jié)構(gòu)[22].隨著深度學(xué)習(xí)的發(fā)展及硬件設(shè)備的更新,未來(lái)可以采用更具優(yōu)勢(shì)的YOLOv4網(wǎng)絡(luò)來(lái)進(jìn)行道路小目標(biāo)檢測(cè)[23],進(jìn)一步提升算法的性能.