顧 恭,徐旭東
北京工業(yè)大學 信息學部 計算機學院,北京100124
近些年來,由于全國以及全球各地汽車數(shù)量的飛速增加,用于管理和統(tǒng)計相關車輛信息的成本也在逐漸提高。隨著計算機視覺以及人工智能技術的突破和不斷發(fā)展,可以用于目標檢測的識別模型越來越多,在對其背后原理逐步深入研究的同時,預測效果也有了相應提升。該領域的相關研究不但可以使工作人員在周期性的海量車輛檢查中借助更新的技術加以輔佐,提高審核檢查效率和準確率;也可以使露天或地下停車場的車輛信息管理調配工作得到更好的幫助。除此之外,對于車輛信息以及行駛道路上各類物體的實時準確預測更可以讓自動駕駛技術在未來廣泛普及成為可能[1-2]。
目前,存在幾種常見模型可以在復雜無約束場景下對目標物體進行快速定位與識別,分別是R-CNN(Region-Convolutional Nerual Network)系列、SSD(Single Shot Multibox Detector)系列以及YOLO(You Only Look Once)系列等。R-CNN 模型存在著不能快速定位物體的問題,其主要原因是模型算法對于單元格產(chǎn)生的候選框過多且易重復,而每一次選擇都需要代入卷積神經(jīng)網(wǎng)絡模型加以識別,得出物體的預測置信度和具體坐標位置,這一步驟在單一圖片的處理上會消耗極多的時間。而SSD模型會隨著輸入圖片的規(guī)格擴大,運行效率顯著下降,故在目前的硬件條件下兩種模型均無法做到實時預測的效果。
YOLO[3-5]系列的出現(xiàn)無疑在目標檢測領域帶來了極大地利好,YOLO嚴格遵循了該模型本身的名稱要素You Only Look Once[6]。其含義是在有限的特征圖和單元格內,只需要對每個單元格進行一次候選框集的判斷即可得出該單元格是否存在物體的預測結果。這一理念使得目標檢測的效率快速提升,在目前的硬件條件下,實時檢測的速度可以達到40~50 f/s(每秒圖像的傳輸幀數(shù)),完全滿足人們對實時定位模型在使用方面的速率需求。在準確性上,YOLO雖然憑借較為出色的算法思想能夠做到略強于上述經(jīng)典算法,但仍然無法在高速變化且復雜的自然場景下滿足多數(shù)物體類別的識別需要。因此,在特定的領域內,根據(jù)YOLO 的算法思想進行合理變換可以在保證實時性的基礎上給特定物體的識別定位準確率帶來提升[7-8]。
針對車輛定位中現(xiàn)存的近距離車輛定位不完整、中遠距離車輛的定位存在忽視情況以及誤檢錯檢等現(xiàn)象[9],本文提出了一種Vehicle-YOLO的車輛實時定位與識別模型。該模型相比傳統(tǒng)的YOLO算法,不但在自動駕駛數(shù)據(jù)集KITTI的訓練和測試下有準確率的提升,并且對各類車輛模型的識別分類進行逐步細化,以求在保證實時性的前提下盡可能識別出車輛更為具體的信息,例如類型、顏色等。通過多類數(shù)據(jù)集的測試與性能分析,可以得出該模型在車輛快速定位與信息識別方面相比經(jīng)典模型具有更好的表現(xiàn)。
YOLOv3[5]是YOLO系列的最后一個版本,由Redmon、Farhadi二人提出。該模型主要分為Darknet-53卷積神經(jīng)網(wǎng)絡特征提取和特征圖預測識別兩大部分,前者用來提取圖像中的多類特征,在圖像尺寸降維的同時給特征通道升維,以此來獲得更多、更全面的圖像特點,并傳輸至三種不同尺寸的特征圖進行相應物體的置信度和區(qū)域坐標預測。
Darknet-53卷積神經(jīng)網(wǎng)絡模型的結構圖如圖1所示。

圖1 Darknet-53網(wǎng)絡結構圖
YOLOv3 的特征提取模型Darknet-53 與傳統(tǒng)CNN網(wǎng)絡模型結構不同,Darknet-53舍棄了常用的池化層和全連接層,用改變卷積核步長的方式控制張量的維度,逐步達到尺寸降維、通道升維的目的。這種方法在一定程度上加強了模型的特征提取能力,使Darknet-53在完整一幅圖像內搜索所占圖像比例較小的物體時變得更加敏感和準確,有利于后續(xù)預測與定位。
一幅圖像在該模型中一共產(chǎn)生5次尺寸降維,每次的高和寬均降為輸入尺寸的1/2,在每次降維后共使用5層的深度殘差結構來強化網(wǎng)絡的特征提取能力且保持傳入傳出張量的維度一致。其中,每塊殘差層的算法流程如圖2所示。

