雷蕾,方睿,徐銘美,李姍
(成都信息工程大學計算機學院,成都610225)
近年來,科技的蓬勃發展為人類日常生活帶來越來越多的便利,隨著人工智能技術的發展,自動駕駛技術也成為了現實。交通標志識別系統是高級駕駛輔助系統的子系統,該系統通過車載相機采集前方路段的交通標志信息,在指導車輛正確行駛、調節交通、提高通行能力和減少交通事故等方面發揮重要的作用。
目標檢測技術是交通標志識別系統的重要技術支持,傳統的目標檢測的方法主要是根據圖像顏色和形狀特征進行匹配從而實現效果的,常用方法有RGB顏色空間法[1]、HSI顏色空間法[2]、霍夫變換[3]、邊緣信息檢測法[4]等,之后通過支持向量機對檢測到的特征進行分類。但是由于算法檢測結果容易受到光照和天氣影響,尤其當交通標志出現破損、遮擋、褪色時,算法檢測結果極易不穩定,造成漏檢。
隨著人工智能技術的興起,又提出了基于深度學習的目標檢測方法。第一種是基于候選區域的目標檢測算法:R-CNN[5]和Faster R-CNN[6]等。該算法主要通過分別訓練區域建議網絡(Region Proposal Net?work,RPN)和目標區域檢測的網絡達到檢測的目的,雖然檢測和定位的效果好,但是應用到實際之中,實時性達不到要求。隨后提出了基于回歸的目標檢測算法,包括RetinaNet[7]、SSD[8]和YOLO[9]系列等,輸入圖片后直接在一個網絡中進行回歸和分類,很大程度減少了檢測過程中的重復運算,因此檢測速度有了顯著的改善。其中YOLO系列算法以準確率高、實時性強的優勢領先于其他基于回歸的檢測算法,但大部分網絡由于結構復雜、模型權重大等問題無法滿足實際需求。
本文針對于交通標志檢測的難點和需求,提出一種基于改進YOLOv5算法的交通標志檢測模型,從而創建一個兼顧應用能力和準確性的路面交通標志分類檢測網絡模型。同時針對原算法中先驗框尺寸不符合交通標志特征問題,提出對數據集重新聚類從而獲得新的先驗框尺寸。然后將改進的模型應用到TT100K數據集并與其他算法作對比分析,結果表明改進后的算法對交通標志檢測在平均精度均值和召回率上都有所效果提升。
YOLO系列是一種基于one-stage的端到端目標檢測算法,在網絡中輸入一張圖片后能直接得到目標的位置以及類別和概率。檢測具體過程是:首先YO?LO將輸入的圖片分割成S×S網格,然后每個單元格負責去檢測其中心點落在該網格內的目標。這些單元格會生成3個不同尺度的先驗框,對先驗框進行微調后形成預測框。每個單元格會輸出多個預測框、置信度以及類別概率。最后通過非極大值抑制算法(Non Max Suppression,NMS)去除冗余的預測框后得到最終的預測結果[10],算法流程如圖1所示。

圖1 YOLO算法流程
YOLOv5算法按照其網絡深度從小到大分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。較前幾代YOLO算法最明顯的特征就是模型小,適合部署在移動端和嵌入式設備當中,為交通標志檢測技術研究提供了便利。YOLOv5的網絡結構由4個部分組成,分別是:
●輸入端:模型將對輸入的數據集采用圖像增強,通過選取4張圖像進行隨機裁剪、隨機拼接、隨機排布來達到豐富數據集的效果。由于拼接操作產生了很多小目標圖像,所以增加了網絡對于小目標檢測的魯棒性。并且在先驗框設計當中采用了自適應計算,從而根據目標特征在預先設定好的先驗框上進行微調生成最佳預測框。
●主干網絡:一共包含6層網絡結構,用于提取圖像特征。模型設計了兩種CSP結構用于增加網絡的特征提取能力,分別應用于主干網絡和檢測模塊中。并且在進入主干網絡之前中添加了切片結構,保證在下采樣的過程中使得特征提取能力更加充分,從而保留更加完整的下采樣信息。
●檢測模塊:YOLOv5應用了多尺度特征融合策略,通過采用空間金字塔池化網絡(Spatial Pyramid Pooling Network,SPPNet)和路徑聚合網絡(PANet)將淺層的細節信息和深層的語義信息融合在一起,并且借鑒跨階段局部網絡設計的CSP2結構,加強網絡提取特征的能力。
●預測模塊:模型針對3種尺度的特征圖采用不同寬高的先驗框進行預測和分類,根據預測結果和實際結果生成損失函數反向傳遞給網絡并且不斷優化。損失函數主要由3部分組成:預測框損失函數主要由CIoU-Loss來表示,置信度和分類損失函數是由二進制交叉熵來表示的。用非極大值抑制算法去除冗余的預測框后得到最終結果。整個網絡結構如圖2所示。

