王瀅暄,宋煥生,梁浩翔,余宵雨,云 旭
長安大學 信息工程學院,西安710064
交通場景下的車輛目標檢測是交通智能管理與安全監測中的關鍵技術,是實現智能多樣化交通管理的基礎,具有重要的研究價值。
傳統的目標檢測方法主要有三類:第一類是背景差分法,典型的代表有ViBe[1]、MOG[2]、MOG2[3]、GMG[4];第二類是幀差分法,主要是兩幀差法[5]和三幀差法[6],利用視頻序列中連續的兩幀或幾幀圖像的差來進行目標檢測和提取;第三類是光流場法[7],光流場法用相鄰兩幀中對應像素的灰度保持原理來評估二維圖像的變化,能夠較好的從背景中檢測到相關前景目標。然而,傳統方法存在魯棒性差,適用性弱等缺陷。
近些年隨著深度學習技術的火熱發展,目標檢測算法也從基于手工特征的傳統算法轉向了基于深度神經網絡的檢測技術。基于深度學習的目標檢測模型可以分為兩大類:(1)二步檢測算法,其將檢測問題劃分為兩個階段,首先產生候選區域,然后對候選區域分類,采用非極大值抑制方法[8]確定目標檢測結果,這類算法的典型代表是基于候選框的R-CNN 系算法,如R-CNN[9]、Fast R-CNN[10]、Faster R-CNN[11]等。(2)單步檢測算法,其不需要產生候選區域,直接產生物體的類別概率和位置坐標值,比較典型的算法如YOLO和SSD[12]。單步算法準確度低,但速度塊,小物體檢測效果不好,漏檢高。二步算法精度高但速度慢,訓練時間長。
目前,應用最廣泛的是YOLO系列算法。YOLOv1[13]在速度上表現不錯,但對距離近的物體,還有很小的群體檢測效果不好,泛化能力偏弱。YOLOv2[14]其檢測精度和速度上都超過了上一代,但由于YOLOv2 的基礎網絡比較簡單,檢測精度的提升并不明顯。YOLOv3[15]的底層分類網絡darknet-53 性能更強,做到了檢測精度與檢測速度很好的平衡。同時,今年提出的YOLOv4[16]又進行了大規模的改進,在速度和精度上都有不錯的提升,成為現階段精度和速度表現都十分優異的檢測算法。
現存的目標檢測算法會受到場景變化的影響,且現有的大型公開數據集針對高速公路場景適用性不強。本文通過針對不同交通場景提出了與之對應的適用數據集,解決了因場景特征變化導致的誤檢和漏檢問題,除此之外,本文采用YOLOv4檢測算法進行車輛目標檢測,為了提升檢測性能,同時更好地依據檢測結果構建一個具有廣泛適用性的車輛信息庫,本文在YOLOv4的基礎上對網絡結構進行了修改,在保證檢測精度的同時檢測速度得到大幅提升,提升了車輛目標的檢測效果。
在實際交通場景下,車輛目標檢測會存在很多問題。問題如圖1所示,最常見的問題有四類:
(1)場景變化,由于交通監控的架設場景不同,監控視角和高度也會存在差異。例如隧道內的監控視角和場景特征與高速公路就會存在巨大的差異,這種差異就會導致檢測準確率大大降低同時還會導致大量的車輛目標誤檢。
(2)不同時段的同一場景也有著很大差異,隨著時間變化,場景圖片的亮暗程度和可見度不同,特別是夜晚的車輛目標特征很難獲取,由于夜晚場景下車輛燈光的極大干擾,目標車輛的車身輪廓無法準確獲取,如果數據集不包含這種特殊夜晚場景數據,檢測效果不理想。
(3)車輛目標在圖片的不同位置會有明顯的形變,同一車輛目標在圖片遠端位置與近端位置會發生明顯的大小形變,會影響小目標的檢測準確度。圖1(c)中紅色框是同一車輛目標在不同位置發生的明顯形變。
(4)實際道路中的車輛目標廣泛的存在車輛遮擋現象,此現象會導致將多目標檢測為一個目標,出現漏檢和誤檢現象。圖1(d)紅色框是車輛互相遮擋情況。