圖2 深度殘差網(wǎng)絡算法流程圖
殘差網(wǎng)絡算法流程如圖2所示,在模型中加入殘差層的主要目的是保持通道維度不升高的情況下對圖像特征進行深入提取,并且采用輸入張量與先降維再升維后的變換張量相加的方式控制前饋網(wǎng)絡中的梯度變化,有效防止了梯度消失或梯度爆炸等問題。具體算法步驟如算法1所示。
算法1 殘差層優(yōu)化模型梯度算法
輸入:張量x,其圖像寬、高和特征維度分別為x.shape=[w,h,channels];中間層及輸出層卷積核數(shù)量filters1、channels。
輸出:張量y,其圖像寬、高和特征維度分別為y.shape=[w,h,channels]。
1. tmp=x,將輸入張量x 傳至緩存變量中
2. 對張量tmp 進行卷積操作,傳入?yún)?shù)tmp、卷積核數(shù)量filters1,輸出張量的維度為tmp.shape=[w,h,filters1]
3. 對步驟2得到的張量tmp 進行第二次卷積,傳入?yún)?shù)tmp、卷積核數(shù)量channels,輸出張量的維度為tmp.shape=[w,h,channels]
4. 對張量x 與張量tmp 在特征通道上進行合并,令y=x+tmp,其中y.shape=[w,h,channels]
5. 算法結束,return y
在5 次殘差層的使用當中,提取后3 次輸出的張量y1、y2、y3作為后續(xù)特征圖預測的輸入變量。以416×416像素的圖像為例,第一個特征圖輸出的張量維度為y1.shape=[52,52,256],第二個特征圖輸出的張量維度為y2.shape=[26,26,512],第三個特征圖輸出的張量維度為y3.shape=[13,13,1 024],對于特征圖尺寸越小的張量,其具有的特征維度越高。
Darknet-53 的每個輸出張量各自通過相應的卷積、批標準化、激勵函數(shù)作用以及上采樣技術得到真正用于目標定位的特征圖。其中,上采樣技術的引入是為了保證卷積等操作在3個特征圖上的共用性,在YOLOv3中是通過擴大y3的寬、高尺寸與y2級聯(lián),擴大y2的寬、高尺寸與y1級聯(lián)實現(xiàn)的。
特征圖內的每個像素點作為一個單元格,在給定的候選框內進行物體的置信度判斷,通過非極大值抑制(Non-Maximum Suppression,NMS)算法提取每個單元格內置信度最高的候選框并輸出最終結果。
YOLOv3模型最終的預測結果包含多方面,分別為不同物體種類的概率以及對應在圖像中該物體的矩形坐標信息,故根據(jù)YOLOv3 的結構特性可以得知,在預測框坐標為固定輸出的前提下,預測的物體種類數(shù)量與最終輸出張量的參數(shù)數(shù)量正相關,同時與卷積神經(jīng)網(wǎng)絡和完整預測模型的運算復雜度正相關。對于自然場景下的特定物體預測,如自動駕駛領域內最重要的車輛定位等,所需要識別的目標種類較少于生活中的常見物體種類。因此,在更加有針對性地定位車輛信息這一前提下,合理改變模型的特征提取能力,重新架構模型框架有利于定位和識別準確率的提高。
本文提出的Vehicle-YOLO 模型基本架構如圖3 所示。Vehicle-YOLO 模型在深度殘差網(wǎng)絡、圖像的傳入規(guī)格、特征圖數(shù)量及維度、上采樣方式、損失函數(shù)的定義幾方面做出了詳細設計與架構,使模型在保證實時性的前提下,對車輛的定位與識別準確率有了進一步提升。
Vehicle-YOLO 模型在卷積神經(jīng)網(wǎng)絡特征提取能力上做出了新的設計與改善,其網(wǎng)絡結構如圖4所示。
在Vehicle-YOLO中,采用了7個深度殘差網(wǎng)絡塊強化網(wǎng)絡的特征提取能力,并通過7次對傳入圖像的尺寸降維,逐步地縮小圖像的寬、高,每次的縮小系數(shù)為0.5,共計圖像尺寸縮小為原先的1/27=1/128。同時,為了避免張量維度和卷積核數(shù)量不斷升高所帶來的模型復雜度增長,在第五、六個深度殘差網(wǎng)絡塊執(zhí)行前新增兩層卷積層,以此來降低張量的特征維度。在擴展模型運算深度的同時避免其預測效率下降或產(chǎn)生梯度消失、梯度爆炸等不利于模型訓練效果的影響因素。

圖3 Vehicle-YOLO結構模型架構圖

