胡繼華,程智鋒,鐘洪楨,靖澤昊,張力越
(中山大學 a.公共實驗教學中心;b.廣東省智能交通重點實驗室;c.數據科學與計算機學院,廣州 510006)
隨著多旋翼無人機技術的成熟,無人機(UAV)視頻已經能夠用于道路交通調查[1]。道路交叉口車流量調查是交通調查的重要部分,是對路口車輛直行、左轉或右轉等運動方向進行跟蹤并統計出各方向的車流量,為路口紅綠燈配時和渠化提供依據[2]。常用的做法是將無人機懸停在道路交叉口的中心上方,對交叉口范圍進行垂直拍攝,獲取交叉口車輛等運動目標的視頻,然后對各種車輛進行檢測、跟蹤,最后進行統計,得到各個方向的車流量,完成交通調查。
車輛檢測和跟蹤是路口交通調查的關鍵,后續的流量統計和分析都是建立在高精度的車輛檢測跟蹤基礎上。常用的車輛檢測算法分為兩類,一類是將運動前景和背景分離的方法,獲取車輛前景區域,如背景差法和幀差法,這種方法依賴于高質量的背景圖像和車輛的速度等運動特征[3];另一類是采用機器學習方法,根據車輛的顏色、角點和尺度特征,對車輛樣本和非車輛樣本進行計算和學習,如基于HOG特征方法[4]、基于HAAR特征方法等[5-6],然后直接對視頻幀上的車輛進行識別。這種方法需要大量的訓練才能達到高精度,對車輛周圍環境也很敏感,而各個交叉口的環境恰恰各不相同,給應用這類算法帶來困難。視頻車輛跟蹤是近年來計算機視覺等領域研究的熱點,先后出現了各種算法和方法,包括基于特征的方法[7],基于濾波理論的方法[8],以及近年來出現的機器學習的方法等[9-10]。這些算法跟蹤的車輛較少,或者跟蹤的方向比較單一,不能滿足交通調查的要求。另外,和固定視頻相比,無人機視頻同時記錄了無人機的傾斜、旋轉和漂移等運動,因此不能直接應用固定視頻場景下的車輛檢測和跟蹤算法。
本文針對道路交叉口車流量調查的普適性、高精度等實際要求,以及交叉口附近車輛的運動特征,提出了一種無人機視頻中的道路交叉口車輛檢測和跟蹤方法。該方法通過視頻穩像和道路交叉口行車區域定位,將無人機視頻場景轉換為固定視頻場景,從而可以使用固定視頻場景下的車輛檢測和跟蹤算法,并將車輛檢測和跟蹤分成獨立的兩個階段,使用背景差法檢測車輛,然后使用置信度指標進行車輛跟蹤。方法包括視頻穩像、背景提取和交叉口行車區域定位、車輛檢測、車輛跟蹤等步驟。最后使用實際的道路交叉口無人機視頻,對算法進行實驗驗證。
道路交叉口一般有斑馬線標志的人行橫道。各個斑馬線軸線相交圍成的區域就是交叉口行車區域,進出交叉口的車輛都經過該區域,因此在該區域進行調查能夠滿足車流量調查的要求。在區域內,車輛一般是運動的,這有利于背景差法識別車輛。同時,僅在區域內進行車輛識別和跟蹤,可以排除很多道路標志標線、道路設施或行道樹等的影響,以及車輛等候紅燈或避讓行人的影響。因此,對無人機視頻進行穩像后,定位道路交叉口行車區域,在區域內進行車輛識別和跟蹤,就將無人機視頻場景轉化為固定視頻場景,可以使用固定場景下的車輛識別和跟蹤算法。
定位道路交叉口行車區域,關鍵是識別斑馬線,然后擬合出各個斑馬線的軸線,并對軸線相交形成的區域進行縮小處理,就可得到行車區域。
斑馬線的識別算法包括雙極系數法[11]、等高線法[12-13]和滅點法[14]等方法。前兩種方法精度都比較低,只能識別出斑馬線的大致范圍(一般是外包矩形),而等高線法可以提取斑馬線條帶的輪廓,故本文采用等高線法識別斑馬線。等高線法是一種邊緣檢測算法,其輸入是二值圖像,即高斯混合模型背景建模得到的背景圖像的二值化。輸出是各種地物的輪廓多邊形,其中包括斑馬線條帶的多邊形。然后根據斑馬線條帶的面積特征、形狀特征和等間距特征,將其他多邊形過濾掉,剩下的基本是斑馬線條帶的多邊形。
接著計算出這些多邊形的中心點,并使用聚類算法或隨機森林算法對中心點分類,分類的依據是相鄰斑馬線條帶多邊形中心點的距離,這樣得到多組分類結果,對應了實際路口的斑馬線。由于車輛或行人的遮擋,或者斑馬線條帶過于模糊,部分斑馬線條帶沒有識別出來,會導致某組斑馬線條帶個數過少(如小于4),如果這樣,就放棄這組斑馬線。最后得到多組斑馬線,每組設為Sk。
一般來說,一組斑馬線條帶的中心點都在斑馬線軸線上,因此,采用最小二乘法對各組斑馬線的中心點進行直線擬合。設Sk組中心點擬合的直線方程為:

初步的結果出來后,對各個斑馬線軸線進行判斷,如果兩條斑馬線接近平行且距離很近,那么這兩條直線可能同屬于一條斑馬線的軸線,則將這兩組斑馬線條帶合并為一組,重新進行直線擬合。
得到各條斑馬線軸線后,計算各軸線的交點,各交點順序連接形成的區域就包含了道路交叉口行車區域,區域的中心即位道路交叉口的中心。再將各個軸線向道路交叉口中心平移半個斑馬線條帶長度的距離,此時圍成的區域就是道路交叉口行車區域。
在道路交叉口無人機視頻中,車輛的影像基本為正射投影影像,其顏色特征和幾何特征都比較簡單,很多車輛的影像特征存在相似情況,所以必須結合運動特征才能正確跟蹤。本文提出了置信度指標,用于度量前后幀中車輛影像是否屬于同一車輛。該指標綜合了車輛影像直方圖相似度、速度相似度和方向相似度,經過加權計算出指標值,實現車輛跟蹤,計算公式如下:
Ic=αR(H1,H2)+βVs+γDs
(1)
式中:Ic是置信度指標;R(H1,H2)是車輛影像直方圖相似度,H1,H2是前后幀中車輛影像的直方圖;Vs和Ds分別是速度相似度和方向相似度;α、β、γ是權重系數,且α+β+γ=1。
(1)直方圖相似度計算。圖像直方圖計算量小,具有圖像平移、旋轉、縮放不變性等優點,車輛的轉彎、掉頭行為對其影響不大。在車輛直方圖相似度上,采用相關系數進行度量。相關系數不是直接比較兩個直方圖在每個灰度值上的匹配程度,而是給出兩個直方圖的線性相關程度,這樣可以增加直方圖相似度計算的抗干擾能力,進而提高算法魯棒性。相關系數公式如下:

(2)
將上式中的隨機變量替換成車輛直方圖并展開得:
r(H1,H2)=
(3)
式中:Hk=1,2是歸一化后的直方圖,H1是車輛的顏色直方圖,H2是當前時刻待跟蹤的車輛的顏色直方圖,且
(2)速度相似度。因為車輛直方圖比較簡單,在同1幀上或相鄰幀上可能存在多個相似的車輛直方圖,因此還需要結合車輛的運動特征,即車輛的速度和方向信息進一步判斷。這里車輛的速度使用當前幀中車輛圖像和前1幀中車輛圖像的像素距離,表示為
(4)
式中,Δ是一個極小量,防止分母為0。
如果速度相同,則其相似度為1;否則速度差別越大,其相似度越小。
(3)方向相似度。方向相似度的采用速度的方向值
Ds=cos〈vnew,vold〉
(5)
計算車輛速度方向的夾角。
技術流程如圖1所示,包括視頻穩像、背景建模、斑馬線識別、交叉口行車區域計算、車輛提取、去噪處理和車輛篩選等步驟。
(1)前景提取。使用背景差分法,用輸入的視頻幀的幀減去背景圖像,即可得到前景圖像,然后保留交叉口行車區域的圖像,其他區域的舍棄。
(2)去噪處理。前景影像里面可能仍舊有一定的細小密集的噪聲點,需要使用腐蝕膨脹操作去除這些噪聲點,同時保證車輛形狀較為完好;對于剩余的噪聲,用中值濾波進一步處理。最后,使用二值化操作加強目標效果。

