焦天馳, 李 強(qiáng), 林茂松, 賀賢珍
(西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010)
近幾年,目標(biāo)檢測[1]在汽車的輔助駕駛系統(tǒng)、機(jī)器人技術(shù)、工業(yè)物聯(lián)網(wǎng)智能監(jiān)控等領(lǐng)域有著廣泛的應(yīng)用[2]。隨著卷積神經(jīng)網(wǎng)絡(luò)在圖像分類挑戰(zhàn)中取得成功后,大量基于深度卷積神經(jīng)網(wǎng)絡(luò)的方法被用于目標(biāo)檢測,這些方法大致可分為基于候選框的方法和基于回歸的方法。前者主要有R-CNN、SPP-net[3]、R-FCN、Faster R-CNN[5]等方法,在檢測精確度上有著優(yōu)異的表現(xiàn);后者主要有SSD和YOLO[7]等,方法在實(shí)時(shí)性上有著明顯的優(yōu)勢。
文獻(xiàn)[9]通過聚類和RPN網(wǎng)絡(luò)提取可能含有行人的區(qū)域,再對目標(biāo)區(qū)域進(jìn)行判別和分類,相比DPM的方法得到更好的檢測效果。文獻(xiàn)[10]提出了一種數(shù)據(jù)增強(qiáng)方法,有效的提高了遮擋條件下的人臉召回率。文獻(xiàn)[11]通過融合PN網(wǎng)絡(luò)、FTN網(wǎng)絡(luò)以及不同卷積層的特征,使得對目標(biāo)的識別和定位得到了顯著優(yōu)化。對于目標(biāo)檢測模型而言,在保持精度的同時(shí),減少計(jì)算次數(shù)和內(nèi)存占用成了亟需解決的問題。
本文基于回歸的目標(biāo)檢測方法,以YOLOv3模型為主體,提出一種基于深度可分離卷積網(wǎng)絡(luò)的M-YOLOv3目標(biāo)檢測方法,將以反殘差塊為基礎(chǔ)的輕量級網(wǎng)絡(luò)[13]作為特征提取網(wǎng)絡(luò),通過多尺度預(yù)測和特征融合提高模型性能;使用靜態(tài)行人數(shù)據(jù)集INRIA對算法進(jìn)行驗(yàn)證分析,針對本文采用的網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)集通過聚類分析的方法生成先驗(yàn)框,加快收斂速度。與YOLOv3的對比試驗(yàn)表明:改進(jìn)后的方法在INRIA數(shù)據(jù)集上準(zhǔn)確率、召回率和實(shí)時(shí)性上都有著較好的提升。
目標(biāo)檢測算法性能的好壞與基礎(chǔ)特征提取網(wǎng)絡(luò)有很大關(guān)系,YOLOv3中采用類Resnet[14]的Darknet53作為特征提取網(wǎng)絡(luò),該網(wǎng)絡(luò)包含53個(gè)卷積層。YOLOv2對于前向過程中張量尺寸的變化通過5次最大池化進(jìn)行,而在YOLOv3的基礎(chǔ)網(wǎng)絡(luò)Darknet53里則是通過5次增大卷積核的步長來進(jìn)行。一方面YOLOv3采取這樣的全卷積結(jié)構(gòu),另一方面其引入殘差結(jié)構(gòu),使得訓(xùn)練網(wǎng)絡(luò)的難度大大減小,從而提高網(wǎng)絡(luò)分類的準(zhǔn)確率。
YOLOv3以回歸的方式訓(xùn)練網(wǎng)絡(luò),首先通過K-means算法對數(shù)據(jù)集樣本進(jìn)行聚類分析,在3個(gè)不同尺度上生成3組先驗(yàn)框,后續(xù)邊界框的大小將基于9個(gè)先驗(yàn)框進(jìn)行微調(diào)。輸入416×416的圖像,經(jīng)過基礎(chǔ)網(wǎng)絡(luò)進(jìn)行特征提取,輸入FPN結(jié)構(gòu)。最終生成3個(gè)尺度的特征圖作為預(yù)測,分別為13×13,26×26和52×52。將這些特征圖劃為網(wǎng)格區(qū)域,在每一個(gè)網(wǎng)格上預(yù)測3個(gè)邊界框,一共產(chǎn)生(13×13+26×26+52×52)×3=10 647個(gè)邊界框。每個(gè)邊界框預(yù)測4個(gè)坐標(biāo):tx,ty,tw,th。目標(biāo)網(wǎng)格到圖像左上角的距離為(cx,xy)并且它對應(yīng)的邊界框?qū)捄透邽閜w,ph。對應(yīng)的預(yù)測關(guān)系如下
bx=σ(tx)+cx,by=σ(ty)+cy,bw=pwetw,bh=pheth
(1)
每個(gè)網(wǎng)格還預(yù)測物體在預(yù)測框中的概率Pr(Object),并通過公式對預(yù)測框進(jìn)行打分
(2)
本文在YOLOv3目標(biāo)檢測算法模型的基礎(chǔ)上,將輕量化網(wǎng)絡(luò)Mobilenetv2與YOLOv3算法相結(jié)合。Mobilenetv2中主要通過使用深度可分離卷積[15,16](depth-wise separable convolution)的操作減少卷積過程中的計(jì)算量,從而降低模型整體的復(fù)雜度。深度可分離卷積對于許多高效的神經(jīng)網(wǎng)絡(luò)來說是非常關(guān)鍵的部分,其將一個(gè)標(biāo)準(zhǔn)的卷積操作分解為兩步完成。第一步,深度卷積(depthwise convolution):對每個(gè)輸入通道利用單個(gè)卷積核進(jìn)行卷積;第二步,逐點(diǎn)卷積(pointwise convolution):利用1×1卷積將上一步的特征圖在深度方向進(jìn)行加權(quán)組合,獲得更多的特征。再引入了Resnet中殘差塊的思想,結(jié)合深度可分離卷積的特點(diǎn)生成反殘差塊(inverted residual block)如,從而加強(qiáng)網(wǎng)絡(luò)的特征學(xué)習(xí)。通過反殘差塊的堆疊形成Mobilenetv2網(wǎng)絡(luò),結(jié)構(gòu)如表1。
表1 Mobilenetv2網(wǎng)絡(luò)結(jié)構(gòu)
其中,t為“擴(kuò)展”倍數(shù),c為輸出通道數(shù),n為重復(fù)次數(shù),s為步長。首先,去掉mobilenetv2網(wǎng)絡(luò)的最后的一個(gè)平均池化層和一個(gè)卷積層,得到維度為320的輸出結(jié)果,在其后增添一個(gè)1×1×1 280的卷積層。輸入圖像的尺度為416×416,32倍降采樣得到尺度13×13的特征圖;對13×13的特征圖進(jìn)行2倍的上采樣與第12層的輸出進(jìn)行拼接得到26×26的特征圖;將26×26的特征圖進(jìn)行2倍的上采樣與第5層的輸出結(jié)果進(jìn)行拼接得出52×52的特征圖;利用這3種不同尺度的特征圖分別建立特征融合目標(biāo)檢測層,從而實(shí)現(xiàn)大、中、小尺度的預(yù)測。改進(jìn)后的M-YOLOv3結(jié)構(gòu)如圖1。
圖1 M-YOLO結(jié)構(gòu)
網(wǎng)絡(luò)模型雖然自身可以不斷學(xué)習(xí)并調(diào)整邊界框的大小,但提前預(yù)備一組合適尺寸的邊界框可以提高模型的性能。YOLOv3算法中引入了Faster R-CNN里anchor(先驗(yàn)框)的思想,利用K-means算法維度聚類產(chǎn)生固定寬高比的先驗(yàn)框,初始的先驗(yàn)框會(huì)影響網(wǎng)絡(luò)模型對目標(biāo)檢測的速度和精度。YOLOv3中通過對COCO數(shù)據(jù)集的維度聚類產(chǎn)生合適寬高比的先驗(yàn)框。這里K-means里的距離度量并沒有使用標(biāo)準(zhǔn)的歐氏距離,而采用平均交互比(Avg IOU)作為度量
d(box,centroid)=1-IOU(box,centroid)
(3)
式中box為樣本,centroid為簇中心,IOU(box,centroid)表示樣本框與簇中心框的交并比。選取合適的IOU值,可以在網(wǎng)絡(luò)模型的速度和精度之間取得較好的平衡。本文采用INRIA數(shù)據(jù)集,而YOLOv3中先驗(yàn)框的選擇是針對COCO數(shù)據(jù)集取得,其寬高比不能較好地表達(dá)行人的特征,由此需要對INRIA數(shù)據(jù)集進(jìn)行維度聚類設(shè)計(jì)先驗(yàn)框,并依據(jù)所需模型的性能選取一組合適的先驗(yàn)框。本文選取先驗(yàn)框數(shù)量1~9,分別對數(shù)據(jù)集進(jìn)行維度聚類,得出平均交并比與先驗(yàn)框數(shù)量的關(guān)系如圖2??紤]本文所選用的數(shù)據(jù)集,尺度變化較大,本文選取先驗(yàn)框的數(shù)量為9。
圖2 K-means 維度聚類結(jié)果
INRIA數(shù)據(jù)集中訓(xùn)練集和測試集共有正樣本902張,其中包含3 542個(gè)行人,圖片中人體大部分為站立姿態(tài)且高度大于100像素。行人的尺度變化明顯,背景光線明亮且背景豐富,但其中存在部分標(biāo)注錯(cuò)誤的圖片。本文在INRIA數(shù)據(jù)集的基礎(chǔ)上去除標(biāo)注信息有誤的圖片得出886張圖片作為實(shí)驗(yàn)數(shù)據(jù),隨機(jī)劃分為650張訓(xùn)練集、72張訓(xùn)練驗(yàn)證集以及164張測試集。
本文的實(shí)驗(yàn)環(huán)境為操作系統(tǒng):ubantu17.10;深度學(xué)習(xí)框架:Keras;CPU:英特爾ES-2620 v3;內(nèi)存:32G;GPU:NVIDA GeForce GTX 1060;
本文改進(jìn)算法M-YOLOv3的訓(xùn)練和測試輸入尺度均采用416×416,通過多個(gè)反殘差塊堆疊形成特征提取網(wǎng)絡(luò)提取行人特征,再通過3個(gè)不同尺度的特征圖預(yù)測行人的位置和坐標(biāo)信息。針對INRIA數(shù)據(jù)集,運(yùn)用K-means維度聚類生成3個(gè)尺度的9個(gè)先驗(yàn)框:(31×86),(40×113),(52×146),(60×187),(74×227),(92×291),(120×357),(159×455),(212×602)。分別對YOLOv3和M-YOLOv3進(jìn)行訓(xùn)練,初始的學(xué)習(xí)率為0.001,在迭代次數(shù)為 2 000時(shí)學(xué)習(xí)率下降為0.000 1以及在迭代次數(shù)為3 000時(shí)學(xué)習(xí)率下降為0.000 01。M-YOLOv3訓(xùn)練過程中的損失收斂曲線如圖3。
圖3 損失收斂曲線
經(jīng)過4 000次迭代后,loss和val_loss逐步趨于穩(wěn)定。最終loss下降到4.6左右,val_loss下降到10左右,表明訓(xùn)練得到的模型較為理想。圖4為M-YOLOv3在INRIA數(shù)據(jù)集的檢測效果,其中,對于背景復(fù)雜、圖像模糊、行人尺度變化較大且存在遮擋的圖像也有較好的檢測效果。
圖4 M-YOLOv3檢測效果
采用來源于信息檢索中對相關(guān)性的評價(jià)Precision-Recall曲線反映模型對正確檢測出的目標(biāo)的識別準(zhǔn)確程度和覆蓋能力,即召回率(recall)、精度(precision)和AP
(4)
式中TP為正確檢測出目標(biāo),F(xiàn)N為沒有被檢測出目標(biāo),F(xiàn)P為錯(cuò)誤檢測目標(biāo),AP即PR曲線與x軸圍成的面積。
在測試集上分別對YOLOv3和M-YOLOv3模型進(jìn)行驗(yàn)證,得出如圖5所示Precision-Recall曲線對比。
圖5 各網(wǎng)絡(luò)P-R曲線
與YOLOv3相比,M-YOLOv3在Precision-Recall曲線上表現(xiàn)的更好。且改進(jìn)后的M-YOLOv3對行人目標(biāo)的檢測準(zhǔn)確率由79.87 %提升到84.13 %,召回率由83 %提升到88 %。由于模型復(fù)雜度的降低,M-YOLOv3較YOLOv3在檢測速度(平均檢測每張圖片所需的時(shí)間由0.201 2 s到0.133 5 s)上有著更好的表現(xiàn)。
運(yùn)用K-means聚類方法對數(shù)據(jù)集樣本進(jìn)行聚類分析,提高定位精度,加快收斂。將mobilenetv2作為YOLOv3的基礎(chǔ)網(wǎng)絡(luò),將YOLOv3輸出的32倍下采樣特征圖進(jìn)行2倍上采樣并與16倍下采樣特征圖拼接,建立輸出為16倍下采樣的特征融合目標(biāo)檢測層;同樣將16倍下采樣特征圖進(jìn)行2倍上采樣與8倍下采樣特征圖拼接,建立輸出為8倍下采樣的特征融合目標(biāo)檢測層。實(shí)驗(yàn)表明,改進(jìn)后的方法M-YOLOv3在INRIA數(shù)據(jù)集上準(zhǔn)確率、召回率和檢測速度有著不錯(cuò)的提升。但是改進(jìn)后的YOLOv3算法在實(shí)時(shí)性上距離工程應(yīng)用還有一定差距。