雷蕾,方睿,徐銘美,李?yuàn)?/p>
(成都信息工程大學(xué)計(jì)算機(jī)學(xué)院,成都610225)
近年來,科技的蓬勃發(fā)展為人類日常生活帶來越來越多的便利,隨著人工智能技術(shù)的發(fā)展,自動(dòng)駕駛技術(shù)也成為了現(xiàn)實(shí)。交通標(biāo)志識(shí)別系統(tǒng)是高級(jí)駕駛輔助系統(tǒng)的子系統(tǒng),該系統(tǒng)通過車載相機(jī)采集前方路段的交通標(biāo)志信息,在指導(dǎo)車輛正確行駛、調(diào)節(jié)交通、提高通行能力和減少交通事故等方面發(fā)揮重要的作用。
目標(biāo)檢測(cè)技術(shù)是交通標(biāo)志識(shí)別系統(tǒng)的重要技術(shù)支持,傳統(tǒng)的目標(biāo)檢測(cè)的方法主要是根據(jù)圖像顏色和形狀特征進(jìn)行匹配從而實(shí)現(xiàn)效果的,常用方法有RGB顏色空間法[1]、HSI顏色空間法[2]、霍夫變換[3]、邊緣信息檢測(cè)法[4]等,之后通過支持向量機(jī)對(duì)檢測(cè)到的特征進(jìn)行分類。但是由于算法檢測(cè)結(jié)果容易受到光照和天氣影響,尤其當(dāng)交通標(biāo)志出現(xiàn)破損、遮擋、褪色時(shí),算法檢測(cè)結(jié)果極易不穩(wěn)定,造成漏檢。
隨著人工智能技術(shù)的興起,又提出了基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法。第一種是基于候選區(qū)域的目標(biāo)檢測(cè)算法:R-CNN[5]和Faster R-CNN[6]等。該算法主要通過分別訓(xùn)練區(qū)域建議網(wǎng)絡(luò)(Region Proposal Net?work,RPN)和目標(biāo)區(qū)域檢測(cè)的網(wǎng)絡(luò)達(dá)到檢測(cè)的目的,雖然檢測(cè)和定位的效果好,但是應(yīng)用到實(shí)際之中,實(shí)時(shí)性達(dá)不到要求。隨后提出了基于回歸的目標(biāo)檢測(cè)算法,包括RetinaNet[7]、SSD[8]和YOLO[9]系列等,輸入圖片后直接在一個(gè)網(wǎng)絡(luò)中進(jìn)行回歸和分類,很大程度減少了檢測(cè)過程中的重復(fù)運(yùn)算,因此檢測(cè)速度有了顯著的改善。其中YOLO系列算法以準(zhǔn)確率高、實(shí)時(shí)性強(qiáng)的優(yōu)勢(shì)領(lǐng)先于其他基于回歸的檢測(cè)算法,但大部分網(wǎng)絡(luò)由于結(jié)構(gòu)復(fù)雜、模型權(quán)重大等問題無法滿足實(shí)際需求。
本文針對(duì)于交通標(biāo)志檢測(cè)的難點(diǎn)和需求,提出一種基于改進(jìn)YOLOv5算法的交通標(biāo)志檢測(cè)模型,從而創(chuàng)建一個(gè)兼顧應(yīng)用能力和準(zhǔn)確性的路面交通標(biāo)志分類檢測(cè)網(wǎng)絡(luò)模型。同時(shí)針對(duì)原算法中先驗(yàn)框尺寸不符合交通標(biāo)志特征問題,提出對(duì)數(shù)據(jù)集重新聚類從而獲得新的先驗(yàn)框尺寸。然后將改進(jìn)的模型應(yīng)用到TT100K數(shù)據(jù)集并與其他算法作對(duì)比分析,結(jié)果表明改進(jìn)后的算法對(duì)交通標(biāo)志檢測(cè)在平均精度均值和召回率上都有所效果提升。
YOLO系列是一種基于one-stage的端到端目標(biāo)檢測(cè)算法,在網(wǎng)絡(luò)中輸入一張圖片后能直接得到目標(biāo)的位置以及類別和概率。檢測(cè)具體過程是:首先YO?LO將輸入的圖片分割成S×S網(wǎng)格,然后每個(gè)單元格負(fù)責(zé)去檢測(cè)其中心點(diǎn)落在該網(wǎng)格內(nèi)的目標(biāo)。這些單元格會(huì)生成3個(gè)不同尺度的先驗(yàn)框,對(duì)先驗(yàn)框進(jìn)行微調(diào)后形成預(yù)測(cè)框。每個(gè)單元格會(huì)輸出多個(gè)預(yù)測(cè)框、置信度以及類別概率。最后通過非極大值抑制算法(Non Max Suppression,NMS)去除冗余的預(yù)測(cè)框后得到最終的預(yù)測(cè)結(jié)果[10],算法流程如圖1所示。
圖1 YOLO算法流程
YOLOv5算法按照其網(wǎng)絡(luò)深度從小到大分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。較前幾代YOLO算法最明顯的特征就是模型小,適合部署在移動(dòng)端和嵌入式設(shè)備當(dāng)中,為交通標(biāo)志檢測(cè)技術(shù)研究提供了便利。YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)由4個(gè)部分組成,分別是:
●輸入端:模型將對(duì)輸入的數(shù)據(jù)集采用圖像增強(qiáng),通過選取4張圖像進(jìn)行隨機(jī)裁剪、隨機(jī)拼接、隨機(jī)排布來達(dá)到豐富數(shù)據(jù)集的效果。由于拼接操作產(chǎn)生了很多小目標(biāo)圖像,所以增加了網(wǎng)絡(luò)對(duì)于小目標(biāo)檢測(cè)的魯棒性。并且在先驗(yàn)框設(shè)計(jì)當(dāng)中采用了自適應(yīng)計(jì)算,從而根據(jù)目標(biāo)特征在預(yù)先設(shè)定好的先驗(yàn)框上進(jìn)行微調(diào)生成最佳預(yù)測(cè)框。
●主干網(wǎng)絡(luò):一共包含6層網(wǎng)絡(luò)結(jié)構(gòu),用于提取圖像特征。模型設(shè)計(jì)了兩種CSP結(jié)構(gòu)用于增加網(wǎng)絡(luò)的特征提取能力,分別應(yīng)用于主干網(wǎng)絡(luò)和檢測(cè)模塊中。并且在進(jìn)入主干網(wǎng)絡(luò)之前中添加了切片結(jié)構(gòu),保證在下采樣的過程中使得特征提取能力更加充分,從而保留更加完整的下采樣信息。
●檢測(cè)模塊:YOLOv5應(yīng)用了多尺度特征融合策略,通過采用空間金字塔池化網(wǎng)絡(luò)(Spatial Pyramid Pooling Network,SPPNet)和路徑聚合網(wǎng)絡(luò)(PANet)將淺層的細(xì)節(jié)信息和深層的語義信息融合在一起,并且借鑒跨階段局部網(wǎng)絡(luò)設(shè)計(jì)的CSP2結(jié)構(gòu),加強(qiáng)網(wǎng)絡(luò)提取特征的能力。
●預(yù)測(cè)模塊:模型針對(duì)3種尺度的特征圖采用不同寬高的先驗(yàn)框進(jìn)行預(yù)測(cè)和分類,根據(jù)預(yù)測(cè)結(jié)果和實(shí)際結(jié)果生成損失函數(shù)反向傳遞給網(wǎng)絡(luò)并且不斷優(yōu)化。損失函數(shù)主要由3部分組成:預(yù)測(cè)框損失函數(shù)主要由CIoU-Loss來表示,置信度和分類損失函數(shù)是由二進(jìn)制交叉熵來表示的。用非極大值抑制算法去除冗余的預(yù)測(cè)框后得到最終結(jié)果。整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
大部分交通標(biāo)志圖像的面積較小,僅占整張圖片的1%-2%,通過聚類算法找到適合目標(biāo)特征的先驗(yàn)框尺寸,在此基礎(chǔ)上進(jìn)行微調(diào)形成預(yù)測(cè)框,能夠有效提高模型檢測(cè)精度,其中預(yù)測(cè)框與先驗(yàn)框的對(duì)應(yīng)關(guān)系如圖3所示。
圖3先驗(yàn)框和預(yù)測(cè)框?qū)?yīng)關(guān)系
預(yù)測(cè)框與先驗(yàn)框的各參數(shù)對(duì)應(yīng)關(guān)系如公式(1)所示,其中cx和cy分別代表當(dāng)前格子中心點(diǎn)的偏移量,pw和ph分別代表先驗(yàn)框的寬和高,bx、by、bw和bh分別代表生成的預(yù)測(cè)框的中心點(diǎn)坐標(biāo)和長寬。
原YOLOv5算法中先驗(yàn)框尺寸是采用K-means算法在COCO數(shù)據(jù)集上進(jìn)行聚類得到的[11]。K-means算法的主要思想是:首先隨機(jī)選擇數(shù)據(jù)集中k個(gè)點(diǎn)作為聚類中心,計(jì)算其他樣本到該聚類中心的距離之后劃分到距離最小的類當(dāng)中,最后針對(duì)于每一個(gè)類重新計(jì)算該類的質(zhì)心作為新的聚類中心,重復(fù)上述過程一直到聚類中心的位置不變。但由于K-means算法中對(duì)初始聚類中心點(diǎn)是隨機(jī)劃分的,這個(gè)聚類中心的選擇對(duì)最終聚類結(jié)果有一定影響,如果初始聚類中心的距離較近,會(huì)影響聚類結(jié)果的準(zhǔn)確度。
針對(duì)于K-means算法存在的問題,本文提出采用K-means++算法來進(jìn)行聚類,從而得到更適合交通標(biāo)志的先驗(yàn)框。K-means++在選擇初始聚類中心的主要思想是:初始的聚類中心之間的相互距離要盡可能遠(yuǎn)。首先隨機(jī)確認(rèn)第一個(gè)聚類中心點(diǎn),并計(jì)算剩下所有的樣本點(diǎn)到該聚類中心的距離D(x),然后根據(jù)公式(2)計(jì)算該點(diǎn)成為下一個(gè)聚類中心的概率P(x),最后使用輪盤法選出數(shù)據(jù)點(diǎn)作為新的聚類中心。重復(fù)以上步驟一直到第k個(gè)聚類中心被選出來[12]。通過K-means++算法聚類出的結(jié)果能更好地改善誤差,從而選取更合適的先驗(yàn)框。
通過采用K-means++算法對(duì)TT100K數(shù)據(jù)集進(jìn)行迭代聚類之后得到新的9種尺度的先驗(yàn)框,和原先驗(yàn)框尺寸對(duì)比如表1所示??梢钥闯鲈闰?yàn)框由于采集于COCO數(shù)據(jù)集,目標(biāo)的類別廣且數(shù)量多,所以大、中、小3個(gè)尺度的先驗(yàn)框尺寸差異大。而新先驗(yàn)框是依據(jù)交通標(biāo)志特征聚類而成,總體尺寸偏小且差異不大,所以更能接近真實(shí)框的尺寸,從而提升模型檢測(cè)的準(zhǔn)確率。
表1聚類前后先驗(yàn)框尺寸對(duì)比
本文實(shí)驗(yàn)選取的是由清華大學(xué)與騰訊實(shí)驗(yàn)室聯(lián)合發(fā)布的基于真實(shí)場(chǎng)景的交通標(biāo)志公開數(shù)據(jù)集TT100K(Tsinghua-Tencent 100k),包含30000個(gè)交通標(biāo)志實(shí)例的約9000張圖像。這些圖像的采集在不同的條件的自然場(chǎng)景中且數(shù)據(jù)多樣性比較廣。TT100k數(shù)據(jù)集幾乎涵蓋了日常生活中常見種類的交通標(biāo)志,符合實(shí)驗(yàn)要求,交通標(biāo)志樣例如圖4所示。
圖4交通標(biāo)志樣例
由于TT100K中每張圖像的分辨率高達(dá)2048×2048,背景信息復(fù)雜,所以存在干擾主體目標(biāo)檢測(cè)的問題,此外,數(shù)據(jù)集中大部分交通標(biāo)志尺寸相對(duì)較小且各類樣本數(shù)量不均衡,對(duì)檢測(cè)造成了一定的困難。本文篩選出實(shí)例數(shù)大于50的45個(gè)類別共9170張圖片作為基礎(chǔ)數(shù)據(jù)后,按照9:1劃分成訓(xùn)練集和測(cè)試集,訓(xùn)練集各類樣本數(shù)量統(tǒng)計(jì)如圖5所示。
圖5訓(xùn)練集各類樣本數(shù)量分布
本文進(jìn)行了多組的對(duì)照實(shí)驗(yàn)來驗(yàn)證算法的有效性和高效性,同時(shí)讓各組網(wǎng)絡(luò)模型的參數(shù)設(shè)置統(tǒng)一化,保證實(shí)驗(yàn)的客觀性,。實(shí)驗(yàn)基于Windows平臺(tái)通過Python語言編程實(shí)現(xiàn),應(yīng)用深度學(xué)習(xí)框架PyTorch 1.7搭建網(wǎng)絡(luò)模型。實(shí)驗(yàn)樣本訓(xùn)練迭代次數(shù)設(shè)置為300,批次大小統(tǒng)一設(shè)置為4,其中圖像輸入端的分辨率統(tǒng)一設(shè)置為640×640,初始的學(xué)習(xí)率設(shè)置為0.01,學(xué)習(xí)率衰減采用余弦退火方式,動(dòng)量設(shè)置為0.937,權(quán)重衰減系數(shù)為0.0005。
為了驗(yàn)證本實(shí)驗(yàn)在檢測(cè)交通標(biāo)志上的效果,本文選取相同數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)進(jìn)行對(duì)比實(shí)驗(yàn)。并選取平均精度均值(mean average precision,mAP)、召回率(Re?call)、檢測(cè)速率和模型權(quán)重大小作為模型性能的評(píng)價(jià)標(biāo)準(zhǔn),以衡量模型的目標(biāo)檢測(cè)能力和實(shí)際應(yīng)用能力。首先需要根據(jù)真實(shí)標(biāo)簽將檢測(cè)結(jié)果劃分為真正例(true posi?tive,TP)、真反例(true negative,TN)、假正例(false posi?tive,F(xiàn)P)和假反例(false negative,F(xiàn)N)4類[13]。
Precision又稱為查準(zhǔn)率,通過計(jì)算檢測(cè)結(jié)果中預(yù)測(cè)正確的樣本數(shù)和所有預(yù)測(cè)樣本數(shù)的比例得到,即正確檢測(cè)到的樣本數(shù)占總檢出樣本的比例,能夠反映模型對(duì)目標(biāo)的分類能力,Precision的計(jì)算式如(3)所示。
Recall又稱為召回率,通過計(jì)算檢測(cè)結(jié)果中預(yù)測(cè)正確的樣本數(shù)和所有真實(shí)樣本數(shù)的比例得到,即正確檢測(cè)到的樣本數(shù)占真實(shí)樣本數(shù)的比例,能夠反映模型對(duì)目標(biāo)的檢測(cè)能力,其計(jì)算式如(4)所示:
AP代表平均精度(average precision,AP)。如果用坐標(biāo)系來表示,AP是將召回率和準(zhǔn)確率分別當(dāng)作坐標(biāo)系的橫縱坐標(biāo)繪制而成的一條函數(shù)曲線,即PR曲線。PR曲線之下的面積則為AP值。mAP作為目標(biāo)檢測(cè)網(wǎng)絡(luò)中常用的衡量檢測(cè)精度的評(píng)價(jià)指標(biāo),它是對(duì)多個(gè)類別求平均AP值,能反映出網(wǎng)絡(luò)檢測(cè)效果的好壞。其計(jì)算公式如(5)所示,其中QR指類別個(gè)數(shù):
FPS代表每秒傳輸幀數(shù),能夠反映模型檢測(cè)速度的快慢。FPS值越髙表示網(wǎng)絡(luò)的實(shí)時(shí)性越好,即深度學(xué)習(xí)網(wǎng)絡(luò)檢測(cè)越流暢。所以本文用傳幀數(shù)來衡量網(wǎng)絡(luò)運(yùn)行的流暢性從而判斷是否滿足實(shí)時(shí)性需求。
圖6和圖7分別是改進(jìn)后算法和原YOLOv5的召回率和平均精度均值曲線圖。如圖6所示,網(wǎng)絡(luò)訓(xùn)練初期,兩個(gè)模型都收斂的很快。但是隨著迭代次數(shù)的增加,更新了先驗(yàn)框尺寸的模型由于更符合交通標(biāo)志的尺寸與比例特征,所以收斂得更快,在訓(xùn)練大約50個(gè)批次后,召回率達(dá)到0.9并且趨于穩(wěn)定。而原算法在訓(xùn)練100個(gè)批次后才趨于穩(wěn)定。如圖7所示,兩個(gè)模型的精度在訓(xùn)練批次到達(dá)50至80左右波動(dòng)較大,之后趨于平穩(wěn)。改進(jìn)后模型的平均精度均值一直高于原YOLOv5算法,在訓(xùn)練300個(gè)批次之后,達(dá)到了0.92。說明說明本文所提算法在交通標(biāo)志檢測(cè)任務(wù)中具有更好的魯棒性。
圖6召回率曲線對(duì)比
圖7 mAP曲線對(duì)比
為了驗(yàn)證實(shí)驗(yàn)的有效性,本研究將改進(jìn)后的模型和其他文獻(xiàn)中提出的模型相作對(duì)比,結(jié)果如表2所示。
表2檢測(cè)算法性能對(duì)比
由表2可知,本文所提出的交通標(biāo)志檢測(cè)方法相較于原YOLOv5算法效果提升明顯,分別在平均精度均值和召回率上有1.6%和0.6%的提升,每秒檢測(cè)幀數(shù)能達(dá)到21.3張,從而保證了算法的實(shí)時(shí)性。整個(gè)模型大小約為14.3 MB,可以部署在移動(dòng)端或者嵌入式設(shè)備。YOLOv3算法同樣采用了3個(gè)尺度進(jìn)行檢測(cè),從而在識(shí)別精度方面表現(xiàn)力也比較好,但是由于模型參數(shù)量過大,該算法的應(yīng)用能力較弱。文獻(xiàn)[14]中由于選用輕量型的MobileNet代替原特征提取網(wǎng)絡(luò),雖然模型參數(shù)量大大減少但也使模型缺失了一定特征提取能力,從而造成模型檢測(cè)精度不夠。文獻(xiàn)[15]引入了空間金字塔池化網(wǎng)絡(luò),提升了模型檢測(cè)速率、檢測(cè)精度,而平均精度均值、檢測(cè)速度和本文提出方法差異不大,但是在召回率方面,本文方法大有提升。由此可見本文所提出的方法,對(duì)交通標(biāo)志檢測(cè)效果有較大改善。
為了證明本文方法的有效性,并選取了兩組有代表性的圖像進(jìn)行效果展示,分別是一張含小目標(biāo)和扭曲目標(biāo)圖像和一張逆光環(huán)境圖像來進(jìn)行實(shí)驗(yàn)。通過檢測(cè)結(jié)果圖我們可以看出,本文提出的方法能夠?qū)Ω黝惌h(huán)境交通標(biāo)志有很好的檢測(cè)效果。圖像中不同顏色的框代表模型檢測(cè)出的目標(biāo),上方的字母代表該方框檢測(cè)出來的交通標(biāo)志類別,旁邊的數(shù)字代表該目標(biāo)類別的置信度大小,該值越接近于1代表所檢測(cè)出來的目標(biāo)是該類型的可能性越大。檢測(cè)效果如圖8所示。
圖8所提算法檢測(cè)效果示例
在示例圖(a)中可以看出,雖然所有交通標(biāo)志尺寸較小而且形狀扭曲,但是改進(jìn)后的模型能夠有效地檢測(cè)出了所有類型的交通標(biāo)志,說明該模型對(duì)于小目標(biāo)的檢測(cè)能力不錯(cuò)。在示例圖(b)中可以看出,由于圖像拍攝于逆光環(huán)境,所以交通標(biāo)志存在主體顏色暗且低對(duì)比度的情況。但是從檢測(cè)結(jié)果來看,所有交通標(biāo)志都被正確識(shí)別出,說明改進(jìn)后的模型具有一定泛化能力。
針對(duì)于傳統(tǒng)深度學(xué)習(xí)交通標(biāo)志算法模型權(quán)重大應(yīng)用能力差等問題,本文采用輕量級(jí)模型YOLOv5進(jìn)行交通標(biāo)志檢測(cè)并對(duì)此算法進(jìn)行優(yōu)化改進(jìn)。通過采用新的聚類算法K-means++對(duì)數(shù)據(jù)集重新聚類,得到更適合檢測(cè)交通標(biāo)志圖像的先驗(yàn)框尺寸,從而提高檢測(cè)的精確度。然后將改進(jìn)的YOLOv5算法應(yīng)用到TT100K數(shù)據(jù)集當(dāng)中進(jìn)行交通標(biāo)志檢測(cè),并和其他算法進(jìn)行比較。通過采用不同的指標(biāo)來進(jìn)行對(duì)比和分析來評(píng)估改進(jìn)后的算法性能,對(duì)比結(jié)果發(fā)現(xiàn),改進(jìn)后的算法能夠在保證實(shí)時(shí)性的情況下有效提高檢測(cè)速率,本實(shí)驗(yàn)算法平均精度均值達(dá)到84.9%,召回率能達(dá)到89%,權(quán)重文件只有14.3 MB。
本文提出的算法雖然在交通標(biāo)志檢測(cè)上取得了比較好的結(jié)果,也因模型權(quán)重小能部署在嵌入式設(shè)備。但是在實(shí)際交通場(chǎng)景當(dāng)中,算法的檢測(cè)內(nèi)容應(yīng)該包含多類目標(biāo)。因此如何保證在高精度低權(quán)重的情況下檢測(cè)出多類目標(biāo)將是今后的研究主要內(nèi)容。