圖4 Vehicle-YOLO特征提取網(wǎng)絡結構圖
本文提出的Vehicle-YOLO模型在傳入數(shù)據(jù)的規(guī)格上選用寬、高均為512個像素點,整體像素為512×512的預處理圖像。圖像在預處理后保留了實際場景下獲取到的原有圖像寬高比,并按照相應尺寸進行等比縮放,有效避免了因直接更改圖像尺寸而帶來的多數(shù)目標物體的不規(guī)則形變以及失真情況,提高了識別準確率。
根據(jù)車輛目標定位在應用領域和對應功能的不同,本文最終選取了512×512 的圖像作為傳入數(shù)據(jù)。隨著傳入數(shù)據(jù)的規(guī)格在模型中不斷縮小,所獲得的特征圖越小,則模型感受圖像“野”的能力就越強,對圖像會有更宏觀的認知。例如在自動泊車或停車場調度系統(tǒng)中,需要對距離較近的車輛進行快速定位和信息提取,尤其是在狹小空間內需要對車輛周身進行完整的判斷,若有車門打開占據(jù)行駛過道時也應該完整識別并標注,在車輛停靠至車位時,需要及時檢測并反饋識別信息至對應的停車管理系統(tǒng)當中。因此在該場景或類似應用領域內,需要模型對較大目標的識別能力強、精度高,故在Vehicle-YOLO 中,輸入數(shù)據(jù)的原有規(guī)格會經(jīng)過7 次縮小,最終從512×512的傳入數(shù)據(jù)規(guī)格變?yōu)?×4的輸出數(shù)據(jù)規(guī)格,而小特征圖更有助于模型精確識別較大目標。但在自動駕駛、車載記錄儀和實時監(jiān)控系統(tǒng)等應用領域內,往往需要設備對中遠距離的目標做出預測和反應,因此需要較大的特征圖提供更為細節(jié)的特征,以便于模型對中小型目標的存在更為敏感。最終,Vehicle-YOLO選用了64×64 的較大特征圖作為定位較小目標的主要特征數(shù)據(jù)源。由于最小的特征圖需要在原有圖像的規(guī)格基礎上縮小128倍,且盡量保證其縮小后規(guī)格仍為整數(shù),以避免丟掉更多細節(jié)特征,故Vehicle-YOLO選取了512×512的圖像作為輸入數(shù)據(jù)。經(jīng)后續(xù)實驗證明,縮小和擴大圖像的傳入規(guī)格均對模型的檢測實時性或檢測精度存在一定影響。
Vehicle-YOLO 模型將會提取5 個不同規(guī)格的特征圖,特征圖對應張量維度由大到小依次為[64,64,X]、[32,32,X]、[16,16,X]、[8,8,X]、[4,4,X]。
Vehicle-YOLO 特征提取網(wǎng)絡結構如圖5 所示。其中,CBL模塊含有Convolution(卷積)+Batch Normalization(批標準化)+Leaky Relu(激勵函數(shù))三大基本組件[10],在每種特征圖內執(zhí)行6 次,分別為3 次降維和3 次升維操作穿插進行,使模型的表征能力再度提高。根據(jù)應用領域的不同,可適當更改CBL 模塊的使用次數(shù)和使用方法,以調節(jié)模型復雜度和識別效率。

圖5 Vehicle-YOLO模型結構圖
Vehicle-YOLO 的預測結果在輸出前需要將通道維數(shù)調整至X 。其中,X 的計算方法如式(1)所示:

在式(1)中,A 為每個單元格作為獨立的預測單元所預設的候選框數(shù)量,4為確定一個矩形所需要的中心點坐標(bx,by)及其寬bw、高bh,其定義及計算方法如下:

其中,tx、ty、tw、th分別為該矩形相對單元格左上角的相對位置,pw、ph表示候選框的寬、高,cx、cy表示單元格距離圖像左上角橫縱坐標的距離。在Vehicle-YOLO訓練過程中,模型需要根據(jù)預設候選框學習出實際的邊界框信息,并預測出相對位置,再根據(jù)式(2)~(5)的轉換計算得到該邊界框在完整圖像內的實際位置。
預測得到矩形中心點坐標及寬、高信息后,式(1)中的1為每個候選框含有物體的置信度,S 為模型中所有可識別物體的類別數(shù)量。其中,4+1+S 是模型為一個單元格所提供的輸出信息,假設某一特征圖所對應張量yi的維度yi.shape=[N,N,X],則該特征圖在Vehicle-YOLO預測模型下的所有輸出變量總和Num 的計算方法如式(6)所示。

文本提取的5個特征圖,N 分別為64、32、16、8、4,所有特征圖共包含5 456個用于進行目標定位的單元格(以特征圖保留下的像素作為單元格),并且每個單元格預設三種構成比例完全不同的識別候選框,即A=3,可識別目標的種類根據(jù)數(shù)據(jù)集和需求的不同會產(chǎn)生變化,以單獨識別車輛為例,S=1。依次檢查全部特征圖內所含有的單元格,根據(jù)含有可識別目標的置信度以及檢測到的確切目標類別配以相應的參數(shù)權重進行候選框的微調,以提高目標檢測時的準確率和精度。
五種不同規(guī)格的特征圖[11]通過還原預測目標的真實信息和使用NMS算法得出一幅圖像完整的各目標定位結果。
五種特征圖分別的檢測結果以及車輛綜合識別結果如圖6 所示。可以看出,對于規(guī)格越大的特征圖,其預測出的邊界框相對越小,如圖(a)、(b)中,64×64、32×32的特征圖對遠距離的目標有很強的檢測效果;而隨著特征圖規(guī)格的不斷減少,預設邊界框的微調幅度會逐步擴大,即還原回原圖像后包含和跨越的像素數(shù)量越多,故越小的特征圖對于圖像中大目標的敏感程度越強,如圖(c)、(d)、(e)所示;而圖(e)中4×4的特征圖只檢測出了圖像中最大的車輛,說明在運行負載允許的條件下,適當延展特征圖的規(guī)格可以優(yōu)化模型對目標特征的適應程度,以滿足不同場景下的業(yè)務需求;最終五種特征圖結合并使用非極大值抑制后的檢測結果如圖(f)所示。
YOLOv3 在使用Darknet-53 卷積神經(jīng)網(wǎng)絡提取出三種不同規(guī)格的特征圖張量后,需要再次對每種張量進行維度調整,分別使用了4 次1×1 大小的卷積核進行降維調整以及3 次3×3 大小的卷積核進行升維計算。Vehicle-YOLO繼續(xù)采用了這一方法對圖像特征進行更全面的提取,但是更改了傳統(tǒng)YOLO中所用到的上采樣方法,即直接傳入上一層特征圖所對應張量的數(shù)據(jù)進行后續(xù)計算。該步驟用直接上一層特征圖對應張量的傳輸數(shù)據(jù)代替了原本需要一次卷積降維操作后,經(jīng)過最近鄰域插值算法使上一層特征圖對應張量與當前特征圖對應張量級聯(lián)[12]后的結果。這一改變降低了圖像擴張和卷積降維操作帶來的計算負荷,減少算法復雜度,且預測精度仍與使用原先上采樣方式的模型預測結果相對一致。其原因是最近鄰域插值法使特征圖寬、高均擴大一倍,以便于級聯(lián)上一層特征圖對應張量,但圖像擴充算法在改變圖像規(guī)格后無法完全達到還原圖像的目的,易丟失圖像特征,且隨著3.1節(jié)所述的深度殘差網(wǎng)絡塊的增多,特征圖對應的張量均含有較多圖像細節(jié),基本無需通過級聯(lián)方式為每個張量提供更多的細節(jié)特征,故在算法效率提高的同時,預測準確率不降低。算法步驟如算法2所示。