圖1 目標車輛檢測中的四類問題
以上四類問題的存在使得現有的大型公開數據集如COCO[17]、VOC[18]不適用于高速公路相機拍攝的視角,造成目標車輛的大量誤檢和漏檢。
要想制作對場景而言豐富有效的數據集,首先就必須有足夠的視頻數據進行支撐。本文采用實時流協議(RTSP)進行視頻的采集,采集流程如圖2所示,RTSP是一個用來獲取所需要屬性(編碼方式、分辨率或者幀率等)實時流以及控制實時流的應用層協議。再通過與其他的傳輸機制配合進行實時流傳輸。在RTSP 中,可以在SETUP 方法中設置一些參數,選擇是用TCP 還是用UDP 作為RTP 的底層傳輸協議。在完成RTSP 的配置后,通過RTSP定義的URL可以訪問獲得視頻流。編寫腳本利用Opencv調用ffmpeg來讀取RTSP視頻流地址,在讀取視頻成功后,將視頻進行逐幀保存,保存視頻的編碼格式為高質量的DIVX編碼格式,保證圖片的質量方便后續的車輛目標標定,幀率選定25 frame/s。

圖2 監控視頻采集
本文采集了多種場景下多種角度的不同時段視頻,場景包括高速公路白天、高速公路夜間、高速公路雨天、隧道低視角以及隧道高視角。樣本數據豐富,視頻存儲總量達到了1.5 TB,為建立多樣化數據集奠定了良好的基礎。
為了解決不同交通場景下目標數據集不匹配導致的檢測不準確的問題,本文依據采集到的真實視頻數據提出并構建了一個涵蓋不同交通場景的車輛目標數據集,設計思路如圖3 所示。數據集展示圖如圖4 所示。該多樣化數據集包含了多個不同場景以及不同時段,建立多樣化數據集的目的就是為了針對性的解決由于交通場景特征變化引起的誤檢率過高的問題,多樣化數據集可以劃分為三個子數據集,子數據集的樣本情況如表1所示,這三個子數據集根據實際應用場景進行劃分組織。

圖3 多樣化數據集示意圖

圖4 數據集展示圖

表1 數據集樣本情況
應用于白天時間段場景的白天應用數據集包含了不同路段的不同監控角度下的大量車輛標記樣本。
應用于隧道特殊場景的隧道應用數據集包含了不同隧道路段以及不同視角的大量標記樣本,其中還涵蓋了隧道光照不好以及監控視角極低的特殊情況,大大增加了數據集對特殊交通場景情況的適用性。
現存的大規模交通數據集極其缺少夜間場景下的交通車輛標記樣本,夜間場景下的車輛目標特征極難獲取,車輛燈光對車輛目標的識別和標記會產生極大的干擾,樣本標記難度很大。本文通過大量觀察夜間實際行車數據,最終制定了針對夜晚的特殊標記尺度,遠端燈光干擾無法辨認處放棄標記避免訓練后結果出現大量檢測錯誤,本文將標記區域限定在可以觀察到車輛大致輪廓的監控近端,以此標準制作了一個交通場景夜間應用數據集,由于夜間實際場景的環境限制,數據集可識別區域有限,但在監控近端區域的識別準確率良好,此數據集彌補了夜間交通場景下車輛目標數據集和空缺,使得車輛檢測在夜間也可發揮作用。
本文采用YOLOv4 網絡來進行車輛目標的檢測,網絡結構如圖5 所示,YOLOv4 屬于單步檢測算法,檢測速度快,更容易運用到工程實踐中,并且YOLOv4 在YOLOv3的基礎上在輸入端進行改進,Mosaic數據增強便是YOLOv4 提出的一個基于CutMix[19]數據增強的方法,Mosaic數據增強采用了將4張照片,隨機縮放、隨機裁剪、隨機排布的方式進行拼接,豐富了樣本的數量。同時,加入了SPP[20](空間金字塔池化)模塊,更有效地增加主干特征的接收范圍,顯著分離了最重要的上下文特征,可以很好地解決本文開始提到的目標車輛在圖片中因位置不同而出現的形變問題。在YOLOv4的基礎上,本文還提出了應用多標簽和圖片拼接檢測方法,使得檢測性能得到了進一步的提升。在平均精度(mAP)和速度上,YOLOv4 遠超YOLOv3 版本,mAP 提升了大約10個點,速度提升了大約12%,在精度差不多的情況下YOLOv4的速度更有優勢。