圖1 車輛檢測和跟蹤技術流程
(3)車輛篩選。在道路交叉路口會有非機動車、人力三輪車、行人等干擾,會對識別造成一定的影響。因此需要設定識別目標大小的范圍,包括目標大小的上界和下界,將非車輛目標和其他因素排除,剩下的目標就是車輛的影像了,將它們的范圍用矩形標示出來,就得到了車輛識別結果。
車輛和道路交叉口的關系可以分為剛進入交叉口的車輛,在交叉口中行使的車輛,以及離開交叉口的車輛。對于剛進入交叉口的車輛,必然不屬于已經跟蹤到的車輛集合,即其置信度必然小于一定的閾值,此時應增加一個新的車輛跟蹤類,對該車輛進行跟蹤。對于在交叉口中行使的車輛,不斷計算后續幀中車輛影像屬于該車輛的置信度,選擇其中置信度最大的車輛影像作為該車輛的最新蹤跡。對于離開的車輛,應該檢測不到置信度大于閾值的車輛影像,如果這種狀況持續一定時間,即停止對車輛進行跟蹤。
本次實驗的道路交叉口位于廣州大學城,一個是廣州中醫藥大學和廣東外語外貿大學校區之間的中環東路與大學城北四路交叉口;另一個是中山大學西門旁邊的中大西路與中環東路交叉口。所用的無人機為大疆精靈3專業版,高清攝像頭。無人機在距離道路交叉口地面正上方100 m高度懸停,正射拍攝,視頻30幀/s,分別得到視頻1和2,時長13 min左右。兩個交叉口有人、非機動車等非檢測跟蹤目標干擾,同時又有樹木遮擋等因素影響,是一個較為復雜的環境。
首先進行視頻穩像,然后進行背景建模,從圖2(b)可以看出,視頻拍攝期間無人機存在旋轉抖動等現象,由于進行了穩像處理,那些沒有像素值的區域全部補0,所以圖像周圍存在一定的黑邊現象,但不影響后續車輛檢測。

(a) 視頻1原始視頻圖像(b) 視頻2穩像后的圖像

(c) 視頻1交叉口行車區域定位結果(d) 視頻2交叉口行車區域定位結果
圖2 無人機視頻穩像和路口定位結果
接著計算交叉口行車區域,對兩個交叉口都進行了處理。視頻1路口是普通的斑馬線,視頻2路口是特殊的斑馬線,因為每條斑馬線的一半被涂上了紅白色的油漆,使斑馬線更加突出(圖2(b))。本文的算法準確地計算出了兩個視頻中的路口行車區域,分別如圖2(c)和2(d)所示,其中黑色虛線是計算出的斑馬線軸線,黑色實線圍成的矩形就是路口行車區域。
行車區域確定后,按照技術流程進行車輛檢測。從圖3可以看到,深色小汽車、淺色小汽車和公交車輛都被正確地檢測出來,摩托車等干擾也被排除掉。

(a) 小汽車檢測結果(b) 公交車和小汽車檢測結果
圖3 車輛識別結果
兩個視頻里面的車輛都進行了檢測,結果見表1,視頻1共有835個車輛影像,正確檢測了789個車輛影像,正確率為94.49%;視頻2共有1 853個車輛影像,正確檢測了1 841個車輛影像,正確率為99.35%,顯示本方法的精度相當高。

表1 視頻1和視頻2的車輛識別評價結果
視頻上的車輛全部檢測完畢后,再使用跟蹤算法進行車輛跟蹤,跟蹤到的車輛用黑色矩形框表示,軌跡用白色線表示,跟蹤的部分結果見圖4,圖中共4個圖片,抓取了跟蹤過程中從視頻1的1 421幀開始,每隔20幀一幅圖的結果圖片。從圖中可以看出,跟蹤結果相當好,淺色和深色的車輛都被跟蹤到了,其中深色車的轉彎行為也被跟蹤出來。

(a) 第1 421幀(b) 第1 441幀

(c) 第1 461幀(d) 第1 481幀
圖4 部分車輛跟蹤結果
視頻1車輛跟蹤結果如表2所示,其中第2列是本文算法結果,第3列人工標定結果,即人工從視頻上統計的結果。從表中可以看出,12個車輛行駛方向中,只有左往上方向和右往上方向漏跟蹤了個別車輛,其他方向的車輛全部正確跟蹤,總的正確率為95.50%。

表2 道路交叉口車輛跟蹤結果
本文以道路交通調查為應用場景,提出了基于無人機視頻的道路交叉口車輛檢測和跟蹤方法。由于道路交叉口場景復雜,干擾因素多,本文將車輛檢測的范圍縮小到交叉口行車區域,提高了車輛檢測的速度和精度。針對實驗視頻,車輛檢測的精度分別達到94.49%和99.35%。然后使用車輛跟蹤模型計算車輛影像的區域直方圖相似度、車輛速度相似度和方向相似度,得到各視頻幀里面的車輛影像屬于某一車輛的置信度,從而實現車輛的跟蹤。該模型也被應用到實驗視頻中,精度達到95.50%,顯示該方法能夠應用于道路交通調查。