圖6 特征圖識別效果展示
算法2 上采樣算法
輸入:特征圖對應張量列表feature_maps。
輸出:特征圖對應張量的預測列表results。

Vehicle-YOLO使用K-means聚類算法對單元格的預設候選框進行預測,每個單元格使用三種不同寬高比的候選框,每類特征圖采用相同的三種候選框。在KITII 車輛自動駕駛數(shù)據(jù)集下,15 種預設候選框的大小分別為(10×30),(15×42),(21×64),(23×24),(25×38),(29×81),(35×51),(42×105),(48×65),(58×142),(60×255),(68×88),(82×179),(87×117),(110×42)。
在YOLOv3的預測模型中,目標檢測任務被看作是關于目標的區(qū)域預測以及目標種類預測的邏輯回歸問題,其每個單元格的輸出結果包含三方面,分別為預測邊界框的坐標信息、含有物體的置信度、歸為某種物體的概率。本文提出的Vehicle-YOLO模型仍沿用這樣的思想對每次訓練中的誤差進行計算,誤差損失函數(shù)由三部分構成,如式(7)所示:

其中,lossbbox為預設候選框在向真實邊界框回歸擬合時產(chǎn)生的損失,lossconfidence為該預測邊界框內是否含有目標物體的置信度損失,lossprediction為目標識別時所帶來的分類損失。Vehicle-YOLO使用二分類交叉熵作為物體分類時損失函數(shù)的計算方法,即將所有類別的劃分問題歸為該物體是否屬于此項類別,這樣就可以將多分類問題轉化為二分類問題,具體計算方式如下所示:


其中,logitsij、pij、yij分別為第i 個物體在第j 個類別上的預測值、激勵值、真實值。使用多個二分類問題疊加的方式處理多分類問題帶來的好處是多個類別的識別之間并沒有互斥性。在車輛檢測場景中,對于一些可能同時屬于多種類別的汽車(如貨運轎車、運動越野車等),可以給予多重標簽的定義,具體檢測示例如圖7所示。

圖7 貨車與轎車的雙標簽車輛檢測(左下)
此外,本文還將lossbbox中用到的傳統(tǒng)IoU替換為效果和檢測機制更貼近真實場景的GIoU[13],即廣義IoU作為判斷預測邊界框和真實邊界框誤差的重要標準,計算公式如下:

式(10)、(11)中的C 為最小閉合凸平面,具體示例如圖8所示。

圖8 最小凸平面示例
從圖8 可以得出,IoUA=IoUB=0,引入GIoU 可以有效避免因預測框與實際框在不相交時無法進行優(yōu)化的問題。此外,當傳統(tǒng)IoU對于不同情況計算結果相同時,GIoU 也能區(qū)分出更好的結果。具體示例如圖9所示。