圖5 YOLOv4結構圖
文獻[22]提出經典模式識別問題中,類在定義上是互斥的。當類在特征空間中重疊時,會發生分類錯誤。并且研究了一種不同的情況,根據定義,這些類不是互斥的。文獻[22]實驗表明此工作可以推廣到其他相同性質的分類問題。在此基礎上,本文在多類別標簽的基礎上提出了一個多標簽關聯的思路。標簽之間的約束判斷流程如算法所示,首先判斷輸入圖形是否為空,然后判斷是否存在決定性類別,如果存在,則判斷是否有顏色標簽,沒有缺省,若決定標簽不存在,則直接進入下一目標的判斷。


依據多標簽關聯的修改思想,本文提出并制作了一個多屬性數據集,并在多標簽之間建立約束關系。
數據集中的標簽全部采用labelImg標注軟件,同一車輛目標的不同屬性標簽對應的標注框坐標相同,只是標注類別不同,相當于在一個目標上有兩個標注框,每個標注框有不同的類別標簽。此數據是由隧道場景下數據組成的,隧道場景屬于特殊場景,此場景下的車輛特征信息沒有普通場景容易分辨,所以在此場景下加入多屬性的車輛目標數據集有利于構建更完善準確的車輛信息庫,以便于進一步的交通監測和優化。
在傳統的單標簽分類中,訓練集中的每一個樣本只有一個相關的標簽,這個標簽來自于一個不重合的標簽集合。多標簽分類與多類分類的主要差異就是在最后輸出時多類分類只要找出概率最大的那一個標簽值就行了,而多標簽分類是找到前幾個概率最大的標簽值,也就是說要設定一個閾值,這個閾值可以人為設定或根據性能度量值設定。
對于多類分類,最后一層使用softmax 函數進行預測,訓練階段使用categorical_crosse-ntropy 作為損失函數,YOLOv4 中已經加入了多標簽分類的網絡結構,模型不再使用softmax 函數作為最終的分類器,而是使用logistic 作為分類器,對于多標簽分類,最后一層使用sigmoid 函數進行預測,訓練階段用binary_crossentropy作為損失函數。
為實現logistic 回歸分類器,在每個特征上都乘以一個回歸系數,然后把所有的結果值相加,將這個總和帶入sigmoid 函數中,進而得到一個范圍在0~1 之間的數值。最后設定一個閾值,在大于閾值時判定為1,否則判定為0。以上便是Logistic 回歸算法思想,公式(1)就是分類器的函數形式。這一屬性使得其適合應用于多標簽分類之中,通過對不同類別的判定使得一個目標可以有多個標簽屬性。

在此基礎上對原有的多標簽分類做了一些修改,使得標簽之間加入了約束關系,決定性類別標簽將影響并約束輔助性類別標簽。多標簽分類中不同類別的標簽可能完全不相關,此情況下不同類別標簽之間不存在互相約束關系,標簽的判定完全依靠置信度,隨著不同類別的置信度變化,多標簽的顯示也會變得混亂,也不利于目標信息的統計與整理。基于此情況,本文設定了一個決定性類別標簽概念,并將輔助性類別標簽作為關聯項,這樣標簽之間就不再是完全不相關的狀態,這些標簽之間的聯系也有利于檢測結果的反向約束檢查。
多屬性數據集包含車輛類別和車輛顏色,車輛類別有Car、Truck、Bus 三類,車輛顏色有White、Blue、Red、Black,顏色情況如圖6所示。其中車輛類別作為決定性類別標簽,即車輛目標檢測時,檢測結果中首先要存在所屬的車輛類別,如果存在車輛類別,再將檢測到的顏色類別加入車輛屬性中,否則在沒有車輛類別的情況下,檢測到的車輛顏色屬性將沒有意義,此時默認為沒有檢測到車輛目標。

