田會娟 ,劉嘉偉,翟佳豪,鄧琳琳
(天津工業(yè)大學,a.電子與信息工程學院;b.天津市光電檢測技術與系統(tǒng)重點實驗室,天津300387)
道路車速的準確估計是智能交通(ITS)技術的重要組成部分,是提高道路安全最有效的手段之一[1]。目前,車速的測量方法主要有:感應線圈測速、激光測速、雷達測速和視頻測速。前3 種測速方法需要預先安裝相應的檢測設備,對人力物力都具有較高的要求[2],相比而言,視頻測速具有檢測范圍廣、獲取信息豐富、設備投入低、維護更簡便等優(yōu)點,受到國內外學者的廣泛關注。
視頻車速檢測方法主要分為:攝像機標定法和虛擬線圈法。傳統(tǒng)的攝像機標定法主要通過對攝像機作旋轉、平移或平面正交運動獲得多幅圖像,并對其進行處理實現,該類方法需改變攝像機位置或姿態(tài)來完成參數標定[3],而目前大部分道路監(jiān)控設備不能滿足該要求[4]。KOCUR V.等[5]用視頻圖像中的消失點來標定攝像機的內部參數(焦距)和外部參數(位置、俯仰角、側傾角、旋轉角),構建圖像坐標和世界坐標的精確映射關系以用于車速檢測。陳珂等[4]用視頻中的消失點和車輛的平均寬度來自動標定攝像機參數進行車速檢測。虛擬線圈法通過在道路上設置虛擬線圈取代真實的地面感應線圈來檢測車輛速度,如RAJ A.等[6]利用背景差分法跟蹤視頻中的車輛,并通過在道路上設置已知長度的虛擬線圈來檢測行駛中車輛的速度。JAVADI S.等[7]利用入侵線代替虛擬線圈來檢測視頻中的車輛速度,并通過考慮攝像機的幀率來提高測速精度。攝像機標定法對拍攝角度要求嚴格,并且需要標定多個相機參數,計算復雜度高;虛擬線圈法計算復雜度低,但由于攝像機的時間采樣特性,車輛經過虛擬線圈的時間間隔無法準確測量,測速誤差較大。
本文提出一種基于多入侵線的視頻車速檢測方法。該方法在視頻中布設已知相對距離的多條入侵線,通過檢測車輛經過每條入侵線時的幀數;結合攝像機的采樣時間和入侵線間的距離生成車速的概率密度函數模型;基于該模型,采用Deepsort+YOLOv5算法追蹤車輛軌跡,實現視頻中的車速檢測。該方法計算簡單、測速精度高,能滿足實際車速檢測要求。
多入侵線檢測場景如圖1所示,各入侵線之間的距離已知,由攝像機采集車輛進入入侵線時的位置、幀數等信息。其工作原理為:當車輛經過入侵線時,向檢測系統(tǒng)發(fā)送信號并記錄當前的幀數,車輛經過所有的入侵線后,根據檢測到的幀數、攝像機采樣時間、各入侵線間距離,對車速進行檢測。
圖1 多入侵線檢測場景Fig.1 A detection scene with multiple intrusion lines
圖2 為攝像機采集視頻中車輛經過入侵線時的位置,圖2(a)~(c)依次為視頻中第i幀、第i+1 幀和第i+2 幀時車輛的位置,且第i+1幀為車輛剛好經過入侵線時的位置。
圖2 車輛經過入侵線時的位置Fig.2 Position of vehicle passing intrusion line
當檢測到車輛經過入侵線時,車輛的位置通常會與入侵線存在一段初始距離γ,如圖3所示。初始距離γ滿足0<γ<Γ,其中,檢測距離Γ為車輛出現在入侵線后的可能范圍,計算公式為車輛在相鄰兩幀間的位移(m),即
圖3 車輛速度為v 時的初始距離γFig.3 Initial distance γ at vehicle speed v
式中:T為攝像機的采樣時間(s);v為車輛速度(m·s-1)。
在有多條入侵線的情況下,車輛檢測如圖4所示。車輛經過各入侵線與第1 條入侵線的幀數差nm=fm-f0,距離差dm=xm-x0(m),其中,fm為車輛經過每條入侵線時檢測到的幀數,xm為每條入侵線的位置,f0為車輛經過第1條入侵線時檢測到的幀數,x0為第1 條入侵線的位置,m=0,1,…,M,M+1 是入侵線的數量。同時,根據式(1),任意兩條入侵線之間的距離dm+1-dm應大于最大檢測距離Τvmax,vmax是道路車輛最大限速。
圖4 車輛經過入侵線時檢測到的視頻幀Fig.4 Frame of vehicle passing through intrusion lines in video
JAVADI S.等[7]基于兩條入侵線的車速檢測模型,利用車輛經過入侵線的幀數差和入侵線位置關系求解有效的檢測距離并估計車速,本文在此基礎上利用多條入侵線模型得到更精確的檢測距離來減小測速誤差。假設速度為v的車輛經過由4條入侵線構成的檢測系統(tǒng)時,攝像機拍攝到的車輛可能出現在檢測系統(tǒng)中的位置如圖5所示。
圖5 以不同入侵線為起始位置的重疊區(qū)域Fig.5 Overlap distance with different invasion lines as starting position
圖5中第(I)行為未考慮幀數時,基于入侵線間距離d1、d2、d3的一組車輛出現的位置;第(II)行為根據檢測到的幀數差n1、n2、n3得到的一組車輛位置;第(III)行中overlap1到overlap9為兩組位置的重疊區(qū)域,重疊區(qū)域滿足幀差關系以及車輛與入侵線的相對位置關系,是有效的檢測距離。同時,圖5(a)~(c)中的重疊區(qū)域都各自對應一個共同區(qū)域,如圖6(a)~(c)中的,其中,分別為車輛經過各入侵線與第1 條入侵線的幀數差和距離差。結合上述多入侵線模型求得的共同區(qū)域可對車速進行更精確的求解。
圖6 以不同入侵線為起始位置的共同區(qū)域Fig.6 Common area with different invasion lines as starting position
式中:m=0,1,…,M,k=m,m+1,…,M。
根據JAVADI S.等[7]的推導可得基于多入侵線的車速概率密度函數為
檢測速度E(V)為
通過初始化參數T和dm,結合式(4)~式(7),可模擬不同速度v時的檢測速度E(V),其中,車輛經過入侵線的幀數差nm[7]為
根據道路監(jiān)控范圍、攝像機的幀率、道路車輛的行駛速度,設定攝像機采樣時間T為1/30 s 和1/50 s,入侵線間隔d0、d1、d2、d3分別為0,3,6,9 m,初始距離γ為0 m 或v/100 m,模擬速度v在10~30 m·s-1范圍內按步長為0.25 m·s-1取值。為評估模型性能,定義評價指標:誤差率=。
圖7 為不同初始距離和攝像機采樣時間下的車速檢測評價指標分布。由圖7 可見,4 條入侵線法測量車速的誤差率通常低于2條入侵線法。圖7中,2條入侵線法的最大誤差率為9.21%,最大誤差為9.94 km·h-1。4 條入侵線法的最大誤差率為8.13%,最大誤差為7.12 km·h-1。與2 條入侵線法相比,4 條入侵線法最大誤差率降低了11.72%,最大誤差降低了28.37%。因此,4條入侵線法在一定程度上能提升車速檢測性能,同時,多入侵線法的最大誤差率不超過10%,符合電子違章監(jiān)控測速雷達系統(tǒng)要求的誤差率上限10%[4]。
圖7 評價指標分布Fig.7 Distribution of evaluation indexes
由于不同初始檢測距離會對仿真結果產生影響,表1給出不同初始檢測距離下的平均誤差率和最大誤差率,其中0<γ 表1 兩種方法的誤差率Table 1 Error rate of two methods 圖8 為2 條入侵線,間隔為9 m 和攝像機采樣時間T為1/50 s 時,不同幀差對應的車速概率函數。由圖8 可知,在幀差較大時,計算得到的車速概率值變化范圍更小。因此,根據式(8)可知,可通過減小攝像機的采樣時間、增加入侵線數量、增大入侵線之間的距離來提高測速精度。 圖8 概率密度函數仿真圖Fig.8 Probability density function under different frame differences 結合目標追蹤算法和速度估計模型可獲得車速的概率密度函數,實現車輛速度的計算。 本文采用YOLOv5 算法實現車輛定位。首先在視頻中利用YOLOv5 算法進行車輛檢測,再由檢測得到的質心坐標作為判斷車輛是否經過入侵線的特征點,如圖9所示,兩幀圖像分別為特征點還未經過入侵線和特征點剛好經過入侵線。為了便于車輛計數和車速檢測,車輛必須逐幀跟蹤,采用Deepsort[10]算法和YOLOv5[11]算法作為車輛跟蹤方法。 圖9 視頻中的車輛位置Fig.9 Location of vehicle in video 本文實驗環(huán)境為Python 語言,PyTorch 開發(fā)框架,OpenCV 庫。實驗使用的計算機配置為英偉達GTX1650GPU,CUDA11.0。采用捷克布爾諾科技大學的公開數據集BrnoCompSpeed 對該方法進行實驗驗證。公開數據集BrnoCompSpeed 共包含6個場景的視頻,有20865輛車經過,每個場景可分為左中右這3個視角,共約200 GB數據量,同時,視頻中的路面上存在測量好的距離標注,可在標注位置設置入侵線。圖10 為該數據集中的監(jiān)控圖像。在該數據集上進行速度估計模型的性能分析并與主流車速檢測方法進行對比。 圖10 BrnoCompSpeed數據集中的監(jiān)控圖像Fig.10 Surveillance images in BrnoCompSpeed data set 隨機選取視頻中經過的4 輛車,用4 條入侵線法和未改進的2 條入侵線法檢測車速。兩種方法檢測結果的誤差率分布如圖11所示。由圖11 可見,4 條入侵線法在兩種攝像機采樣時間下檢測車速的誤差均低于傳統(tǒng)方法。 圖11 誤差率分布Fig.11 Error rate distribution 4 輛車的車速檢測結果如圖12所示。由圖12可知,4 輛車的實際速度分別為:(Ⅰ)20.00 m·s-1,(Ⅱ)22.70 m·s-1,(Ⅲ)23.80 m·s-1,(Ⅳ)27.30 m·s-1。Τ=1/30 s 時,2條入侵線法的車速檢測結果分別為:(Ⅰ)20.78 m·s-1,(Ⅱ)22.53 m·s-1,(Ⅲ)22.53 m·s-1,(Ⅳ)27.09 m·s-1;4條入侵線法的車速檢測結果分別為:(Ⅰ)20.62 m·s-1,(Ⅱ)22.53 m·s-1,(Ⅲ)22.53 m·s-1,(Ⅳ)27.25 m·s-1。Τ=1/50 s 時,2條入侵線法的車速檢測結果分別為:(Ⅰ)20.41 m·s-1,(Ⅱ)22.46 m·s-1,(Ⅲ)23.65 m·s-1,(Ⅳ)26.44 m·s-1;4 條入侵線法的車速檢測結果分別為:(Ⅰ)20.32 m·s-1,(Ⅱ)22.88 m·s-1,(Ⅲ)23.86 m·s-1,(Ⅳ)26.99 m·s-1。與2 條入侵線法相比,4 條入侵線法的車速檢測結果更接近實際速度。同時檢測速度都在所求概率密度函數范圍內,這與設計的模型相符合。在攝像機采樣時間為Τ=1/50 s時,對于第4輛車,2條入侵線法檢測的誤差為0.86 m·s-1,誤差率為3.15%;4 條入侵線法檢測的誤差為0.31 m·s-1,誤差率為1.13 %。兩者的誤差相差0.55 m·s-1,誤差率相差2.02%。 圖12 車速檢測結果和車速概率密度函數Fig.12 Vehicle speed measurement results and probability density function on vehicle speed 對本文方法在BrnoCompSpeed 數據集上分別與主流視頻車速檢測方法FullAcc[8]、OptCalib[9]、OptScale[9]、OptScaleVP2[9]、OptCalibVP2[9]進行比較,主要評估指標為平均誤差率,結果如表2 所示。表2 中前兩行分別為GPS 測速和雷達測速的測量結果,作為非機器視覺的測速方法參與比較。由表2 可知,本文方法檢測車速的平均誤差率為1.40%,比OptCalib[9]視頻車速檢測方法提升了0.41%,僅次于雷達測速方法。圖13為誤差率分布的累計直方圖。由圖13可見,與其他方法相比,用本文方法對數據集中的全部車輛進行車速檢測,誤差率較低的車輛占比更大。 表2 不同方法檢測結果對比Table 2 Comparison of test results of different methods 圖13 誤差分布的累計直方圖Fig.13 Cumulative histograms of error distribution 本文提出基于多入侵線的視頻車速檢測方法,該方法采用Deepsort+YOLOv5 算法追蹤車輛軌跡,并結合多入侵線測速模型檢測車輛速度,實現視頻中的車速檢測。對多入侵線模型進行仿真分析,結果表明:在30~120 km·h-1的速度范圍內,測速系統(tǒng)在攝像機采樣時間為1/30 s和1/50 s時的總平均誤差率分別為2.54%和1.51%,并且可以通過減小攝像機的采樣時間、增加入侵線數量、增大入侵線之間的距離來進一步降低誤差。在Brno-CompSpeed數據集上,將該方法與目前主流的視頻車速檢測方法進行對比,結果表明,該方法檢測車速的平均誤差率為1.40%,優(yōu)于其他方法。 基于多入侵線的視頻車速檢測方法計算簡單、測速精度高,能滿足實際車速檢測要求。文中多入侵線的數量和位置要滿足實際拍攝條件,同時入侵線數量的增加會影響該方法實時性,需進一步結合實際情況,對入侵線的數量進行優(yōu)化,同時改進追蹤方法,有效提升不同場景下該車速檢測方法的應用能力。3 基于多入侵線的視頻車速檢測
4 實驗結果與分析
5 結論