圖9 IoU與GIoU計算示意圖
圖9 中的三幅圖IoU=0.33,但GIoU 的值分別為0.33、0.24、-0.1。說明預測框與實際框的重疊度和對齊度越好,GIoU的計算結果也越高。
為了加快Vehicle-YOLO在訓練中損失函數(shù)等各項指標的收斂速度,本文對模型部分卷積層的起始參數(shù)進行了遷移學習。使用YOLOv3 的Darknet-53 特征提取模型在COCO數(shù)據(jù)集上對80種不同種類物體的預訓練參數(shù)作為Vehicle-YOLO 部分卷積層的共享參數(shù),并在訓練中加以微調。全部訓練共進行50 000次迭代,對全部共享卷積層進行學習率為10-4的20 000 次微調訓練,并分別降低學習率為10-5和10-6,各進行15 000次對于模型全部參數(shù)的迭代訓練。
此外,Vehicle-YOLO 采用數(shù)據(jù)增強的方式對訓練數(shù)據(jù)進行預處理。傳入圖像在進入訓練模型前分別有50%的概率進行圖像水平翻轉、圖像隨機裁剪以及圖像角度輕微抖動的操作,以保證傳入圖像的多樣性,盡可能模擬圖像采集時的多種影響因素,還能夠防止因訓練數(shù)據(jù)不平衡所帶來的過擬合或預測精度降低等問題。
Vehicle-YOLO 模型使用python3.6 進行編譯和測試,對應的開發(fā)工具Pycharm2018.1.4,主計算機視覺庫Python-OpenCv3.4.2,可視化工具PyQt5.1,操作系統(tǒng)Windows10,CPU為i7-6700K的四核處理器,主頻4 GHz,顯卡GTX 1080Ti,內存32 GB,硬盤容量2 TB SSD。
4.2.1 基于KITTI的自動駕駛數(shù)據(jù)集測試
本文使用KITTI數(shù)據(jù)集[14]中的圖像內容作為Vehicle-YOLO 車輛信息實時檢測模型的數(shù)據(jù)。該數(shù)據(jù)集由德國卡爾斯魯厄理工學院和豐田美國技術研究院聯(lián)合創(chuàng)辦,是目前國際上最大的自動駕駛場景下的計算機視覺算法評測數(shù)據(jù)集。在復雜實際場景的圖像采集方面,KITTI不但包含了城區(qū)、鄉(xiāng)村和高速公路等不同環(huán)境下的真實圖像,而且在每張圖像中最多可以達到15 輛汽車和30個行人[15],囊括復雜自然場景下的各類遮擋物與截斷目標,能夠滿足復雜無約束場景下的車輛實時檢測模型Vehicle-YOLO對于數(shù)據(jù)全面性的需求。
KITTI 為車輛目標的檢測提供了四種不同的車輛類別標簽,分別為Car、Van、Tram以及Truck,共含有7 481張圖片。本文按照訓練集∶驗證集∶測試集=8∶1∶1的比例對KITTI 數(shù)據(jù)集在每次傳入Vehicle-YOLO 模型訓練前進行隨機劃分和數(shù)據(jù)增強處理。最終得到用于訓練的圖像數(shù)量5 984、驗證集的圖像數(shù)量748、測試集的圖像數(shù)量749。表1 為單次數(shù)據(jù)集劃分后,四種不同類型的車輛標簽所對應的實際數(shù)量,為了使訓練后的模型具有更好的實際效果,每次劃分后的車輛類型真實數(shù)量會產(chǎn)生微小波動。

表1 劃分后各集合中包含車輛類型標簽的真實數(shù)量
本文使用Vehicle-YOLO模型對KITTI隨機劃分后的訓練集進行了3次訓練,將平均均值精度(Mean Average Precision,mAP)和畫面每秒傳輸幀數(shù)(Frames Per Second,F(xiàn)PS)作為主要測試指標,mAP與FPS的計算公式如下:

其中,T 為單一圖片內滿足IoU 閾值的正確檢測數(shù)量,S 為該類別在此圖片上的總數(shù),N 為用于測試的圖像數(shù)量,M 為總檢測類別數(shù)。

式(15)中,F(xiàn)ramecount為處理圖像的數(shù)量,Elapsedtime為處理Framecount所用時間。
對R-CNN、Faster R-CNN、SSD 等經(jīng)典模型、傳統(tǒng)YOLOv1-3 模型以及本文提出的車輛目標檢測模型在實時性和檢測精度上進行重點測試和考量。實驗結果如表2所示。