圖6 車輛顏色多標簽屬性
通過決定性類別標簽的過濾,可以得到準確可用的車輛目標信息,豐富了特殊場景下的車輛屬性信息庫,多屬性目標信息為特殊場景下的交通管控提供了更有利的先決條件,為更好地發展智能交通奠定了良好的基礎。
實際交通場景下的車輛目標檢測對實時性要求高,只有滿足實時性,通過目標檢測得到的車輛屬性信息庫才有應用意義,同時因為實際交通道路場景下的監控數量眾多,只有提高網絡的檢測性能才能滿足工程應用需求。滿足實際應用需求的首要條件就是在保證檢測正確率的同時目標檢測網絡的檢測速度足夠快,YOLOv4對網絡結構進行了輕量化修改使得在準確率相同的情況下速度要遠遠超過其他目標檢測網絡,這也是本文以YOLOv4網絡作為基礎的重要原因之一。
如圖7 所示的飛機檢測框架是基于SSD 添加了MultiBlock 層和MapBlock 層。通過MultiBlock 層將尺寸很大的遙感圖像分解為512×512大小的小圖,檢測完成后,再通過MapBlock 層將每個塊的預測結果都將映射回原始圖像[21]。此方法在提升了檢測速度的同時也保證了檢測結果的完整性與準確性,證明了圖像分割與拼接在深度學習目標檢測中是可行的。通過對此方法的思考和延伸,本文決定采用先拼接后分解的思路來提升檢測網絡的性能。

圖7 遙感圖像中飛機檢測網絡結構
本文在YOLOv4 的基礎上,在輸入端加入一個Splicing layer網絡層,將4張1 920×1 080的待檢測圖像拼接成一個3 840×2 160 的大圖,拼接示意圖如圖8 所示。拼接完成后再進行檢測,相當于四張圖像只需要調用一次檢測器,大大提高了車輛目標的檢測速度。本文依據此思想,由于圖像拼接后,整個圖像變大,車輛目標相對原始圖像變小,為了保證訓練權重適用于拼接圖像的檢測,本文在多樣化數據集基礎上重新制作了一個拼接圖像數據集,先將圖片拼接后再進行樣本數據標記工作,用拼接數據集進行深度神經網絡訓練,得到適用的檢測所需權重文件。由于原圖片的分辨率已經很高,拼接圖片的大小就變得很大,導致訓練速度變慢,但為了保證圖像的質量,本文并沒有對圖像做縮放操作,盡可能地保證檢測擁有足夠的精度。

圖8 網絡示意圖
在車輛目標檢測完成后,本文還加入了對應的分解操作,因為檢測到的結果是相對于拼接后的大圖而言的,需將拼接后的圖像檢測結果回歸到單一的圖像幀中。分解層先通過對檢測結果進行判斷,判定檢測框所在的原始圖像,再根據不同位置圖片對應的坐標位置對檢測結果進行修改,從而完成檢測結果的分解。經過上述Splicing layer 與Separate layer 的操作,在保證檢測精度的同時,大大提高了檢測速度。因此,改進的圖像拼接網絡可以滿足實際工程應用中的實時性要求。
硬件環境:系統類型為Windows10 64 位操作系統和基于x64 的處理器安裝RAM 的內存64 GB,使用GPU 為NVIDIA GeForce RTX 3090,24 GB 顯卡。軟件環境:輔助環境為CUDA v11.1,OpenCV 4.4.0。
對發電機整體在安裝彈性支撐為10kN/mm的彈性支撐時進行模態仿真分析,彈性支撐主要參數如表4和表5所示,前9階振動頻率如表6所示,其中前9階靜態剛度時振型如圖3所示(由于前9階振型一致只是頻率不一致,動態剛度振型圖在此省略)。
本文對不同交通場景運用了不同的對應數據集進行了測試,在實驗部分所使用的數據如表2 所示,本文建立的數據集共計74 082 張圖片,其中包含了不同場景、不同角度以及不同時段的豐富數據集。

