視頻圖像中的車輛檢測跟蹤和分類
摘 要:介紹了一種在固定的單攝像頭拍攝的交通圖像序列中檢測、跟蹤、分類車輛的方法。該方法大致可分為三部分:抽取背景圖像和圖像分割;基于針孔模型的攝像機定標,計算透視投影矩陣;利用區(qū)域特征進行匹配跟蹤,建立目標鏈,恢復目標三維信息,采用模型匹配法對車型分類。實驗證明該方法簡單可行。
關鍵詞:圖像分割 車型識別 目標跟蹤 模型匹配
在現代交通管理和道路規(guī)劃中,交通流量和通行車輛的類型、速度是重要的參數。自動獲取這些數據的方法大致可以分為兩類:一類是利用壓電、紅外、環(huán)形磁感應線圈等傳感器獲得車輛本身的參數,這類方法跟蹤識別率較高,但是容易損壞,安裝也不方便;還有一類就是基于圖像處理和模式識別的方法,克服了前面一類方法的局限,由于圖像處理識別技術的進步和硬件性價比的大幅提高,有一定實用價值的系統(tǒng)已經出現。這些系統(tǒng)的使用證明:圖像處理識別車型的方法日趨成熟,環(huán)境適應能力較強,能長期穩(wěn)定工作,但是計算量大,識別正確率不如感應線圈、激光讀卡等方法高。本文的研究屬于后者,利用安裝在高處的單個靜止攝像頭監(jiān)視路面,利用運動分割與模型匹配的方法,檢測并統(tǒng)計多車道的車流信息。
整個識別過程分三步:分割、跟蹤和車型判定。運動目標的分割常采用幀差法。在監(jiān)控場合,攝像頭大多是固定的,背景基本沒有變化或者變化緩慢,可以從圖像序列中逐漸取出背景圖像,然后利用幀差法檢測出目標區(qū)域,同時還可以檢測靜止目標。由于識別過程中利用二值邊緣圖像,所以本文在圖像分割中對輸入圖像進行了梯度二值化處理。三維空間和二維圖像平面之間映射關系的確定,采用基于針孔模型的攝像機定標來計算。對目標區(qū)域的跟蹤,采用了區(qū)域特征向量的匹配跟蹤方法,減小了運算量。由于圖像處理的方法很難提取輪數、軸距等車輛本身參數,所以在圖像車型識別中一般都采用三維模型在圖像上投影和車輛邊緣相匹配的方法。
1 背景重建和圖像分割
由于攝像頭固定,背景變化緩慢,因此,可以利用圖像序列逐漸恢復出背景圖像。其基本原理是:對每一個像素進行監(jiān)控,如果在較長時間內灰度不發(fā)生明顯變化,則認為該像素屬于背景區(qū)域,將該像素灰度值復制到背景緩沖區(qū),否則屬于前景區(qū)域[1]。由于光照以及車輛陰影等影響,采用這種方法恢復出來的背景圖像存在較大噪聲。因此在實驗中對原始輸入圖像進行了梯度二值化處理,然后進行背景重建。這樣可以減小陰影的干擾,加快背景重建速度。由于識別是利用邊緣信息,所以梯度化對后面的識別過程沒有影響。
在得到背景邊界圖像后,利用幀差法可以分割出感興趣的目標。但是,如果目標區(qū)域和背景邊界重合(值都為"1"),相減之后該目標區(qū)域被錯誤判定為背景區(qū)域 (值為"0")。為了減小錯誤判決區(qū)域,本文在分割時參考了相鄰兩幀的二值化幀差fdmask,判決準則如下:如果fdmask中某像素為"0",則輸入圖像和背景圖像相應像素相減;否則直接復制輸入圖像中相應的像素值。分割結果經過噪聲消除、形態(tài)學平滑邊界、種子填充、區(qū)域標記等后續(xù)處理,就分離出了目標。
2 攝像機定標
在模型匹配中,需要從二維圖像恢復目標三維信息,同時將三維模型投影到圖像平面上,因此必須計算三維空間到圖像平面的投影關系矩陣。這個過程就是攝像機定標。本文采用基于針孔模型的攝像機定標方法,其基本原理是利用給定的一組三維世界的點坐標和這些點在圖像中的坐標,求解線性方程組,計算透視投影矩陣中的各個元素[2]。透視投影矩陣如下:
其中:(u,v)是圖像坐標,(Xw,Yw,Zw)是三維坐標,M為投影矩陣,Zc為三維空間中點到攝像機鏡頭的矢量在主光軸上的投影距離。要求解M的各個元素,根據文獻[2]介紹需要6個點的投影關系組成12階的方程組,通常方程組不獨立,沒有唯一解,采用近似計算的誤差較大。在(1)式基礎上經過變形,將12階方程分拆成三個4階方程組,只需要利用4個點的投影關系,方程組的階次也只有4階,可以有效避免出現奇異矩陣,求出唯一解。由式(1)可以得出:
另外,除了4組點的坐標之外,還需測定鏡頭主光軸的水平垂直傾角。
3 車輛的跟蹤和分類
在區(qū)域分割后,接下來進行區(qū)域跟蹤,利用相鄰兩幀的區(qū)域匹配從而在圖像序列中建立目標鏈,跟蹤目標從進入監(jiān)視范圍到駛離監(jiān)視范圍的整個過程。首先要確定匹配準則。常用的圖像匹配方法有 Hausdorff 距離匹配法和圖像互相關。這兩種方法都需要逐個像素的計算。為了減小計算量,采用區(qū)域特征跟蹤法。目標區(qū)域的特征包括區(qū)域形心坐標、區(qū)域包圍矩形、區(qū)域運動速度及運動方向和區(qū)域面積。本文匹配準則采用了兩個假定:同一目標所對應區(qū)域在相鄰兩幀中面積相近;同一目標在前一幀中的區(qū)域形心加上運動速度所得到的形心預測值與后一幀中區(qū)域形心距離相近[3]。跟蹤過程如下:
(1)將第一幀的各個區(qū)域當作不同的目標,對各個目標區(qū)域啟動目標鏈。
(2)根據判決準則,如果某目標鏈中的區(qū)域在當前幀找到了匹配區(qū)域,則用找到的匹配區(qū)域特征更新該目標鏈中的區(qū)域特征。
(3)如果在形心預測值所在位置,當前幀區(qū)域和目標鏈中區(qū)域面積相差很大,則可以認為發(fā)生了合并或者分裂現象。對目標鏈中的區(qū)域包圍矩形,在本幀查找該矩形覆蓋了幾個區(qū)域,如果多于一個區(qū)域,則認為發(fā)生了分裂現象。對分裂現象出現的新區(qū)域,啟動新的目標鏈。同理,對于本幀區(qū)域的包圍矩形,查找該矩形覆蓋了幾個目標鏈中的區(qū)域,如果多于一個,則認為發(fā)生了合并現象,利用合并區(qū)域啟動新的目標鏈,同時終止那些被合并區(qū)域的目標鏈。
(4)對于目標鏈中的區(qū)域,如果在本幀沒有與之相匹配的區(qū)域存在,則認為發(fā)生了消失現象。目標鏈并不立即終止,只有在經過數幀仍沒有找到匹配之后,才終止該目標鏈。
(5)查找本幀是否還存在新進入的區(qū)域,如果存在,則啟動新的目標鏈。
采用這種方法可以快速跟蹤圖像序列中的目標,同時得到車輛在監(jiān)視范圍的平均速度。在計數時,只有目標在連續(xù)數幀里出現才認為是一個真正的目標區(qū)域,只有目標在連續(xù)數幀都沒有出現才認為消失,因此可以消除那些暫時消失引起的計數錯誤。
車輛分類是個很復雜的問題。圖像處理方法要獲取輪數、軸距等車輛本身參數比較困難,因此圖像識別車型通常采用模型匹配方法?,F有的研究大多是先抽取馬輛的幾條直線邊緣,然后用線條和模型邊緣匹配。由于在圖像中抽取直線本身的計算量相當大,所以本文沒有抽取車輛邊緣直線,而是直接利用了Canny邊緣檢測的整體結果與模型相匹配。Canny邊緣與模型邊緣之間存在較大的形變,Hausdorff距離匹配對形變不敏感,所以采只Hausdorff距離作為匹配準則是很適宜的[4]。
||bj-ai||(A,B)被稱為從A到B的有向Hausdorff 距離,它反映了A到B的不匹配程度。h(B,A)的意義與h(A,B)相似。在具體計算Hausdorff 距離時,通常采用距離變換的方法。車型分類步驟如下:
(1)在分割結果的基礎上,對目標區(qū)域進行Canny算子邊緣檢測[5],僅僅處理分割出的目標區(qū)域的邊緣,減小了運算量。
(2)對Canny邊緣,采用串行距離變換,得到距離邊換圖像。距離變換圖像的每個像素灰度值等于該像素到目標邊緣的最近距離。
(3)對各分割目標,恢復車輛的三維信息,只計算長度和寬度。由于二維圖像平面上一點對應了攝像機坐櫥中不同深度的一系列點,所以在從圖像上一點恢復到該點在世界坐標中的信息時,首先要給定該點在世界坐標中一個分量以減少不確定度(這樣恢復出來的數值有些誤差,通常給出Z方向高度值Zw)。
(4)在計算目標區(qū)域長度和寬度的同時,可以求出車輛底盤形心在地面上的位置(X,Y),根據速度方向判斷車輛在地面上的角度α。利用車輛本身的三維模型數據以及(X,Y,α),通過式(1)透視投影,消隱處理,可以確定車輛模型在圖像平面上的投影。
(5)當目標進入指定區(qū)域后,以模型投影圖像為核板,將投影圖像在距離變換圖像上移動,在每一個位置,求出模型投影圖像下距離變換圖像被模型輪廓線覆蓋的像素值之和,以這個和值作為在該位置當前模型與實際車輛的匹配程度。將當前模型在各位置所得匹配程度的最小值作為當前模型與車輛的實際匹配程度,該最小值除以模型輪廓線的像素數目,即該模型與車輛之間的Hausdorff距離。對各種模型,分別求出它們與車輛之間的Hausdorff距離,取其中最小值對應的那種模型即為車型識別結果。實驗過程中為了減小計算量,搜索方法采用了三步搜索法。
4 實驗結果
本實驗所采用的352x288視頻圖像,來自采用單千固定CCD攝像機于杭州天目山路拍攝的交通場景片斷。主要算法在Trimedial300 DSP上用C語言實現,在圖像分割過程中進行了較多的梯度、降低噪聲、填充和標記運算,平均處理一幀大約耗時0.3s。算法流程的全過程如圖1所示。
實驗證明,抽取背景和當前幀之間進行差異檢測,分割較為準確。對于比較淡的陰影,用梯度二值化方法可以部分消除陰影影響。由于只監(jiān)視邊緣變化部分,背景重建速度比直接利用灰度圖像重建背景快很多,干擾也較小。梯度二值化處理之后重建背景只需150-200幀,而不經過梯度二值化處理在上千幀之后仍然沒有較好的背景,并且點狀噪聲和云霧狀模糊比較嚴重。
跟蹤計數的結果表明,利用形心和面積作為特征,可以快速跟蹤圖像序列中的目標,計數正確率可達95%。計數誤差主要在于遮擋引起的分裂合并處理不能完全如實反映目標的運動,把合并區(qū)域當作新出現的區(qū)域。如果合并區(qū)域再次分裂,分裂出來的區(qū)域就會被當作新區(qū)域,造成計數偏大。為了簡化跟蹤算法,實驗僅在相鄰兩幀之間進行跟蹤匹配,這樣處理分裂合并的能力并不強,如果在多幀之間進行跟蹤,效果會好一些,但是算法比較復雜。
對于大小相差懸殊的車輛,如公共汽車和轎車,根據長度、寬度信息就很容易分別開來,根本不用進行后面的模型匹配。所以本文試驗主要針對了街道上常見的大小相差不太大的車輛,將它們分成了轎車、輕卡和面包車。試驗證明:直接利用Canny邊緣,根據Hausdorff距離匹配可以有效地對車型加以判別。由于沒有逐條抽取邊緣直線來與模型輪廓線匹配,計算量大為減小,算法實現簡單。由于轎車的外形大小變化相對較小,識別正確率最高,可達90%;輕型卡車次之;面包車的識別率最低,大約50-60%,錯誤部分主要被識別成轎車,主要原因是面包車的大小相差很大,模型匹配方法的一個不足也在于此。要提高識別率,模型細分是必需的工作。本試驗中攝像頭安裝在街道的前方,由于車輛最顯著的外形特征在于側輪廓,所以如果攝像頭安裝在街道旁邊拍撼車輛的側面圖像,可以認為識別效果應該會更好一些:另外,Canny算子的邊緣效果不是很好,噪聲比較大,也影響了判決結果。如果采用Hough變換抽取車輛邊緣的直線,計算量較大。如果陰影比較嚴重,還需要進行專門的去陰影處理。這些都是下一步工作要解決的問題。
參考文獻
1 Shao-Yi Chien,Shyh-Yih Ma,Liang-Gee Chen。Efficient,Moving Object Segmentation Algorithm Using Background Registration Technique.IEEE Trans.Circuits and Systems for Video Technology.2002;12(6):577-586
2 孫慧,張燕.計算機視覺攝像機定標中投影矩陣的計算.河北師范大學學報,2001;126(1):26-28
3 張嫣,姚耀文,唐華松.動圖像序列中多目標跟蹤的研究與實現.計算機應用研究,2002;(1):74-76
4 Gunilla Borgefors.Distance Transformations in DiSital Images.Computer Vision,Graphics,and lmage Processing,1986;34:344-371
5 楊枝靈.Visual C++數字圖像獲取處理及實踐.北京:人民郵電出版社,2003
c++相關文章:c++教程
攝像頭相關文章:攝像頭原理 全息投影相關文章:全息投影原理
評論