表2 KITTI數(shù)據(jù)集在不同目標檢測模型上的測試結果
在KITTI 數(shù)據(jù)集上各模型的實驗結果如表2 所示,其中對本文提出的Vehicle-YOLO車輛檢測模型進行了3次訓練,分別用訓練后得到的權重文件在測試集上進行測試。從表2得出,傳統(tǒng)的YOLOv3算法模型在目標檢測上的實時性和定位準確率都優(yōu)于近些年提出的其他目標檢測模型,其擁有接近50 的圖像傳速幀數(shù)和92.2%的平均均值精度。Vehicle-YOLO 因為在圖像的傳入規(guī)格上從傳統(tǒng)YOLOv3 的416×416 變?yōu)?12×512,且擁有五種不同規(guī)格的特征圖共同進行目標預測,在定位準確率上有了進一步提升,經(jīng)過3次測試集檢測得到的平均均值精度分別為96.3%、96.6%、96.2%,意味著模型對車輛的敏感程度較高且保持在相對穩(wěn)定的水準,不會因神經(jīng)網(wǎng)絡初始化參數(shù)的變化而對定位結果產(chǎn)生較大影響。在實時性方面,由于Vehicle-YOLO 的預測單元格總數(shù)從52×52+26×26+13×13=3 549 變?yōu)?4×64+32×32+16×16+8×8+4×4=5 456個,且增加了對應的殘差網(wǎng)絡塊,算法復雜度略有提高,但仍然可以保持41左右的每秒圖像傳輸幀數(shù),完全滿足對于復雜場景實時檢測的速度需求。
Vehicle-YOLO 因為特征圖的增加,強化了模型對“野”的感受和細節(jié)特征的提取效果。這一結構性變化使得Vehicle-YOLO 對遠距離的小目標更加敏感,容易發(fā)現(xiàn)并識別它們;對近距離的大目標有更好的判斷,定位精度進一步提高。部分測試效果如圖10~圖12所示。
為了更清晰地體現(xiàn)兩種模型在車輛定位和識別上所產(chǎn)生的差異,用綠色的“Car”識別預測框統(tǒng)一代表傳統(tǒng)YOLOv3 中普通轎車的定位結果,而用藍色“Car”的識別預測框代表本文提出的Vehicle-YOLO模型中普通轎車的定位結果。根據(jù)其余定位標簽的顏色差異可以對比出兩種模型在車輛定位和識別上的特點。受圖像采集時的距離影響,遠距離的車輛目標在圖像中的顯示比例較小,而相比傳統(tǒng)YOLOv3,Vehicle-YOLO更不容易出現(xiàn)誤判或漏判的情況。如圖10(b)、(c)所示,YOLOv3在圖像中部區(qū)域誤將其中某輛轎車識別為貨車,并用“Van”的紅色邊界框標出,雖然兩種模型都將車輛在圖像中的位置預測準確,但Vehicle-YOLO 模型在預測過程中更能避免誤判的發(fā)生,精度略高。
圖11(b)、(c)中,最右側的卡車均被“Truck”所代表的黃色邊界框表示出,但Vehicle-YOLO 在較大目標的特征提取中有更好的效果,故邊界框的預測位置更佳,包含的車輛區(qū)域更加全面,冗余信息較少,這在進一步提取車輛多維信息的過程中會有較大幫助。且YOLOv3在圖像中部出現(xiàn)了將復雜區(qū)域識別為貨車“Van”的錯判現(xiàn)象,本文提出的模型可以在車輛識別方面更好地避免此類問題的發(fā)生。
同樣,圖12(b)、(c)體現(xiàn)出Vehicle-YOLO在遠距離目標的識別上具有優(yōu)勢,準確定位出遠處貨車并用標簽“Van”的邊界框標出。而在圖像左側區(qū)域,未產(chǎn)生與YOLOv3相同的錯判情況。
通過KITTI的實驗可以發(fā)現(xiàn),在圖像內較為明顯車輛的檢測過程中,YOLOv3 與Vehicle-YOLO 均具有較好的定位與識別能力,Vehicle-YOLO 對較大目標的定位精度更優(yōu),且Vehicle-YOLO 在復雜道路場景下更易避免錯判、漏判、誤判等情況的發(fā)生。
4.2.2 多種車輛數(shù)據(jù)集的綜合測試

圖10 兩種模型檢測結果對比圖1

圖11 兩種模型檢測結果對比圖2

圖12 兩種模型檢測結果對比圖3
車輛目標定位作為自動駕駛或車輛調度系統(tǒng)等實際應用領域中的重要信息獲取方式,不僅應滿足對車輛的跟蹤與位置識別,更重要的是在有限的目標區(qū)域內盡可能提取更多的車輛信息。Vehicle-YOLO模型無論是單一識別車輛這一目標或是利用KITTI 提供的四種不同類型的車輛標簽進行檢測,都不能真切地滿足現(xiàn)實場景內對車輛信息定位及識別的真正需要。為了細化不同車輛的主要特征,同時也希望在初次完成定位時就采集到車輛進一步的信息,為后續(xù)車輛多維信息的獲取提高準確率,節(jié)約時間,本文通過整合多種不同數(shù)據(jù)集,收集并標注了與車輛定位相關的訓練與測試數(shù)據(jù),對車輛的類型進行了重新匯總與擴充,包含10 種不同的車輛類型,以便于在定位伊始就可以對該車輛進行識別分類,為后續(xù)全面的信息獲取做鋪墊。包含10 種車輛類型的Vehicle_Type數(shù)據(jù)集分別從VOC2007-VOC2015[20]、KITTI[14]、UA-Detrac[21-22]以及自主采集等多個渠道進行獲取,并對訓練集的車輛實際區(qū)域進行手動標注,最終獲得12 536張數(shù)據(jù)圖像,近49 000個車輛數(shù)據(jù)用于訓練和測試。
從表3的實驗結果可以看出,隨著模型識別種類的增加和不同類別數(shù)據(jù)數(shù)量的不平衡,測試結果相比KITTI略有降低,但仍然保持95.2%的平均均值精度,高于傳統(tǒng)YOLOv3 約2.8 個百分點。在傳輸速率方面,因為增加的識別種類所帶來的復雜度遠不及模型本身參數(shù)的計算過程,故每秒傳輸幀數(shù)變化幅度不大。

表3 Vehicle_Type數(shù)據(jù)集在YOLOv3和本文模型上的檢測結果
在車輛信息自動獲取的相關應用領域內,目標車輛的類別也尤為重要,在快速定位車輛的同時還能對車輛類別進行直接識別分類對其余信息的獲取準確性和識別速度均可以帶來正向影響。本文選用300 張復雜無約束自然場景下的車輛圖像對Vehicle-YOLO模型的車輛定位和識別分類能力做出測試,這些測試數(shù)據(jù)均來源于國內真實道路中的各類場景,每張圖像包含的車輛較少且主體明顯。車輛需要在Vehicle-YOLO定位后提取出類型、品牌、顏色、車牌內容、車牌顏色五種不同方面的信息,實驗內容如表4所示。

