王 莉, 崔帥華, 蘇 波, 宋照肅
(1.河南理工大學(xué) 電氣工程與自動化學(xué)院,河南 焦作 454003;2.河南省煤礦裝備智能檢測與控制重點(diǎn)實(shí)驗(yàn)室,河南 焦作 454003)
交通信號燈檢測速度和精度的提高,對未來的無人駕駛、智慧交通有著十分重要的意義,一直是國內(nèi)外研究熱點(diǎn),主要檢測目標(biāo)包括機(jī)動車前行信號燈(圓形燈)、轉(zhuǎn)向指示燈(箭頭燈)和倒計時數(shù)字燈(簡稱“數(shù)字燈”)。Widyantoro D H等人[1]提出使用霍夫變換和顏色識別融合的方法檢測圓燈[1];Rajapaksha R[2]、田謹(jǐn)?shù)热薣3]使用模板匹配和顏色識別組合方法檢測箭頭燈[2,3]。隨著深度學(xué)習(xí)技術(shù)的廣泛應(yīng)用,賈瑞明[4]、Eunseop L等[5]不少學(xué)者采用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)與傳統(tǒng)方法相結(jié)合檢測交通信號燈[4~8],如將CNN和HOG提取的特征進(jìn)行特征融合,最后用支持向量機(jī)(support vector machine,SVM)進(jìn)行分類;基于純CNN目標(biāo)檢測方法具有檢測速度快的優(yōu)勢[9~12],當(dāng)前目標(biāo)檢測的CNN有單步和兩步之分,兩步網(wǎng)絡(luò)有R-CNN,SPP-Net,F(xiàn)ast RCNN,F(xiàn)aster RCNN,RFCN等,單步網(wǎng)絡(luò)有YOLO系列,SSD等,在速度上優(yōu)于兩步網(wǎng)絡(luò),而包括YOLOv3在內(nèi)的許多深度模型在淺層特征圖易丟失細(xì)節(jié)特征,對小尺度目標(biāo)的檢測能力較差。
本文基于YOLOv3進(jìn)行了改進(jìn),采用跨越式特征融合方法,來提升模型對小尺度目標(biāo)特征的語義能力,減少因中間層過度融合給淺層特征圖帶來的冗余信息;采用K-means算法聚類出適合交通信號燈尺寸的新先驗(yàn)框,并通過線性縮放機(jī)制對新先驗(yàn)框進(jìn)行離散以適應(yīng)多尺度檢測,進(jìn)而提升IoU。
本文將同時采用上述兩種改進(jìn)方法的模型稱為STL-YOLO(small traffic light-YOLO),將只采用“跨越式特征融合”的模型稱為STL-YOLO_1,將只采用“聚類與縮放獲取新先驗(yàn)框”的模型稱為STL-YOLO_2。最后本文提出一種基于YOLOv3與OCR結(jié)合的方法實(shí)現(xiàn)了對倒計時數(shù)字燈的識別。
深度模型提取的淺層特征圖雖然語義級別低,但保留了更多的細(xì)節(jié)特征,而深層特征圖雖然語義級別高,但易丟失細(xì)節(jié)特征,因此,特征融合可以增強(qiáng)淺層特征圖的特征描述能力,但同時也會因上采樣操作對融合后的特征圖增加冗余信息;而跨越式特征融合既可增強(qiáng)淺層特征圖的語義表達(dá)能力,又可減少二次特征融合帶來的冗余信息,其具體操作是:保留Darknet53下采樣輸出的13×13與26×26的特征圖融合,但在輸出前將DBL通道數(shù)由128增加到256來增強(qiáng)細(xì)節(jié)特征的提取,更重要的是,如圖1 STL-YOLO_1網(wǎng)絡(luò)架構(gòu)所示,不再將13×13與26×26融合后得到的26×26特征圖再與52×52的特征圖進(jìn)行融合,而是將13×13特征圖直接經(jīng)過5組1×1和3×3交替卷積后,進(jìn)行4倍上采樣,然后與52×52特征圖進(jìn)行特征融合,如此可進(jìn)一步增強(qiáng)52×52淺層特征圖對小尺度目標(biāo)的語義表達(dá)能力,并減少因26×26特征圖二次融合給淺層特征圖帶來的冗余信息,進(jìn)而提升模型對小目標(biāo)的檢測能力。
圖1 STL-YOLO_1網(wǎng)絡(luò)架構(gòu)
先驗(yàn)框是YOLOv3針對不同尺度網(wǎng)絡(luò)層設(shè)定的初始候選框,它對于YOLOv3后續(xù)的檢測框提供先驗(yàn)知識,IoU表示為真實(shí)框A與檢測框B的交并比如式(1),IoU越大,表示二者的相關(guān)度越高,檢測越準(zhǔn)確,所以,這里采用K-means算法對交通信號燈的Ground Truth進(jìn)行聚類以得到尺寸更加合適的新先驗(yàn)框,傳統(tǒng)的K-means聚類以歐氏距離作為分類依據(jù),但設(shè)置K值小的話,相比小邊界框,易造成大邊界框出現(xiàn)更多的誤差,這里使用如式(2)作為距離度量
(1)
distance(box,cluster)=1-IoU(box,cluster)
(2)
式中box為Ground Truth的集合,cluster為邊界框聚類的中心集合。與YOLOv3先驗(yàn)框個數(shù)保持一致,選取K=9時的聚類結(jié)果作為新先驗(yàn)框,其聚類結(jié)果如表1所示。第一列為原YOLOv3 先驗(yàn)框的寬高值,第二列為K=9時的聚類結(jié)果;由于聚類得到的9對新先驗(yàn)框尺寸過于集中,不太適應(yīng)交通信號燈多尺度變化,所以,這里使用一種線性縮放機(jī)制來離散聚類后的9對新先驗(yàn)框,以適應(yīng)多尺度交通信號燈檢測,進(jìn)而提升IoU,具體做法按式(3)~式(6)
(3)
(4)
(5)
(6)
式中w1為最小先驗(yàn)框的寬,w9為最大先驗(yàn)框的寬,h為先驗(yàn)框的高,α與β分別為最小先驗(yàn)框與最大先驗(yàn)框?qū)挼目s放系數(shù),其他7組先驗(yàn)框的寬高均按照式(5)和式(6)進(jìn)行縮放,最終對聚類得到的9對先驗(yàn)框按照不同縮放系數(shù)進(jìn)行了6組縮放,縮放結(jié)果如表1后六列所示。
表1 基于K=9聚類和不同縮放系數(shù)得到的先驗(yàn)框
本文基于Windows10系統(tǒng),GPU:RTX 2080,CPU:Intel Core i7—9700k@3.60 GHz,搭建了Python 3.7/Tensorflow 1.13.1深度實(shí)驗(yàn)平臺。
采用的交通信號燈樣本來自Bosch Small Traffic Lights Dataset(BSTLD),其中訓(xùn)練集包含5 093張圖片,涵蓋GreenLeft,RedLeft,Green,Red,Yellow,Off等共15類對象,測試集包含8 328張圖片,涉及Green,Red,Yellow和Off 4類對象,樣本詳細(xì)信息如表2所示。
表2 訓(xùn)練集和測試集詳細(xì)信息
模型性能測試主要包括以下幾個指標(biāo):AP(average precision)衡量訓(xùn)練所得模型對于BSTLD測試集中某類樣本C的識別精度,公式如式(7)所示,mAP(mean average precision)衡量模型對于測試集所有類別的平均識別精度,如式(8)所示,Recall是衡量模型準(zhǔn)確召回Ground Truth的能力,公式如式(9)所示。在測試過程中均設(shè)置IoU閾值為0.5,IoU超過0.5的目標(biāo)檢測為正例,否則為反例
(7)
(8)
(9)
模型訓(xùn)練前先進(jìn)行調(diào)參,后續(xù)所有模型訓(xùn)練的基礎(chǔ)參數(shù)均按:batch_size為5,epochs為200,val_splite為0.1進(jìn)行設(shè)置;分別對YOLOv3,STL-YOLO_1, STL-YOLO_2, STL-YOLO模型進(jìn)行單獨(dú)訓(xùn)練。
2.4.1 原YOLOv3模型的測試結(jié)果
訓(xùn)練好的YOLOv3模型對各類信號燈的PR測試曲線如圖2所示,其中Green燈的AP發(fā)展趨勢良好,Yellow燈的AP不高,主要原因是Yellow燈訓(xùn)練樣本相對偏少,Off燈在訓(xùn)練集作為負(fù)樣本參與訓(xùn)練,且測試集的交通信號燈均為正常工作狀態(tài),因此,其AP為0;但由表2知,Red燈的訓(xùn)練集并不少,而其AP值僅為0.37左右,最終發(fā)現(xiàn),如圖3中橢圓標(biāo)記樣本所示,BSTLD測試集制作過程中添加了大量與Red燈極為相似的車尾燈作為干擾因素,導(dǎo)致了模型檢測Red燈的魯棒性差,并且如圖4 YOLOv3模型的檢測結(jié)果所示,其中橢圓圈標(biāo)記的距離更遠(yuǎn)尺寸更小的很多Green燈、Red燈并沒有被模型檢測到,充分說明了YOLOv3模型對小尺度交通信號燈的檢測能力不足和檢測魯棒性差的問題。
圖2 原YOLOv3模型對各類信號燈的PR曲線
圖3 BSTLD的測試集樣本
圖4 原YOLOv3模型的檢測結(jié)果
2.4.2 STL-YOLO模型的測試結(jié)果
采用交叉實(shí)驗(yàn)分別測試STL-YOLO_1模型, STL-YOLO_2模型,STL-YOLO模型對各類信號燈檢測的mAP和AP值,其測試結(jié)果如表3所示,可見三種模型相較原YOLOv3模型在檢測精度上均有提升,其中同時采用跨越式特征融合和聚類縮放獲取新先驗(yàn)框的STL-YOLO模型表現(xiàn)最好,其PR曲線如圖5所示,相較原YOLOv3模型,其mAP提升約9 %,Green-AP提升5 %,Red-AP提升30 %,并且如圖6所示,STL-YOLO模型準(zhǔn)確檢測到了先前原YOLOv3模型未檢測到的小尺度交通信號燈,驗(yàn)證了同時采用“跨越式特征融合”和“聚類縮放獲取新先驗(yàn)框”方法的有效性。
表3 四個模型的檢測結(jié)果
圖5 STL-YOLO模型的PR曲線
圖6 STL-YOLO模型的檢測結(jié)果
當(dāng)前檢測倒計時數(shù)字燈的方法較少,并且采用傳統(tǒng)圖像處理提取倒計時數(shù)字燈中的數(shù)字易受噪聲干擾等問題,本文提出了基于YOLOv3與OCR結(jié)合的方法識別倒計時數(shù)字燈,該方法先采用YOLOv3在COCO數(shù)據(jù)集訓(xùn)練的模型檢測出倒計時數(shù)字燈ROI,然后提取數(shù)字燈ROI中的數(shù)字,最后進(jìn)行OCR識別,如此可有效濾除噪聲的影響,提高數(shù)字燈識別的準(zhǔn)確率。
首先調(diào)節(jié)YOLOv3在COCO數(shù)據(jù)集訓(xùn)練的模型,使模型只檢測交通信號燈這一類,然后交通信號燈ROI的提取方法依據(jù)檢測框的左上角坐標(biāo)和右下角坐標(biāo),如式(10)
xl=bx-bw/2,yl=by-bh/2,
xr=bx+bw/2,yr=by+bh/2
(10)
式中 (bx,by)和(bw,bh)分別為交通信號燈ROI檢測框的中心坐標(biāo)和寬高。YOLOv3模型提取到的交通信號燈ROI如圖7所示,左側(cè)的原圖為自然場景下的交通信號燈圖片,右側(cè)a,b,c為利用該模型檢測并提取的三種機(jī)動車交通信號燈ROI,可見三者的寬高尺寸屬性不同,箭頭燈與圓形燈ROI的高與寬之比(h/w)接近于3,而倒計時數(shù)字燈ROI高與寬之比接近于1(0.7 圖7 YOLOv3提取的交通信號燈ROI 提取到倒計時數(shù)字燈ROI后,對ROI-Image依次進(jìn)行圖像反轉(zhuǎn)、RGB三通道分類,RGB轉(zhuǎn)HSV、對S通道的圖像進(jìn)行二值化、形態(tài)學(xué)開操作、連通域等操作,就可以將倒計時數(shù)字燈ROI中的數(shù)字整體提取出來,最后送給OCR進(jìn)行識別,其識別效果如圖8所示。基于自制的包含100張數(shù)字燈圖像的測試集進(jìn)行測試,識別率達(dá)91 %,每張圖片時間花費(fèi)約為0.13 s。 圖8 YOLOv3+OCR的識別結(jié)果 針對深度模型對小尺度交通信號燈檢測效果差的問題,本文基于YOLOv3提出了小尺度交通信號燈檢測模型,并采用交叉實(shí)驗(yàn)分別驗(yàn)證單獨(dú)采用“跨越式特征融合方法”、單獨(dú)采用“聚類縮放獲取新先驗(yàn)框方法”以及同時采用這兩種方法可提升小尺度交通信號燈檢測精度的有效性,其中同時采用這兩種方法的STL-YOLO模型表現(xiàn)最好,相較原YOLOv3模型,其mAP提升約9 %,Green-AP提升5 %,Red-AP提升30 %。最后提出的基于YOLOv3與OCR結(jié)合識別倒計時數(shù)字燈的方法,可有效提取倒計時數(shù)字燈ROI,然后提取數(shù)字并利用OCR識別,在自制數(shù)據(jù)集的識別精度達(dá)91 %。 下一步準(zhǔn)備對Darknet—53模型進(jìn)行改進(jìn),使其輸出四種不同尺度的特征圖,使小目標(biāo)特征在更淺層特征圖中得以體現(xiàn),再融合“跨越式特征融合方法”和 “聚類縮放獲取新先驗(yàn)框方法”進(jìn)一步提升對小尺度交通信號燈的檢測精度。3.2 數(shù)字燈中的數(shù)字提取與識別
4 結(jié) 論