胡貴桂
摘 要:近年來,社會經(jīng)濟持續(xù)高速的發(fā)展,人均汽車占有量迅速增加。為了避免車輛追尾等事故發(fā)生,結(jié)合道路環(huán)境下目標檢測的難點及要求,文章選擇基于卷積神經(jīng)網(wǎng)絡的YOLOv3算法,并針對YOLOv3中使用的k-means聚類算法初始時隨機選擇質(zhì)心這一不穩(wěn)定性以及原本的darknet53網(wǎng)絡層數(shù)較低導致精度不是很高的問題,引用k-means++聚類算法對k-means聚類算法進行優(yōu)化,并將darknet53替換成特征提取能力更強的resnet101,進行算法優(yōu)化。實驗結(jié)果顯示優(yōu)化后的算法mAP提高了12.2%,基本符合實際應用檢測的精度要求。
關(guān)鍵詞:道路環(huán)境;目標檢測;YOLOv3
中圖分類號:TP301.6 ?文獻標識碼:B ?文章編號:1671-7988(2020)05-117-05
Abstract: In recent years, with the rapid development of social economy, the per capita car ownership has increased rapidly. In order to avoid accident, such as rear-end collision, combined with the difficulties and requirements of target detection in road environment, this paper choose YOLOv3 algorithm based on convolution neural network. Aiming at the problem of the accuracy is not very high caused by the instability of K-means clustering algorithm which selects the center of mass in the initial randomly and the low layers of darknet53 network.referencing k-means++ clustering algorithm to optimize k-means clustering algorithm, and using resnet101 whose feature extraction capability is stronger to replace darknet53, optimize algorithm. Experimental results show that the optimized algorithm mAP improves 12.2%, which basically meets the accuracy requirements of practical application.
Keywords: Road environmental; Target detection; YOLOv3
引言
隨著社會經(jīng)濟持續(xù)高速的發(fā)展,人均汽車占有量迅速上升,傳統(tǒng)交通行業(yè)存在的缺陷日益突出,包括交通事故頻發(fā)、道路交通擁擠、環(huán)境污染嚴重等問題,因此,車輛智能化迫在眉睫。而車輛智能化首要任務是讓車輛理解周圍的場景,知道周圍的目標“是什么”,即實現(xiàn)道路環(huán)境下的目標檢測。
由于道路環(huán)境復雜,且車輛是在運動中實時采集場景圖片。因此,道路環(huán)境下的目標檢測存在以下三大難點:1)由于行車過程中光照條件和相對角度等因素變化,使目標的特征發(fā)生一定變化,導致目標檢測產(chǎn)生漏檢和誤檢;2)由于目標姿態(tài)改變(如人站立、行走騎行時的姿態(tài)不同)、局部遮擋(如前車被后車部分遮擋)等非剛性形變,導致目標檢測產(chǎn)生漏檢;3)存在同類目標的特征差別較大(如山地自行車和共享單車都屬于自行車,但特征差別較大),不同類目標的特征差別較小的情況(如電瓶車和自行車),導致目標檢測產(chǎn)生誤檢[1]。
傳統(tǒng)的目標檢測技術(shù)使用手工設計的特征,提取方法泛化性能較差,難以提取到更抽象的特征,所以在道路環(huán)境中,使用傳統(tǒng)的目標檢測技術(shù),難以達到檢測精度的要求。近年來,研究者們發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡可以自動提取圖像更深層次的特征,克服了手工設計特征的缺點,具有更強大的特征表達能力,泛化能力強、魯棒性較好。因此,卷積神經(jīng)網(wǎng)絡很好的解決了復雜的道路環(huán)境下采集的相同目標一致性較差的問題,非常適用于道路環(huán)境下的目標檢測。
1 目標檢測算法
根據(jù)檢測思想的不同,基于卷積神經(jīng)網(wǎng)絡的目標檢測算法主要分為兩類:基于候選區(qū)域的Two-stage(兩步檢測)目標檢測算法和基于回歸的One-stage(單步檢測)目標檢測算法[2]?;诤蜻x區(qū)域的目標檢測算法包括R-CNN[3]、SPP- Net[4]、Fast R-CNN[5]、Faster R-CNN[6]、R-FCN[7]、Mask R-CNN[8]等,該算法從R-CNN到Mask R-CNN,都采用了“候選區(qū)域+CNN+分類回歸”這一基本思路,不斷在檢測精度和速度上進行改進。但整體而言,這些網(wǎng)絡的實時性較差,很難滿足實際需求。基于回歸的目標檢測算法包括YOLO系列[9]~[11]、SSD[12]、FPN[13]以及RetinaNet[14],該算法基本思路是給定輸入圖像,將特征提取、目標分類以及目標回歸的所有過程都整合到一個卷積神經(jīng)網(wǎng)絡中完成,很好地改善了目標檢測算法的實時性,使目標檢測在實際中的應用成為可能。目標檢測算法在VOC2007、VOC2012和COCO數(shù)據(jù)集的性能如表1所示。
從表中可以看出YOLO系列的檢測速度遠高于其他網(wǎng)絡框架,這對于神經(jīng)網(wǎng)絡應用于實際生活有重要的意義,并且YOLOv3相比YOLOv1、YOLOv2等精度有了較高提升。而道路環(huán)境下的目標檢測對實時性要求較高,因此,YOLOv3是綜合性能較好,最適合本文的一種方法。
2 YOLOv3算法改進
本文針對YOLOv3中使用的k-means聚類算法初始時隨機選擇質(zhì)心這一不穩(wěn)定性以及原本的darknet53網(wǎng)絡層數(shù)較低導致精度不是很高的問題,對k-means聚類方法進行優(yōu)化,并將原本的darknet53替換成特征提取能力更強的resnet101,進行算法優(yōu)化提高檢測精度。
2.1 k-means優(yōu)化改進
在YOLOv3中使用k-means聚類算法,統(tǒng)計anchors的參數(shù),對bbox的初始位置進行確定。而k-means聚類算法隨機選取k個數(shù)據(jù)點作為初始的聚類質(zhì)心,這種隨機的方式只能找到局部最優(yōu)化類,而不是全局最優(yōu)化類,影響了算法的聚類效果。
為了避免簡單k-means聚類造成的影響,本文引用k- means++聚類算法,讓初始質(zhì)心盡可能的遠而不是隨機產(chǎn)生,對原算法進行優(yōu)化。具體步驟如下:
首先確定k值,即數(shù)據(jù)集經(jīng)過聚類最終得到的集合數(shù),從數(shù)據(jù)集中隨機選取1個數(shù)據(jù)點作為第一個聚類質(zhì)心。接著,對于數(shù)據(jù)集中的每一個點計算其與第一個質(zhì)點的距離,選取最遠的點作為第二個質(zhì)點,依此類推,假設已經(jīng)選取了n個初始聚類質(zhì)心(0 2.2 基于殘差網(wǎng)絡特征提取的YOLOv3 加深卷積神經(jīng)網(wǎng)絡,能加強特征提取能力,但同時梯度消失的現(xiàn)象也會更明顯,網(wǎng)絡的訓練效果反而下降,而殘差網(wǎng)絡[15]允許網(wǎng)絡盡可能的加深,其結(jié)構(gòu)如圖1。因此,本文使用resnet101替換原本的darknet53,以此來提升yolov3的檢測性能。 殘差模塊除了正常的卷積層輸出外,還有一個分支把輸入直接連到輸出上,該輸出和卷積的輸出做算術(shù)相加得到最終的輸出,如式(1)所示,x是所示結(jié)構(gòu)的輸入,F(xiàn)(x)是卷積分支的輸出,H(x)是整個結(jié)構(gòu)的輸出。殘差結(jié)構(gòu)人為制造了恒等映射,讓整個結(jié)構(gòu)朝著恒等映射的方向收斂,確保最終的錯誤率不會因為深度的變大而越來越差。 每個殘差單元通常由幾個疊加的卷積層Conv、批量正則化層BN、以及ReLU激活組成。在式(3)中F(x,wi)代表殘差學習映射,其中σ代表ReLU激活函數(shù),在這里省略了偏置項,在式(2)中當F和x維度不同時,添加偏置Wx,其好處是不會增加訓練參數(shù)。 如表2所示,為殘差網(wǎng)絡典型的三個堆疊層數(shù),殘差網(wǎng)絡將整個卷積層分為5個部分,每個部分輸出的特征圖大小以及通道數(shù)相同,只是在每個部分的堆疊方式卷積堆疊數(shù)量有區(qū)別??紤]到網(wǎng)絡堆疊層數(shù)過多對檢測速度的影響,在改進YOLOv3時,殘差網(wǎng)絡層數(shù)的選取上做了最優(yōu)的選取,選用特征提取能力較強,且又不失檢測速度的ResNet101,改進后的網(wǎng)絡結(jié)構(gòu)如圖2所示。 由于YOLOv3對小目標檢測的能力較弱,在改進的過程中也對此做出了相應的調(diào)整。經(jīng)深層卷積之后的表征較強,但容易丟失細節(jié)信息,如果能結(jié)合深層特征與淺層特征,那么特征圖的對于小目標的特征描述將會得到提升。從此思想出發(fā),本論文采用特征金字塔的方式融合淺層特征與深層特征,將殘差網(wǎng)絡中深層輸出作為全局語義信息的引導,使用雙線性插值得到與低層特征圖相同尺度的特征映射,通過級聯(lián)的方式,融合了多尺度的上下文信息。在經(jīng)過1×1的卷積降維之后,進行對融合之后的特征圖的檢測識別操作。 3 目標檢測實驗及結(jié)果分析 本文所有實驗在windows 10系統(tǒng),Intel i9-9900k處理器,Nvidia 2080ti GPU,在Anaconda的開發(fā)環(huán)境上,配置Tensor Flow的深度學習開源框架。 3.1 數(shù)據(jù)集制作 3.1.1 圖像采集 本文數(shù)據(jù)采集的第一個思路,就是有效利用網(wǎng)絡公共資源,從公開的數(shù)據(jù)庫采集圖像。本文的目標主要為道路環(huán)境中常見的行人person、自行車bicycle、電動車(摩托車)motorcycle、汽車car、客車bus、貨車trucks、交通燈traffic light。訓練集圖片主要是在Pascal VOC、MS COCO和網(wǎng)絡圖片下載,制作生成15600張圖像的數(shù)據(jù)集。具體數(shù)量如表3所示。 3.1.2 圖像標注 圖像標注的基本目標是根據(jù)圖像的視覺內(nèi)容和獲得的指導信息來確定對應的文本語義描述[16]。本論文中的部分數(shù)據(jù)未標注,需要使用LabelImg工具對圖片進行標注。標注如圖3所示,將圖像中出現(xiàn)的7類目標都盡可能的標注出來,其他類別不做標注。 3.2 模型訓練 模型訓練就是模型中的參數(shù)擬合的過程。本文產(chǎn)用監(jiān)督學習,通過損失函數(shù)來計算網(wǎng)絡輸出分數(shù)和期望分數(shù)之間的誤差,利用得到的誤差不斷修改網(wǎng)絡內(nèi)部的參數(shù)來減小這種誤差。 訓練數(shù)據(jù)大約15600張圖片,總共訓練了200000 batches,每個batches有64張圖片,在英偉達Titan V服務器上大約訓練了18小時。圖4為每個batches訓練的平均損失統(tǒng)計圖,可見在訓練達到200000 batches,平均損失趨近于0,說明訓練達到了收斂。 3.3 檢測結(jié)果及分析 本文選用的評價指標為目前主流的mAP(mean Average Precision)指標。mAP指標為所有目標類別AP(平均精度)的平均值,而每個目標類別的AP是在該目標類別的每一個不同查全率值(包括0和1)下,選取其大于等于這些查全率值時的查準率最大值,以查全率(recall)為自變量,該查全率下的最大查準率(precision)為因變量,繪制曲線,曲線下的面積作為該目標的AP,如圖5所示。 式中,TruePositives為被正確識別為目標類的數(shù)目,F(xiàn)alsePositives為被錯誤識別為目標類的數(shù)目,F(xiàn)alseNagatives為目標類被錯誤識別或為被識別的數(shù)目。 為了測試優(yōu)化后的YOLOv3目標檢測方案的效果,分割訓練數(shù)據(jù)制作成測試集,并用同一測試集測試改進前后的算法精度。對7種類別中的每一類分別統(tǒng)計平均精度(AP),7類目標檢測的AP結(jié)果如圖6所示,改進前的mAP為54.87%,與YOLOv3在COCO數(shù)據(jù)集下的mAP基本吻合;改進后的mAP為67.07%,比改進前提升了12.2%。 如上圖所示,YOLOv3的性能得到了很大的提升,原始的網(wǎng)絡結(jié)構(gòu)能適應常規(guī)的檢測目標,而重新使用新的聚類方法以及優(yōu)化網(wǎng)絡結(jié)構(gòu)后,提高了模型的泛化性能和檢測精度,隨著網(wǎng)絡層數(shù)較原始的網(wǎng)絡有所加深,使得特征提取能力加強,改進后的YOLOv3在測試數(shù)據(jù)中的檢測效果,對于一些比較小的特征以及疊加嚴重的目標,檢測效果都比較突出,基本符合實際應用的檢測精度要求,實現(xiàn)了道路環(huán)境下的目標準確分類。 4 結(jié)論 本文針對道路環(huán)境下目標檢測的難點及要求,選擇YOLOv3算法作為本文的算法,并針對YOLOv3中使用的k-means聚類算法初始時隨機選擇質(zhì)心這一不穩(wěn)定性以及原本的darknet53網(wǎng)絡層數(shù)較低導致精度不是很高的問題,引用k-means++聚類算法對k-means聚類方法進行優(yōu)化,并將darknet53替換成特征提取能力更強的resnet101,進行算法優(yōu)化,優(yōu)化后的算法mAP提高了12.2%,基本符合實際應用檢測的精度要求。 參考文獻 [1] 李旭冬.基于卷積神經(jīng)網(wǎng)絡的目標檢測若干問題研究[D].電子科技大學, 2017. [2] 謝娟英, 劉然. 基于深度學習的目標檢測算法研究進展[J/OL]. 陜西師范大學學報(自然科學版), https://doi.org/10.15983/j.cnki. jsnu.2019(05): 1-9/2019-09-26. [3] Girshick R, Donahue J, Darrell T, Malik J. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[P]. Computer Vision and Pattern Recognition(CVPR),2014 IEEE Confe -rence on, 2014. [4] He Kaiming, Zhang Xiangyu, Ren Shaoqing, Sun Jian. Spatial Pyra -mid Pooling in Deep Convolutional Networks for Visual Recogni -tion[J]. IEEE transactions on pattern analysis and machine intelli -gence, 2015, 37(9). [5] Girshick R. Fast R-CNN[A].IEEE International Conference on Computer Visio[C]. Santiago: IEEE, 2015, 1440-1448. [6] Ren S, He K, Girshick R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transac -tions on Pattern Analysis & Machine Intelligence, 2015, 39(6): 1137-1149. [7] Dai J, Li Y, He K, et al. R-FCN: Object Detection via Region-based Fully Convolutional Networks [J]. 2016, 379-387. [8] He K, Gkioxari G, Dollar P, et al. Mask r-cnn[A]. Computer Vision (ICCV), 2017 IEEE International Conference on. IEEE, 2017: 2980- 2988. [9] Redmon J, Divvala S, Girshick R, et al. You Only Look Once: Unified, Real-Time Object Detection[A]. 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA: IEEE Computer Society, 2016: 429-442. [10] Redmon J, Farhadi A. YOLO9000: better, faster, stronger [A]. IEEE Conference on Computer Vision and Pattern Recognition[C]. Hono -lulu: IEEE, 2017, 6517-6525. [11] Redmon J, Farhadi A. Yolov3: An incremental improvement [DB/ OL]. https://arxiv.org/abs/1804.02767. 2018-4. [12] Liu W, Anguelov D, Erhan D, et al. SSD: single shot multibox detector [A]. European Conference on Computer Vision [C]. Sprin -ger, 2016, 21-37. [13] Lin T Y, Doll R P, Girshick R, et al. Feature Pyramid Networks for Object Detection[A].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2017: 2117-2125. [14] Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detec -tion [A] Proceedings of the IEE EInternational Conference on Computer Vision, 2017: 2980-2988. [15] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition [A]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition [C]. Las Vegas: IEEE, 2016, 770- 778. [16] 盧漢清,劉靜.基于圖學習的自動圖像標注[J].計算機學報,2008, (9):1629-1639.