表4 不同定位方式預測目標對車輛信息提取的影響
表4 中的單一定位方式指的是Vehicle-YOLO 模型對所有車輛只進行單一類型識別,統(tǒng)稱為“Car”,車輛類型信息需要在定位后再次識別并分類;而多種類定位則選用本節(jié)提到的Vehicle_Type 數(shù)據(jù)集內的10 種不同車輛類別對車輛在定位的基礎上直接進行類型識別。除此之外,車輛的品牌、顏色、車牌內容、車牌顏色等信息均采用一致的卷積神經(jīng)網(wǎng)絡訓練模型進行識別。由表可以看出,多種類定位雖然對車輛信息的獲取更加深入,但是受數(shù)據(jù)平衡性和種類特征相似性的影響,使得定位總數(shù)和五種信息的識別準確率略有不足。本文認為,擴充實驗數(shù)據(jù)和平衡不同種類的訓練目標數(shù)量應該對定位識別結果有所改善。部分車輛信息識別結果和可視化內容如圖13~圖18所示。

圖13 露天場景下車輛定位效果圖

圖14 露天場景下車輛信息識別效果圖

圖15 地下停車場車輛定位效果圖
圖13 ~圖18展示了部分Vehicle-YOLO模型在國內多種復雜場景下的車輛定位和信息識別效果。因為Vehicle-YOLO具有較好的中遠距離目標定位能力,所以車輛在所占圖像比例較小、畫質較為模糊時,也能夠有不錯的定位效果,為后續(xù)的車輛多維信息識別提供保障。

圖16 地下停車場車輛信息識別效果圖

圖17 中遠距離模糊車輛定位效果圖

圖18 中遠距離車輛信息識別效果圖
圖19 所示為300 張復雜場景圖像中,482 輛汽車在Vehicle-YOLO 模型的單一和多種類定位預測方式下,對車輛進行五種上述信息的識別所需花費的平均耗時。由于多種類預測方式在車輛的目標定位階段已經(jīng)同步完成了車輛類別的識別工作,故后續(xù)信息的提取種類減少,平均耗時約為5.4 s;而單一種類預測的方式需要在后續(xù)階段對車輛類型進行重新識別,平均耗時約為6.8 s。因此,在保證多種類預測方式具有較高識別準確率的情況下,可有效提高目標車輛的信息檢測效率。

圖19 不同種類定位方式下的車輛信息識別平均耗時
4.2.3 基于VOC數(shù)據(jù)集的通用目標測試
Vehicle-YOLO 雖然是針對實時復雜場景下車輛的目標定位和信息獲取所提出,但在結構改進和模型完善上均以常見目標的出現(xiàn)特點為出發(fā)點進行研究與設計。因此,為了檢驗該模型在通用物體定位與識別上的工作性能,本文使用包含20種不同類別對象的經(jīng)典數(shù)據(jù)集VOC進行測試。訓練集和測試集分別由VOC2012[20,23]數(shù)據(jù)集的訓練和測試部分構成。檢測結果如表5所示。

表5 VOC2012數(shù)據(jù)集在不同目標定位模型上的檢測結果
從表5中的實驗結果可知,Vehicle-YOLO在檢測時間方面依然略低于傳統(tǒng)YOLOv3模型,但仍然滿足實時性要求,而在常見物體的檢測準確率方面,Vehicle-YOLO有更好的表現(xiàn)。說明Vehicle-YOLO的設計相較于另外三種模型,平均均值精度提升了8.8 個百分點、7.3 個百分點、3.6 個百分點,證明了Vehicle-YOLO 在物體特征的判斷和提取過程的優(yōu)化上是合理的。
為了在模型檢測精度和算法實時性方面做出盡可能的平衡,本文在其余輸入?yún)?shù)條件保持一致的情況下對模型傳入數(shù)據(jù)的尺寸進行了改變,以便得出最優(yōu)的傳入圖像數(shù)據(jù)規(guī)格。實驗數(shù)據(jù)繼續(xù)沿用4.2.1節(jié)中的KITTI數(shù)據(jù)集。具體實驗結果如表6所示。

表6 不同規(guī)格的傳入數(shù)據(jù)對模型檢測指標的影響
從表6的實驗結果可以得知,較小的輸入圖像規(guī)格會嚴重降低目標定位精度,而隨著圖像規(guī)格的增大,模型的運算效率變緩明顯。考慮到3.1節(jié)所述的7次圖像數(shù)據(jù)規(guī)格減小,選用512×512的圖像作為輸入數(shù)據(jù)較為合理。
此外,為了探究特征圖數(shù)量對模型性能的影響,將Vehicle-YOLO模型的傳入圖像規(guī)格固定為512×512,僅更改相應的網(wǎng)絡殘差塊和特征提取部分,使得生成的特征圖數(shù)量為3 至7 個,以此獲得對模型效率最佳的特征圖個數(shù)。在KITTI數(shù)據(jù)集中的實驗結果如表7所示。