表2 數據集樣本數量
不同交通場景下足夠豐富的樣本量保證了訓練結果的適應性和可靠性,提高了車輛目標檢測的精度。
在訓練時,將數據集的80%數據用于訓練,20%數據用于測試。本文在原數據基礎上進行了數據增廣,通過Mosaic 方法對圖像進行隨機縮放,隨機裁剪以及隨機排布操作,本文設置圖像隨機旋轉參數0.5,隨機曝光參數1.5,飽和度參數1.5,豐富了訓練數據。本文為設置學習率為0.001,訓練最大迭代次數為50 000次,同時為了模型盡可能的收斂,在訓練次數達到40 000 次時,調整學習率為0.000 5。輸入到網絡的圖像,分辨率先調整為416×416,訓練時采用batch 為8,以便網絡快速的運行。模型訓練loss 收斂情況如圖9 所示,圖中展示了隨著迭代次數的增加,loss 的收斂情況以及mAP的變化情況。可以看出,無論場景,模型都均在迭代3 000 次時趨于收斂,隨著loss 的降低,mAP 也達到了較高水平。

圖9 模型訓練loss收斂
卷積神經網絡會提取圖像目標的關鍵特征,本文檢測目標有Car、Truck、Bus三類,每一類的特征如圖10各類目標特征圖所示,通過不同類別車輛在卷積網絡中呈現的不同特征,即可對其進行分類與檢測。

圖10 分類目標特征圖
本文使用以下指標對目標檢測結果進行評估:
AP(Average Precision)即平均精度,是主流的目標檢測模型的評價指標。要想正確的理解AP,需要用到Precision、Recall 以及IoU 這三個概念。交并比(IoU)衡量的是兩個區域的重疊程度,模型產生的目標窗口與原來標記窗口的交疊率,即為檢測的準確率IoU。計算公式如式(2)所示,理想情況下,IoU=1,即完全重合。

精準率與召回率(Precision &Recall):目標檢測領域,假設有一組圖片,里面有若干待檢測的目標,Precision就代表模型檢測出來的目標有多大比例是真正的目標物體,Recall就代表所有真實的目標有多大比例被模型檢測出來了。根據圖11,可以直觀地看出TP 表示樣本被分為正樣本且分配正確,TN 表示樣本被分為樣本且分配正確,FP 表示樣本被分為正樣本但分配錯誤,FN表示樣本被分為負樣本但分配錯誤。計算Precision 和Recall的值依靠如式(3)、(4)所示:


圖11 TP、TN、FP、FN示意圖
根據公式計算數值后可以畫出一條P-R 曲線,而AP就是對PR曲線上的Precision值求均值,為了使得到的結果更準確,對P-R 曲線做平滑處理,用積分的方式計算平滑曲線下方的面積作為最終的AP值。計算公式如式(5)所示:

F1-Score 又稱F1 分數,是分類問題的一個衡量指標,常作為多分類問題的最終指標,它是精度和召回率的調和平均數。對于單個類別的F1 分數,計算公式如式(6)所示:

而后計算所有類別的平均值,記為F1,計算公式如式(7)所示:

mAP 即把所有的類別的AP 都計算出來然后求均值,計算公式如式(8)所示:

3.2.1 對不同場景下單標簽模型的評估
根據上述評估維度,本文對訓練出的不同應用模型采用對應的數據集中的測試集進行測試評估,評估結果如表3所示。

表3 單標簽模型評估結果 %
從表3可以看出,白天場景模型的車輛目標檢測效果最好,因為白天時段的可見度好、目標特征明顯,得到的模型也更加精準。隧道場景下的光照條件較差,且隧道中的車速較低導致車輛間距小,更易出現車輛互相遮擋情況,特別是卡車或公交體型較大的車對其他車輛的遮擋比較嚴重,從而影響車輛的整體檢測效果。夜晚模型的檢測效果相對其他模型來說表現較差,這是由于夜晚時段目標的特征太難分辨,而且夜晚監控中的車輛燈光曝光度很大,使得目標的種類很難被辨認出來,導致檢測效果不佳。從整體來看,所有模型的Bus檢測準確率比其他類別低,主要因為Bus的樣本數量大大少于其他類別。不過三種不同模型的mAP 都達到了80%以上,白天模型更是突破了90%,所以本文提出的模型是可靠的且完全適用于高速公路場景。
同時,檢測網絡無法精準的檢測到小目標一直是目標檢測中的一個關鍵問題,如圖12 所示的實驗測試結果,網絡對圖像中小目標的檢測效果良好,即使視頻遠端的小目標也可以被正確的檢測出來。

