郭繼峰,孫文博,龐志奇,費禹瀟,白淼源
(東北林業(yè)大學 信息與計算機工程學院,哈爾濱 150000)
標志識別作為計算機視覺的實際應用之一,已經(jīng)被廣泛應用到交通安全領(lǐng)域,尤其是在無人駕駛的安全性保障方面至關(guān)重要.在面臨天氣情況、光線強弱和其他環(huán)境變化等因素影響時,很多識別方法的效果并不理想,使目前交通標志識別的應用研究仍具有很大的挑戰(zhàn)性.實現(xiàn)精確快速的交通標志識別是無人駕駛做出下一步判斷的基礎(chǔ),設(shè)計出具有更高準確率和更快速度的交通標志識別方法對無人駕駛系統(tǒng)具有重大意義[1].
在以往的傳統(tǒng)圖像處理方法中,Soetedjo等人[2]利用RGB顏色模型根據(jù)顏色差異進行交通標志分類,Dalal等人[3]提出了使用方向梯度直方圖(HOG)的形狀檢測方法.但僅采用顏色或者形狀作為交通標志識別的依據(jù),經(jīng)常會受到光線和環(huán)境的影響而做出誤判,并且在交通標志識別過程中檢測速度過慢,準確率低.
在2014年,Girshick等人[4]率先提出了Regions with CNN(R-CNN)算法,R-CNN作為早期的深度學習算法,實現(xiàn)了對物體的定位和檢測[5];隨后為了減少候選區(qū)域的重復運算,Girshickd在R-CNN的基礎(chǔ)上通過調(diào)整網(wǎng)絡(luò)的輸入提出了Fast R-CNN算法[6],一定程度上縮短了R-CNN的推斷時間;Ren等在候選區(qū)域提取部分利用區(qū)域推薦網(wǎng)絡(luò)代替選擇性搜索,提出Faster R-CNN算法[7]實現(xiàn)了端對端網(wǎng)絡(luò)的設(shè)計;由Cai等提出的Cascade R-CNN則通過級聯(lián)結(jié)構(gòu)設(shè)置不斷增加的交并比閾值對不同的檢測結(jié)果進行調(diào)整進而提升算法的魯棒性[8];Pang等根據(jù)檢測過程存在的正負樣本不均衡、回歸與分類損失函數(shù)不均衡等問題,提出了Libra R-CNN使算法進行均衡學習[9].深度學習方法為交通標志識別提供了更好的工具,相較于顏色模型分析方法等傳統(tǒng)方法能獲得較好的識別效果,交通標志識別率更高.雖然二階段檢測網(wǎng)絡(luò)能夠得到較好的檢測結(jié)果,但由于二階段檢測網(wǎng)絡(luò)依靠候選區(qū)域提取網(wǎng)絡(luò)選取興趣區(qū)域,模型參數(shù)量與計算量過大,推理時間較長,不滿足交通標志識別的實時性要求.
針對上述方法存在的問題,本文提出一種改進YOLOv4-tiny的交通標志識別算法MYOLOv4(Miniature YOLOv4),為了減少模型參數(shù)和計算量,在主干網(wǎng)絡(luò)的基礎(chǔ)上引入深度可分離卷積,在多尺度特征融合部分將兩層特征信息融合變化為三層特征融合,采用BiFPN代替特征金字塔網(wǎng)絡(luò)(FPN),更好地檢測不同大小的目標,提升算法檢測能力,在損失函數(shù)部分引入Focal損失函數(shù)解決數(shù)據(jù)集中正負樣本數(shù)量不均衡問題,讓模型更專注于困難樣本的檢測.實驗結(jié)果表明,MYOLOv4在減少模型參數(shù)的同時,交通標志識別的速度和精度均得到顯著的提升.
針對二階段網(wǎng)絡(luò)推理速度較慢的問題,2016年Liu等人[10]提出了SSD算法,不同于Faster R-CNN進行候選區(qū)域提取,SSD在每個像素點設(shè)置先驗框,利用感受野小的特征圖檢測小物體,感受野大的特征圖檢測大物體最后將檢測結(jié)果綜合得到最終預測結(jié)果.隨后Redmon等提出了You Only Look Once(YOLOv1)算法[11]將目標檢測視作回歸問題,YOLOv1利用預設(shè)好的多個網(wǎng)格單元進行分類和回歸.Redmon又在YOLOv1基礎(chǔ)上引入了批量歸一化、維度聚類并利用K均值算法計算網(wǎng)格單元大小和比例等方法,使YOLOv2的速度和精度得到了一定的提升[12].YOLOv3算法將YOLOv2的主干網(wǎng)絡(luò)替換為Darknet-53,增加了網(wǎng)絡(luò)的層數(shù),在每秒傳輸幀數(shù)減少一半的同時平均精度均值提升了3.1%[13].
Bochkovskiy等將跨階段部分連接(CSP)、路徑聚合網(wǎng)絡(luò)(PAN)、Mish激活函數(shù)、馬賽克數(shù)據(jù)擴增等方法加入到Y(jié)OLOv3中推出YOLOv4算法[14],將YOLO系列算法的精度和速度推向一個新的高度.其中YOLOv4-tiny作為YOLOv4的輕量級網(wǎng)絡(luò)模型,取消特征金字塔池化,并將PAN結(jié)構(gòu)替換為FPN結(jié)構(gòu),僅選取兩個尺度特征層進行分類與回歸.一階段網(wǎng)絡(luò)較二階段網(wǎng)絡(luò)相比,模型參數(shù)和大小較少,算法推理速度更快,雖然檢測精度有所下降但能夠在較短推理時間下得到較好的檢測精度,采用一階段網(wǎng)絡(luò)進行交通標志識別其檢測速度符合交通標志識別的實時性.
深度可分離卷積由逐通道卷積和逐點卷積組成.其中逐通道卷積的每個通道只被一個卷積核卷積,一個卷積核只負責特征圖中的一個通道,提取單個通道內(nèi)部的特征,逐通道卷積后得到的特征圖通道與原特征圖通道保持一致[15],再進行逐點卷積.逐點卷積的每個卷積核大小為C×1×1,將不同通道間的特征信息融合,最終獲得新的特征圖.
深度可分離卷積得到的特征圖與標準卷積的特征圖維度大小相同,但是深度可分離卷積的計算量與參數(shù)量更少,在保持算法性能的同時兼顧了控制模型的參數(shù)量與計算量,提升了算法的效率.
在多尺度特征融合問題上,Lin等提出了FPN[16]來檢測不同大小的物體,將大尺度特征圖與小尺度特征圖下采樣結(jié)果進行自上到下合并,同時獲得多個尺度的回歸和預測結(jié)果;Tan等提出了BiFPN[17]的多尺度特征融合方法,在傳統(tǒng)的FPN中加入了跳躍連接,還將FPN僅進行自上到下特征融合替換為自上到下和自下到上的特征融合,使網(wǎng)絡(luò)在不增加計算額外參數(shù)的同時融合更多相同尺度的特征,不同尺度特征能夠更充分融合,對于只有一個輸入的結(jié)點將減少此結(jié)點對特征網(wǎng)絡(luò)的貢獻.BiFPN有效地融合不同尺度的特征并增加了同一尺度特征的信息融合[18],其結(jié)構(gòu)設(shè)計如圖1所示.
圖1 BiFPN結(jié)構(gòu)設(shè)計Fig.1 BiFPN structure design
MYOLOv4采用引入深度可分離卷積的CSPDarknet53-tiny作為特征提取網(wǎng)絡(luò),將獲得的3個不同尺度特征圖利用BiFPN進行多尺度特征融合,對不同尺度分別進行回歸和預測,檢測出不同大小的目標.損失函數(shù)部分選用Complete IoU(CIoU)損失函數(shù)作為邊界框回歸損失,Focal損失函數(shù)作為置信度損失和分類損失.
MYOLOv4的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
圖2 MYOLOv4網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 MYOLOv4 network structure
由圖2可知MYOLOv4的特征提取網(wǎng)絡(luò)MCSPDarknet53-tiny是采用引入深度可分離卷積的CSPDarknet53-tiny,該網(wǎng)絡(luò)組成包括3個MCSP殘差塊和兩個深度可分離卷積塊,MCSP殘差結(jié)構(gòu)塊既加深了網(wǎng)絡(luò)層數(shù)又解決梯度消失和梯度爆炸問題,增強卷積神經(jīng)網(wǎng)絡(luò)的學習能力[19],深度可分離卷積替換標準卷積讓模型保持較高精度同時有效減少模型參數(shù),通過特征提取網(wǎng)絡(luò)輸出的最終特征圖F5長寬大小為輸入圖像的1/32,MCSP殘差結(jié)構(gòu)塊如圖3所示.
圖3 MCSP殘差塊Fig.3 MCSP residual block
YOLOv4-tiny在多尺度特征融合部分只選取了F4和F5兩個不同尺度特征輸入到FPN結(jié)構(gòu)中,對不同大小目標不敏感,檢測精度偏低,不同尺度的特征信息融合較少,MYOLOv4將特征圖F3,F4,F5輸入BiFPN結(jié)構(gòu)中,進行自上而下與自下而上的多尺度特征融合,并在同尺度特征層引入跳躍連接融合更多的相同尺度特征.YOLOv4 Head將對3個多尺度特征融合后的特征圖進行邊界框回歸和分類,對不同大小的目標更敏感,提升網(wǎng)絡(luò)檢測的能力并降低漏檢率.在網(wǎng)絡(luò)預測階段,首先將待檢測圖片輸入到CSPDarknet53-tiny特征提取網(wǎng)絡(luò),然后將F3,F4,F5分別輸入到BiPFN結(jié)構(gòu)進行深層特征和淺層特征融合和相同尺度特征信息融合,最后對3個不同尺度特征圖進行預測和回歸.
MYOLOv4使用K-means算法聚類生成先驗框,獲得的先驗框讓預測框與真實目標的距離更擬合,交并比更大,降低網(wǎng)絡(luò)模型訓練的難度,提升預測框回歸的速度與精度.
YOLOv4的損失函數(shù)由邊界框回歸損失、置信度和分類損失組成,MYOLOv4采用CIoU損失函數(shù)作為邊界框回歸損失.在以往的邊界框回歸損失評估過程中,Girshick使用平滑L1損失單獨對4個邊界坐標進行回歸,最后根據(jù)4個邊界單獨生成調(diào)整后的新的邊界框.但是平滑L1損失將4個邊界點看做4個獨立整體,沒有建立它們之間的關(guān)聯(lián),還沒有將IoU數(shù)值用作回歸計算,存在調(diào)整后邊界框過大或過小,回歸效果較差的問題.IoU是兩個邊界框相交區(qū)域面積與相并區(qū)域面積的比值,作為邊界框回歸準確程度的衡量指標[20],其計算如式(1)所示,其中A與B分別代表預測框面積.
(1)
由Zheng等人[21]提出的DIoU損失函數(shù)將IoU、預測框中心點距離等因素考慮在內(nèi),DIoU損失函數(shù)的定義如式(2)所示.
(2)
其中:b、bgt分別表示預測框中心點和真實目標框中心,ρ2(b,bgt)表示兩邊框中心點的歐氏距離,C2表示預測框與真實目標框組成最小矩形區(qū)域的對角線長度.CIoU損失函數(shù)將預測框的長寬值考慮在內(nèi),在DIoU損失中加入懲罰項αν,函數(shù)定義如式(3)所示:
(3)
為了獲得更加準確分類的精度,MYOLOv4將置信度和分類的二分交叉熵損失函數(shù)替換為Focal損失函數(shù).Focal損失在交叉熵損失基礎(chǔ)上改進,是針對分類過程中存在正負類樣本分布不均衡問題提出的.Focal損失減少簡單背景樣本所占權(quán)值讓模型專注于前景類物體的檢測,避免模型預測時傾向于數(shù)量較大的背景類.Focal損失如式(4)所示:
FL(pt)=-αt(1-pt)γlog(pt)
(4)
MYOLOv4損失函數(shù)選取CIoU損失作為邊界框回歸損失,Focal損失作為預測置信度和類別損失,加快預測框回歸速度,減少了正負樣本不均衡對模型的干擾,提升檢測的準確率.
本文實驗環(huán)境為Ubuntu16.04系統(tǒng),顯卡為兩塊NVIDIA GeForce RTX2080Ti,顯存為22GB.
本文實驗數(shù)據(jù)集采用Tsinghua-Tencent 100K Tutorial(TT100K)數(shù)據(jù)集[23],TT100K數(shù)據(jù)集是由清華大學與騰訊公司制作,將街景地圖圖片進行截取和人工標注的交通標志數(shù)據(jù)集,共包含221類交通標志,訓練集中包含6107張圖片,驗證集中包含3073張圖片,選取了不同光照強度和天氣條件下的街景圖片.TT100K中圖像分辨率為2024×2024,在本次實驗中將輸入圖像裁剪為864×864,最后得到3個不同尺度特征圖像素大小分別為108×108,54×54,27×27.針對TT100K數(shù)據(jù)集中存在不同類別樣本數(shù)目不平衡問題產(chǎn)生的長尾效應,本文對數(shù)目較少的類別進行數(shù)據(jù)擴充,使用添加隨機高斯噪聲、水平翻轉(zhuǎn)、馬賽克數(shù)據(jù)增強和CutMix數(shù)據(jù)增強等方法擴充數(shù)目較少的類別,CutMix方法將數(shù)據(jù)集中某一張圖像的部分區(qū)域剪切掉,并用數(shù)據(jù)集中另一張圖像的該區(qū)域去填充原圖像中被剪切的區(qū)域.馬賽克數(shù)據(jù)擴增將數(shù)據(jù)集中4張圖像進行隨機翻轉(zhuǎn)、色域變換、縮放等處理后,對處理后的4張圖片依次放在4個角落,得到與原圖像大小相同的4張圖像混合的新圖像的數(shù)據(jù)增強方法,使用馬賽克數(shù)據(jù)增強后得到的圖像如圖4所示.最終得到的數(shù)據(jù)集共有125526張圖片.平均每個類別有568張圖片.
圖4 馬賽克數(shù)據(jù)增強Fig.4 Mosaic data augmentation
MYOLOv4在其特征提取網(wǎng)絡(luò)CSPDarknet53- tiny引入深度可分離卷積后,與原特征提取網(wǎng)絡(luò)相比,網(wǎng)絡(luò)參數(shù)和模型大小明顯減少,其對比效果如表1所示.
表1 引入深度可分離卷積前后對比Table 1 Comparison of introducing depthwise separable convolution
由表1可得,引入深度可分離卷積后不僅參數(shù)量減少為原來的58%,在mAP方面也得到了0.3%的提升.深度可分離卷積有效地減少了原特征提取網(wǎng)絡(luò)的參數(shù)冗余.
本文還在多尺度特征融合部分,在采用相同特征提取網(wǎng)絡(luò)MCSPDarknet53-tiny和參數(shù)設(shè)置的情況下對FPN,PANet,NAS FPN,Fully-Connected FPN(FC FPN),BiFPN等多尺度特征融合網(wǎng)絡(luò)進行比較,結(jié)果如表2所示.
表2 不同多尺度特征融合網(wǎng)絡(luò)對比Table 2 Comparison of multi-scale feature fusion networks
從表2可知傳統(tǒng)FPN結(jié)構(gòu)只進行單向的特征融合,預測精度較低;而PANet結(jié)構(gòu)執(zhí)行自上而下和自下而上的雙向特征融合,并引入額外的參數(shù);Full-Connected FPN 采用全連接形式增加大量的參數(shù),卻沒有得到較大的精度提升;BiFPN結(jié)構(gòu)采用與PANet結(jié)構(gòu)類似的雙向特征融合,將不同尺度特征信息按照一定權(quán)值進行累加,在多個尺度特征融合方法中取得最高的精度同時具有較小的參數(shù)數(shù)量.
表3是MYOLOv4采用不同邊界框回歸損失函數(shù)情況下的精度對比.其中IoU損失對比平滑L1損失能更好建立4個邊界點之間的聯(lián)系,GIoU損失更好地反映出邊界框的重合程度,CIoU將邊界框中心點對角線長度、邊界框長寬和所圍最小封閉矩形對角線長度等因素均考慮在內(nèi),獲得了最高的精度提升.
表3 不同回歸損失函數(shù)對比Table 3 Comparison of different regression loss functions
本文將MYOLOv4模型在實驗數(shù)據(jù)集上進行40000次迭代訓練,其損失值變化如圖5所示.
圖5 MYOLOv4損失值變化曲線Fig.5 Loss curve of MYOLOv4
由圖5可知,損失值伴隨模型迭代次數(shù)的增加而逐漸衰減,在前6000次迭代過程中,損失數(shù)值衰減速度明顯.在迭代次數(shù)為10000次以后,損失曲線存在少許震蕩,損失值整體依舊呈現(xiàn)下降趨勢且收斂.
為了測試MYOLOv4算法的性能,本文將MYOLOv4與SSD,RetinaNet,YOLOv4 tiny,Faster R-CNN等算法分別進行對比,不同算法的性能對比如表4所示.
表4 不同算法實驗對比Table 4 Comparison of different algorithms
從表4可以看出,雖然MYOLOv4與Faster R-CNN的mAP接近,但在模型大小和檢測速度方面擁有顯著的優(yōu)勢,較SSD,RetinaNet等一階段網(wǎng)絡(luò)相比,檢測速度和精度均有一定提升.在檢測精度和速度上,MYOLOv4完全超過YOLOv4-tiny,能夠較好地滿足交通標志識別的速率要求.圖6為MYOLOv4在TT100K數(shù)據(jù)集中的檢測效果圖.
圖6 MYOLOv4檢測效果Fig.6 MYOLOv4 detection results
本文提出了一種改進YOLOv4-tiny的交通標志識別方法MYOLOv4,旨在解決現(xiàn)存交通標志識別方法中存在的模型參數(shù)過大,識別速度偏慢且識別精度偏低的問題.MYOLOv4使用深度可分離卷積代替標準卷積方法,有效地減少了模型中參數(shù)的冗余,在多尺度特征融合部分采用BiFPN結(jié)構(gòu),加強深層次與淺層次特征信息融合并獲得更多同層次特征信息,將Focal損失作為置信度和分類損失,提升模型對困難樣本的檢測能力和精度.通過實驗結(jié)果驗證與分析可知,MYOLOv4的模型僅為YOLOv4-tiny的58%,mAP提升了3.9個百分點,FPS提升了10,該方法在模型大小,檢測精度和檢測速度上的表現(xiàn)優(yōu)于YOLOv4-tiny,能夠符合交通標志檢測的速率要求.同時本文中MYOLOv4算法在標志識別的精度較二階段網(wǎng)絡(luò)相比仍需進一步改進,在保證速度提升的同時達到預期的精度要求仍是未來有待研究的問題.