圖2 YOLOv5網絡結構
大部分交通標志圖像的面積較小,僅占整張圖片的1%-2%,通過聚類算法找到適合目標特征的先驗框尺寸,在此基礎上進行微調形成預測框,能夠有效提高模型檢測精度,其中預測框與先驗框的對應關系如圖3所示。

圖3先驗框和預測框對應關系
預測框與先驗框的各參數對應關系如公式(1)所示,其中cx和cy分別代表當前格子中心點的偏移量,pw和ph分別代表先驗框的寬和高,bx、by、bw和bh分別代表生成的預測框的中心點坐標和長寬。
原YOLOv5算法中先驗框尺寸是采用K-means算法在COCO數據集上進行聚類得到的[11]。K-means算法的主要思想是:首先隨機選擇數據集中k個點作為聚類中心,計算其他樣本到該聚類中心的距離之后劃分到距離最小的類當中,最后針對于每一個類重新計算該類的質心作為新的聚類中心,重復上述過程一直到聚類中心的位置不變。但由于K-means算法中對初始聚類中心點是隨機劃分的,這個聚類中心的選擇對最終聚類結果有一定影響,如果初始聚類中心的距離較近,會影響聚類結果的準確度。
針對于K-means算法存在的問題,本文提出采用K-means++算法來進行聚類,從而得到更適合交通標志的先驗框。K-means++在選擇初始聚類中心的主要思想是:初始的聚類中心之間的相互距離要盡可能遠。首先隨機確認第一個聚類中心點,并計算剩下所有的樣本點到該聚類中心的距離D(x),然后根據公式(2)計算該點成為下一個聚類中心的概率P(x),最后使用輪盤法選出數據點作為新的聚類中心。重復以上步驟一直到第k個聚類中心被選出來[12]。通過K-means++算法聚類出的結果能更好地改善誤差,從而選取更合適的先驗框。

通過采用K-means++算法對TT100K數據集進行迭代聚類之后得到新的9種尺度的先驗框,和原先驗框尺寸對比如表1所示。可以看出原先驗框由于采集于COCO數據集,目標的類別廣且數量多,所以大、中、小3個尺度的先驗框尺寸差異大。而新先驗框是依據交通標志特征聚類而成,總體尺寸偏小且差異不大,所以更能接近真實框的尺寸,從而提升模型檢測的準確率。

表1聚類前后先驗框尺寸對比
本文實驗選取的是由清華大學與騰訊實驗室聯合發布的基于真實場景的交通標志公開數據集TT100K(Tsinghua-Tencent 100k),包含30000個交通標志實例的約9000張圖像。這些圖像的采集在不同的條件的自然場景中且數據多樣性比較廣。TT100k數據集幾乎涵蓋了日常生活中常見種類的交通標志,符合實驗要求,交通標志樣例如圖4所示。

圖4交通標志樣例
由于TT100K中每張圖像的分辨率高達2048×2048,背景信息復雜,所以存在干擾主體目標檢測的問題,此外,數據集中大部分交通標志尺寸相對較小且各類樣本數量不均衡,對檢測造成了一定的困難。本文篩選出實例數大于50的45個類別共9170張圖片作為基礎數據后,按照9:1劃分成訓練集和測試集,訓練集各類樣本數量統計如圖5所示。

圖5訓練集各類樣本數量分布
本文進行了多組的對照實驗來驗證算法的有效性和高效性,同時讓各組網絡模型的參數設置統一化,保證實驗的客觀性,。實驗基于Windows平臺通過Python語言編程實現,應用深度學習框架PyTorch 1.7搭建網絡模型。實驗樣本訓練迭代次數設置為300,批次大小統一設置為4,其中圖像輸入端的分辨率統一設置為640×640,初始的學習率設置為0.01,學習率衰減采用余弦退火方式,動量設置為0.937,權重衰減系數為0.0005。
為了驗證本實驗在檢測交通標志上的效果,本文選取相同數據集作為實驗數據進行對比實驗。并選取平均精度均值(mean average precision,mAP)、召回率(Re?call)、檢測速率和模型權重大小作為模型性能的評價標準,以衡量模型的目標檢測能力和實際應用能力。首先需要根據真實標簽將檢測結果劃分為真正例(true posi?tive,TP)、真反例(true negative,TN)、假正例(false posi?tive,FP)和假反例(false negative,FN)4類[13]。
Precision又稱為查準率,通過計算檢測結果中預測正確的樣本數和所有預測樣本數的比例得到,即正確檢測到的樣本數占總檢出樣本的比例,能夠反映模型對目標的分類能力,Precision的計算式如(3)所示。

Recall又稱為召回率,通過計算檢測結果中預測正確的樣本數和所有真實樣本數的比例得到,即正確檢測到的樣本數占真實樣本數的比例,能夠反映模型對目標的檢測能力,其計算式如(4)所示:

AP代表平均精度(average precision,AP)。如果用坐標系來表示,AP是將召回率和準確率分別當作坐標系的橫縱坐標繪制而成的一條函數曲線,即PR曲線。PR曲線之下的面積則為AP值。mAP作為目標檢測網絡中常用的衡量檢測精度的評價指標,它是對多個類別求平均AP值,能反映出網絡檢測效果的好壞。其計算公式如(5)所示,其中QR指類別個數:

FPS代表每秒傳輸幀數,能夠反映模型檢測速度的快慢。FPS值越髙表示網絡的實時性越好,即深度學習網絡檢測越流暢。所以本文用傳幀數來衡量網絡運行的流暢性從而判斷是否滿足實時性需求。
圖6和圖7分別是改進后算法和原YOLOv5的召回率和平均精度均值曲線圖。如圖6所示,網絡訓練初期,兩個模型都收斂的很快。但是隨著迭代次數的增加,更新了先驗框尺寸的模型由于更符合交通標志的尺寸與比例特征,所以收斂得更快,在訓練大約50個批次后,召回率達到0.9并且趨于穩定。而原算法在訓練100個批次后才趨于穩定。如圖7所示,兩個模型的精度在訓練批次到達50至80左右波動較大,之后趨于平穩。改進后模型的平均精度均值一直高于原YOLOv5算法,在訓練300個批次之后,達到了0.92。說明說明本文所提算法在交通標志檢測任務中具有更好的魯棒性。

圖6召回率曲線對比

圖7 mAP曲線對比
為了驗證實驗的有效性,本研究將改進后的模型和其他文獻中提出的模型相作對比,結果如表2所示。

表2檢測算法性能對比
由表2可知,本文所提出的交通標志檢測方法相較于原YOLOv5算法效果提升明顯,分別在平均精度均值和召回率上有1.6%和0.6%的提升,每秒檢測幀數能達到21.3張,從而保證了算法的實時性。整個模型大小約為14.3 MB,可以部署在移動端或者嵌入式設備。YOLOv3算法同樣采用了3個尺度進行檢測,從而在識別精度方面表現力也比較好,但是由于模型參數量過大,該算法的應用能力較弱。文獻[14]中由于選用輕量型的MobileNet代替原特征提取網絡,雖然模型參數量大大減少但也使模型缺失了一定特征提取能力,從而造成模型檢測精度不夠。文獻[15]引入了空間金字塔池化網絡,提升了模型檢測速率、檢測精度,而平均精度均值、檢測速度和本文提出方法差異不大,但是在召回率方面,本文方法大有提升。由此可見本文所提出的方法,對交通標志檢測效果有較大改善。
為了證明本文方法的有效性,并選取了兩組有代表性的圖像進行效果展示,分別是一張含小目標和扭曲目標圖像和一張逆光環境圖像來進行實驗。通過檢測結果圖我們可以看出,本文提出的方法能夠對各類環境交通標志有很好的檢測效果。圖像中不同顏色的框代表模型檢測出的目標,上方的字母代表該方框檢測出來的交通標志類別,旁邊的數字代表該目標類別的置信度大小,該值越接近于1代表所檢測出來的目標是該類型的可能性越大。檢測效果如圖8所示。

圖8所提算法檢測效果示例
在示例圖(a)中可以看出,雖然所有交通標志尺寸較小而且形狀扭曲,但是改進后的模型能夠有效地檢測出了所有類型的交通標志,說明該模型對于小目標的檢測能力不錯。在示例圖(b)中可以看出,由于圖像拍攝于逆光環境,所以交通標志存在主體顏色暗且低對比度的情況。但是從檢測結果來看,所有交通標志都被正確識別出,說明改進后的模型具有一定泛化能力。
針對于傳統深度學習交通標志算法模型權重大應用能力差等問題,本文采用輕量級模型YOLOv5進行交通標志檢測并對此算法進行優化改進。通過采用新的聚類算法K-means++對數據集重新聚類,得到更適合檢測交通標志圖像的先驗框尺寸,從而提高檢測的精確度。然后將改進的YOLOv5算法應用到TT100K數據集當中進行交通標志檢測,并和其他算法進行比較。通過采用不同的指標來進行對比和分析來評估改進后的算法性能,對比結果發現,改進后的算法能夠在保證實時性的情況下有效提高檢測速率,本實驗算法平均精度均值達到84.9%,召回率能達到89%,權重文件只有14.3 MB。
本文提出的算法雖然在交通標志檢測上取得了比較好的結果,也因模型權重小能部署在嵌入式設備。但是在實際交通場景當中,算法的檢測內容應該包含多類目標。因此如何保證在高精度低權重的情況下檢測出多類目標將是今后的研究主要內容。