圖12 小目標檢測測試結果
3.2.2 對隧道多標簽模型的評估
隧道多標簽實驗使用隧道場景測試視頻,輸入32 705幀分辨率為1 920×1 080 的視頻,在車輛類別正確的情況下,統計車輛顏色是否正確。多標簽模型實驗結果如圖13 所示,多標簽模型車輛類別的統計結果如表4 所示,多標簽車輛顏色統計結果如表5所示。

圖13 多標簽模型實驗結果

表4 多標簽模型車輛類別評估結果
從圖13中的左圖可以看出當車輛在特征容易分辨的監控近端時,車輛類別和顏色都可以正確的檢測出來,多標簽結果也正確標注在圖上。從圖13 中的右圖可以看出,當車輛行駛到視頻遠端區域成為形變明顯的遠端小目標時,車輛類別仍然可以準確檢測,但由于距離過遠以及隧道光線昏暗,顏色信息無法準確獲得,網絡會對顏色標簽進行缺省。
表4 展示了多標簽模型實驗中車輛類別的統計結果,三類車輛的檢測準確率均可以達到90%以上,Bus的準確率略低,主要原因是Bus的樣本數量與其他兩類樣本數量有較大差距,樣本豐富程度不足,且Bus 的特征在光照不好的隧道場景下容易與Truck 產生混淆,從而導致檢測準確率下降。
從表5 中可以看出,在車輛類別正確的前提下,檢測到的顏色標簽實際數量可以達到車輛實際數量的85%~92%,整體檢測準確率可以達到應用要求。準確率較低的情況普遍是由于顏色類別所對應的車輛數目較少,特別是卡車和公交的樣本顏色分布不均,模型對樣本數量小的顏色識別準確率有限,后期可通過增加樣本顏色數量來提升檢測精度。

表5 多標簽模型車輛顏色評估結果
進行車輛目標檢測效率實驗,實驗輸入一個總計44 094 幀分辨率為1 920×1 080 的視頻,驗證圖像拼接帶來的速度效率提升效果,整體實驗流程如圖14所示,得到正確的檢測結果后,根據不同位置圖片對應的坐標位置對檢測結果進行修改,完成檢測結果的分解如圖15所示。用無拼圖網絡和拼圖網絡分別進行測試并統計測試結果,測試結果如表6所示。

表6 圖像拼接網絡實驗結果

圖14 圖像拼接網絡實驗流程
如圖15(a)所示,輸入四張原始圖像,經過拼接網絡拼接拼接后執行檢測,得到拼接圖像的檢測結果如圖15(b)所示,此時的檢測結果坐標是依據拼接后的圖像得到的,需要對結果進行分解,檢測結果正確的顯示到各原始圖像上如圖15(c)所示。

圖15 拼接網絡結果分解
坐標分解情況如圖16所示,其中x、y代表檢測框的左上角坐標,w、h代表檢測框的寬高。通過檢測框的坐標信息,將檢測框回歸到原始圖像上,例如第一行的第一張圖對應的檢測框坐標x應當小于1 920,y應當小于1 080,第一行的第二張圖對應的檢測框坐標x應當大于1 920并小于3 840,y應當小于1 080,以此類推,將拼接檢測結果正確地回歸到原始圖像。

圖16 坐標分解結果
根據表6 中數據可以看出在保證平均檢測精度(mAP)的同時,使用拼圖檢測網絡的檢測速度得到了大幅度提升,檢測效率的提升可以使網絡可以更好滿足實際工程需要,為后期應用奠定了良好的基礎。
本文首先構建了一個數據樣本豐富的高速場景多樣化數據集,數據集涵蓋全天候下的高速公路監控不同路段以及不同視角的眾多場景,提供了一個針對高速場景下車輛目標檢測適用性極強的數據集。同時,本文使用YOLOv4網絡進行目標檢測,多樣化數據集從根源上增加了對車輛目標的檢測精度,基于該網絡本文研究了多標簽檢測與拼圖檢測的方法,多標簽檢測豐富了目標檢測的結果,有利于構建更完善準確的車輛信息庫,以便于進一步的交通監測和優化。拼圖檢測大幅提升了網絡運行效率,更加符合工程實踐要求,這些改進能夠在實際應用中發揮重大作用。