表7 采用不同數(shù)量的特征圖對車輛定位的實驗結果
表7 中,除傳統(tǒng)YOLOv3 使用的是416×416 的傳入圖像,本文提出的Vehicle-YOLO 均使用512×512 的傳入圖像進行性能檢測,特征圖維度由64×64依次減少至1×1。特別注意的是,在表7數(shù)據(jù)部分的1~2行,使用同等數(shù)量的特征圖,由于Vehicle-YOLO 模型用特征提取網(wǎng)絡的中間層特征圖所對應張量代替了YOLOv3 中上采樣后的特征圖張量,在降低模型復雜度、提升檢測速率的同時,定位精度略有下降。隨著特征圖和對應深度殘差塊數(shù)量的增加,mAP 略有提高,但FPS 降低更為明顯。因此通過檢測精度和模型運算速率的綜合評估,將模型的特征圖數(shù)量設定為5個。
不僅特征圖輸出數(shù)量的多少是提高模型效率的重要研究內容,預設邊界框(Anchors)數(shù)量的合理選擇對模型的性能也有影響。為了探究每個單元格中預設邊界框的數(shù)量對Vehicle-YOLO 模型的性能影響,本文以每個單元格為基本元素,分別將預設邊界框的數(shù)量設置為不同值,檢測其評估指標的變化。
分別對預設邊界框的數(shù)量在三種不同的傳入圖像規(guī)格下進行調整和測試,預設邊界框數(shù)量分別為3、4、5。在KITTI數(shù)據(jù)集上測試的結果如表8所示,更改每個單元格的預設邊界框數(shù)量在同一傳入圖像規(guī)格的前提下,對Vehicle-YOLO模型性能提升幫助很小,甚至沒有帶來明顯改變,但模型預測速度逐漸降低。并且相比提升傳入圖像的尺寸規(guī)格所帶來的精度提高,每秒傳輸幀數(shù)的降低更加顯著。

表8 更改每個單元格的預設框數(shù)量對模型的性能影響
為了測試損失函數(shù)的改進、數(shù)據(jù)增強等方法對模型檢測精度的影響,在KITTI 數(shù)據(jù)集上進行了對比實驗,具體結果如圖20、表9所示。

圖20 兩種損失函數(shù)計算方式在KITTI上訓練的收斂曲線

表9 損失函數(shù)優(yōu)化與數(shù)據(jù)增強對Vehicle-YOLO的性能影響
圖20展示了Vehicle-YOLO的損失函數(shù)在KITTI數(shù)據(jù)集訓練過程中的收斂速度和具體數(shù)據(jù),傳統(tǒng)方式是采用YOLOv3的損失函數(shù)計算方式在Vehicle-YOLO模型上訓練得到的,而優(yōu)化方式則是使用3.6 節(jié)的技術對損失函數(shù)的計算方式進行優(yōu)化后,投入Vehicle-YOLO 模型訓練得到的。從全局圖(a)可以看到,新增的廣義IoU判別方式對損失函數(shù)的計算和優(yōu)化效果帶來了較為明顯的提升。在前幾百次迭代后,相較于傳統(tǒng)的損失函數(shù)優(yōu)化算法,修改后的損失函數(shù)收斂速度更快。從局部圖(b)中可以看出,優(yōu)化方式得到的最終損失與傳統(tǒng)計算方式相比數(shù)值更低,訓練效果更佳。
從表9的結果可以看到,四種改進方式均在上一階段的基礎上給Vehicle-YOLO 的檢測性能帶來提升,在KITTI 測試集上的提升幅度分別為0.3%、1.2%、0.3%及0.2%。其中,GIoU 的計算方式對損失函數(shù)的優(yōu)化效果最為明顯,對模型的檢測性能提升也最大。
因此,在考慮平均均值精度和圖像傳輸幀數(shù)二者的性能平衡方面,通過以上多種角度的實驗內容和結果分析,本文提出的Vehicle-YOLO 車輛目標檢測模型選用圖像規(guī)格為512×512,特征圖數(shù)量為5,每個預測單元格所含的預設邊界框數(shù)量為3 的基礎設定作為最終傳入數(shù)據(jù)和參數(shù)的標準。
為解決復雜無約束場景下車輛目標定位及相關信息高效識別的問題,本文提出了一種基于YOLOv3的車輛定位識別模型Vehicle-YOLO。該模型采用7 次深度殘差網(wǎng)絡輸出五種不同規(guī)格的特征圖用于目標檢測,在特征圖內的每個單元格提供了三種不同比例的預設邊界框用于車輛目標定位的微調工作,以提升最終的預測精度。同時利用KITTI 數(shù)據(jù)集和多種車輛數(shù)據(jù)整合后的Vehicle_Type 數(shù)據(jù)集對模型進行多類別車輛定位識別訓練,使得車輛區(qū)域的定位和車輛類型的識別工作可以同步完成,提高車輛多維信息獲取的執(zhí)行效率。實驗結果表明,該模型不但在KITTI數(shù)據(jù)集的測試上擁有較好的定位精度和運算速度,并且在多類通用物體的目標檢測任務上也有良好表現(xiàn)。
但在模型訓練方面仍存在特征提取單一化的問題,由于數(shù)據(jù)集的主體為國外車輛,且圖像采集視角具有一定的規(guī)律性,故在今后的車輛目標定位中,應主要對數(shù)據(jù)增強,國內外車輛數(shù)據(jù)的平衡性和全面性做出進一步設計與研究,以提升模型對圖像中各角度車輛的檢測能力。