李宇成,歐曉丹,宋燕輝,田 震
(北方工業大學 自動化系,北京100144)
車輛的實時檢測與跟蹤是智能交通系統的重要組成部分。在單目攝像頭視頻圖像下進行車流量統計[1]和多輛車同時跟蹤時,經常會出現多輛車圖像粘連,這主要是由于將道路交通的3D場景轉換成2D場景,損失了車輛空間位置信息導致的[2]。如果不能很好的將其分割,將直接影響跟蹤和統計的準確性。
目前常用的粘連車輛檢測和分割方法主要有:
①基于輪廓形狀的粘連檢測與分割[2-3],此方法基于車輛前景輪廓的凹凸性判斷是否存在粘連;②基于運動向量的粘連檢測與分割[2-4,9],此方法利用不同車輛幀間運動向量的不同來檢測并分割粘連車輛;③基于車輛局部特征的粘連檢測與分割[5-7],此方法通過檢測車輛的局部特征來檢測并分割車輛;④基于空間幾何特征的粘連檢測與分割[8-11],此方法利用空間幾何模型對車輛建模從而實現分割;⑤基于特征點的分割[12],此方法利用車輛特征點進行粘連車輛的檢測與分割;⑥基于預測模型的分割[13],此方法利用預測模型克服車輛粘連問題;⑦基于紋理特征的分割[14],利用紋理相關性分割粘連車輛。其中,基于特征的分割經常使用學習算法進行特征匹配,計算量較大,且特征選取直接影響分割效果。預測模型的方法需要知道未遮擋時的車輛圖像,只適用于車輛由近及遠的情況。
基于車輛幾何特征的分割方法適應性較好,文獻 [8-11]利用車輛輪廓建立空間透視模型,能夠實現復雜情況下的分割,但是對車輛輪廓的邊緣清晰度要求較高。本文提出一種利用透視點在車輛前景團塊輪廓上搜索分割點并通過區塊特征識別車輛的粘連車輛的分割方法。本方法不同于以上方法通過輪廓進行建模,而是先根據路面特征求出透視點,再利用透視點確定出車輛前景團塊中的待檢定車頭區域。通過計算車頭區域的位置比例關系來判斷是否可能是車輛粘連。對于前景中的粘連候選團塊,從前往后逐一迭代分割。并將分割出的待定團塊劃分成4個特征區塊,利用區塊的紋理、比例、對稱性等特征來判斷是否車輛,修正或剔除錯誤的初選分割線,最后實現正確的車輛分割。實驗證明此方法能夠較好地實現直線道路上多輛車粘連的分割,明顯減少漏檢或錯誤分割的發生幾率。
通過輪廓求透視模型的方法[7-8]計算量較大,且當輪廓不完整時會影響計算準確性。本文利用車道信息先獲取透視點,再對車輛前景團塊輪廓進行搜索尋找分割點,然后對待定分割點進行驗證,能有效減少計算量,提高抗噪能力。由透視原理可知,對于平行的直車道,從任何不垂直于它的角度看去,車道線將交于遠處的一點——透視點。可以利用車道這一性質將車道的檢測與透視點的檢測合二為一。首先,利用霍夫變換尋找第一幀背景圖像中所有直線的集合,并且將兩線之間的交點以及相應的直線進行記錄,得到交點集和相應直線集。選擇交點集中滿足透視點位置條件且分布最集中的點的重心為透視點,然后選擇直線集中距離透視點最近且分別滿足左右車道邊界線要求的直線為邊界線。
先對第一幀背景的灰度圖像進行Canny邊緣檢測,實驗中取3*3內核的Sobel算子,閾值為 (50,100)。再對圖像做霍夫變換,參數取λ的精度為1,θ的精度為π/180,累計閾值為50,可以檢測到圖像中的直線集A。求這些直線兩兩之間的交點集B,如圖1(a)中所示,在 (0<x<W,y>H)的空間中利用聚類算法在B中尋找最為集中的m個點,測度為兩兩間距離。求這m個點的重心,即為透視點p(xp,yp)。

圖1 透視點與車道的關系
由于道路邊界線以外的區域有很多復雜的背景物體,例如綠化帶,當有風的時候特別容易對前景產生噪聲干擾,不利于后期處理,所以獲取道路邊界線并設置固定的道路區域,能夠剔除道路外的干擾,減少計算量。
對于車道,要分別求出左右車道邊界線。因左、右邊的算法類似,故以左邊界為例。如圖1(b)中邊界線與x軸相交于b點,與邊界直線y=H交于a點。
從1.1節得到的直線集A中挑出所有與透視點距離小于20像素的直線集合A′,再從其中找到一條最適合的左邊界線,流程如圖2所示。

圖2 道路邊界線獲取流程
因為道路邊界線內外的灰度值差異較大,可以利用向這個差異來找到邊界。方法是:在圖像區域的直線兩側,平行于直線各自對稱地均勻采樣10個點,設這兩側點的灰度值 為 {p1,p2,p3, …p10} 和 {p1′,p2′,p3′, …p10′},用以下公式計算采樣點的相似度

與道路邊界線相比,路面內車道線兩側的灰度值很接近,即d值較小,所以當d大于某一閾值時 (實驗取20)即為道路邊界線。為了避免道路以外物體輪廓線的干擾,我們采取由內而外的檢索方式,從斜率最大的直線開始搜索,判斷d的大小,若不是邊界則尋找下一條斜率次大的直線,直到找到邊界為止。
道路上的車輛粘連主要是由于單目攝像頭損失了空間位置信息并且后車太靠近前車造成的。出于安全距離的限制,粘連時后車大都不是正對著前車尾部,而是對著前車左或右側面 (參見圖3)。單目攝像頭架設于道路中央,在其采集的視頻畫面中,對于背對攝像頭駛向遠處的車輛,由于剛進入畫面時未粘連,行駛到遠處才發生粘連,可以利用卡爾曼預測和Meanshift等算法[13]分別跟蹤將其分割開。而對于正對攝像頭從遠處駛來的車輛,開始進入畫面時就已經發生了粘連,只能通過車輛特征將其分割開。
車輛特征主要有:輪廓特征、顏色特征、空間位置特征、紋理特征、以及局部特征等。其中輪廓特征是最為明顯的特征之一,兩車粘連時連接處容易出現凹點,對于輪廓較完整且凹點明顯的粘連車輛,通過檢測凹點來進行分割。當從輪廓邊沿能夠檢測出兩個深度大于一定閾值的凹點時,直接利用凹點分割粘連的車輛。以左車道的車輛粘連為例,如圖3中所示,粘連分為圖 (a)左車遮擋右車和圖 (b)右車遮擋左車兩種情況。對于圖 (a),車輛輪廓邊沿的凹點較為明顯,且隨著車輛移動凹點越發明顯甚至兩車自動分開,可以利用上述凹點檢測方法將其分開。對于圖 (b),由于視角問題,若前后兩車車速差不多,粘連輪廓上的凹點不明顯,不容易準確分割。因此,我們考慮利用透視原理結合車輛空間三維特征來實現分割。本文重點研究這種情況下的車輛粘連分割問題。因左、右車道車輛的檢測與分割算法類似,故只討論偏左車道車輛。

圖3 兩種遮擋情況下的粘連輪廓
本文采用混合高斯背景建模方法初步獲取車輛前景,并利用形態學梯度算法獲取車輛紋理,二者相加后經過濾波去噪、形態學處理以及陰影消除后得到優化的前景,最后利用多邊形逼近算法光滑車輛前景團塊輪廓。
由于車輛近似為一個長方體,因此滿足長方體的透視原理,于是每個車輛長方體有垂直于車道線方向上和平行于車道線方向上的兩個透視點 (消失點)。由于攝像頭與車輛在垂直于車道線方向上的距離較短,此方向的消失點較遠,車輛在此方向上的邊與畫面底邊基本平行,為方便計算本文將其當作平行處理。現利用透視原理來檢測車頂和車頭的位置,并根據兩者的位置比例關系判斷車輛是否粘連。
如圖4(a)所示,選擇車輛輪廓最左和最右兩點:l和r,分別與透視點p(xp,yp)構成一條左直線pl和一條右直線pr。如圖4(b)所示,左直線pl與輪廓外接矩形左邊線相交于b(xb,yb)點,與上邊界交于a(xa,ya)點,右直線pr與輪廓外接矩形底邊線交于d(xd,yd)點。如圖4(d)所示,在b點沿x方向畫一條直線,在d點沿y方向畫一條直線,兩條直線垂直相交于e(xe,ye)=(xd,yd)點。e點與透視點生成的直線與a點沿x方向的直線相交于f點。由此,將圖4(c)中的車近似為一個長方體,其中,車頂區域為befa,車頭區域為bedc。

圖4 利用透視點提取車頂區域和車頭區域
檢測到的e點可用來判斷前景團塊輪廓是否是多車粘連的輪廓。無粘連時,e點在前景輪廓內,且車身高度ed與車頂的寬度be滿足一定的比例。車輛粘連時,如圖5(a)所示,車身高度ed和車頂寬度be的比值明顯偏大。經實驗統計,圖5(b)左邊為未粘連時的高/寬比例分布,右邊為粘連時的高/寬比例分布;所以,取閾值為0.1~1.4。當檢測到的e點在輪廓內且高/寬滿足此比例關系時,即判斷為獨立的未粘連車輛,否則可能為粘連車輛,需要進行分割處理和識別驗證。

圖5 未粘連和粘連車輛的高寬比例
為了防止漏檢粘連車輛,我們采用迭代方法來實現多車粘連的分割。由于最前端車輛團塊位于整個前景輪廓的最前端,所以從前往后依次逐塊將前景輪廓分割,分割流程如圖6所示。
對車輛輪廓用2.2節中的方法判斷車輛是否粘連。實際中,發生粘連的車輛數,從小到大依次可能是2輛、3輛、4輛…等。所以,先采用二分法結合透視點從前景圖確定出只屬于首輛車的團塊。首先,檢測整個前景團塊的前1/2是否只屬于一輛車,如果不是,則檢測前1/3是否只屬于一輛車,若再不是,則檢測前1/4等。順序縮小,直到該團塊沒有超過車的高寬比范圍即可,如圖7(a)下半部分團塊只屬于最前端車輛。

圖6 多車粘連的分割流程

圖7 尋找切割線位置
圖7 示意了在前景團塊圖像的左和右邊輪廓上尋找與分割線直接相關的凹點的過程。如圖7(b)所示,將確定出的前景團塊按照2.2節方法檢測新的e點,e點與透視點構成的直線與右側輪廓線交于g點,如圖7(c)所示。設g點為初始右分割點,從g開始沿著輪廓右邊向后 (向圖片上方)尋找最近的凹點 (要求凹區域面積大于一定閾值),如找到則將g點更新為凹點坐標,否則g點坐標不變,如圖7(d)所示。此時經過g點的水平線與輪廓左側交于點g′,設g′為初始左分割點。從g′開始沿著輪廓左邊向前(向圖片下方)尋找輪廓上最近的滿足閾值要求的凹點,若找到則將g′點更新為凹點坐標,否則g′坐標不變,如圖7(e)所示。至此,分割點g和g′的連線即為分割線,圖7(f)為粘連車輛的分割效果。實際中,對于左車道,分割線g′g向路中心傾斜,與x軸夾角斜率為正;對于右車道,分割線gg′也向路中心傾斜,但與x軸夾角斜率為負。
在輪廓條件不好的情況下,一般單純找輪廓最大凹點的方法容易出現錯誤分割,但本文結合了透視模型,能更好地確定分割點初始搜索位置。根據找到的分割線,從前景團塊中分割出第一輛車團塊,并將剩余部分作為新的前景團塊,利用以上方法繼續做車輛粘連檢測和分割,直到將所有粘連車輛團塊從前往后逐一分割出來。
利用2.3節的分割方法能夠分割出待檢定的車輛團塊,但其是否確實是車輛需要驗證。從車前上方看,一輛車主要包含車頂、車窗、引擎蓋、車前擋 (包含車燈、保險杠、風柵和車牌等)4個區塊。我們考慮綜合利用多區塊的特征來檢測待檢定團塊是否車輛,由此,判斷分割是否正確,判斷流程如圖8所示。

圖8 區塊特征綜合判斷分割正確性的流程
利用2.2節的方法將車輛近似為長方體,如圖9(a)所示,為避免車輛兩側邊界的干擾,將車頂和車頭區域切割出中間1/2的部分進行檢測,如圖9(b)所示。
對切割后的整個區域做垂直方向的梯度統計。設f(x,y)為 (x,y)處的像素灰度值,對于每個像素點,其垂直方向y上梯度為

將每一行所有像素的梯度gy(x,y)累加,得到一個y方向上的分布


圖9 車頂和車頭的垂直方向梯度分布
如圖9所示,在擋風玻璃和引擎蓋連接處、車前擋和引擎蓋連接處的垂直方向灰度差較大,因此在交接處存在梯度極值。此外,引擎蓋區塊灰度較均勻,垂直方向梯度較小。車前擋區塊由于包含保險杠、車牌、風柵和車燈等,梯度分布比較雜亂。
利用上述梯度分布特征,通過尋找極值和計算區塊均值的方法可以將車輛中間部分劃分成幾個區塊:車頂區塊、車窗區塊、引擎蓋區塊、車前擋區塊。以小轎車為例,先找到一組分界線:y0<y1<y2<y3<y4,如圖9(c)所示,從而將車輛劃分出車頂區塊、擋風玻璃區塊、引擎蓋區塊和車前擋區塊。為了提高車輛分割正確率,我們進一步對各分塊的特征進行識別驗證。
(1)車頂區塊:此部分的梯度方向分布較為單一,通過計算梯度方向直方圖,判斷直方圖分布的單一性來檢測是否車頂。為了計算區塊的梯度方向直方圖,我們先將區塊的長寬范圍擴展到8的倍數,得到M×N大小的窗口,進而得到n= (M/8)* (N/8)個細胞單元,參考利用文獻 [15]中的梯度方向直方圖 (HOG)計算方法,計算每個單元的梯度方向直方圖。為減小因車輛反光而產生的局部亮度差異,本文我們再對區塊中的n個細胞單元的直方圖分別進行歸一化處理。最后將所有的單元直方圖合并,得到整個區塊的梯度方向直方圖。
(2)擋風玻璃區塊:由于玻璃的透明性使得此區域顏色和紋理特征不穩定,但此區塊在結構上滿足比例特征:擋風玻璃區塊高hd=y2-y1與車輛寬度w成比例關系,由圖9(a)的車輛長方體模型可得到車輛寬度w,當hd和w滿足比例關系時,將此區塊判斷為擋風玻璃。
(3)引擎蓋區塊:其紋理和顏色較為單一,計算其梯度方向直方圖和灰度直方圖,滿足直方圖分布的單一性即判斷為引擎蓋。
(4)車前擋區塊:其包含車燈、保險杠、進風柵和車牌,紋理較復雜,且左右對稱、中間部分與左右不相似。由于顏色對亮度比較敏感,所以也利用梯度方向直方圖來進行區塊對稱性和紋理復雜性的判斷。先將車前擋區平均劃分成左中右3小塊。分別計算3小塊的梯度方向直方圖。采用直方圖相交可判斷兩個小塊的紋理相似度,相交值越大,兩個區塊的相似度越高。用此方法進行相似性檢測,若左右小塊相似度較大,并且與中間小塊的相似性較小,則滿足車前檔的相似性要求。將3個小塊的梯度方向直方圖相加即為整個車前擋區塊的梯度方向直方圖,由于車前擋區塊紋理較為復雜,且包含車牌等閉合團塊,其所以梯度方向直方圖分布較為均勻。利用此分布特征判斷該區塊是否滿足紋理要求。當區塊同時滿足相似性和紋理性要求,則判斷為車前擋區塊。
當待檢定團塊能夠劃分出車頂、車窗、引擎蓋、車前擋4個區塊,且同時滿足各區塊特征時,將此團塊判斷為車輛。顯然,條件滿足的越充分,分割正確的把握性就越高;條件滿足的程度越弱,分割錯誤的可能性就越大。因此,我們可以事先憑經驗設定好各個條件的權重wi。將我們對各個條件的滿意程度表示si,計算被檢測圖像團塊的總符合度S=∑wisi,符合度大于閾值s0時分割正確,否則認為分割錯誤。
由于干擾的隨機性,決定了發生分割錯誤的原因非常復雜,但結果都是分割線位置錯誤。若分割線位置錯誤,則需要修正分割線的位置。以兩車粘連為例,在嚴重干擾的情況下,2.3節中左右兩側的凹點連接線g′g可能不是真實的分界線。此時最可能存在兩種情況:①第1輛車的部分車頂被切分到第2團塊;②第2輛車的車頭下半部被切分到第1團塊。為此,可以做如下兩種處理:
(1)將分割線的g點向后移動到后面的凹點上,確定出新的g′g分割線,再重復進行3.1的工作;如果嘗試過所有凹點均不成功,代表依據輪廓凹點分割失敗,則需要轉 (2)。
(2)在g點或之后的位置附近,綜合兩車結合部的紋理特征檢測兩車的分界線。具體做法可以是,將3.1節區塊特征的檢驗應用到兩車結合部,區分前車車頂區塊和后車車頭的前檔區塊,搜索兩車之間的切割分界線;或者類似文獻 [5]那樣,找車底盤陰影,并以此為切割分界線。
換句話說,我們可以將基于輪廓凹點的分割和基于紋理的分割結合起來,盡可能減少分割的錯誤。對于三車或以上的多車粘連情況,可以類似處理。每次移動分割線后,再利用3.1節方法判斷分割出的新團塊是否是車輛,不是則繼續搜索分割線,直到找到符合度較大的情況,確定出對應的分割線。
采用本文提出算法,對兩車粘連和三車粘連的樣本進行實驗,圖10為實際的多車輛粘連的分割效果。

圖10 兩車粘連和三車粘連情況下的分割效果
一般性的車輛粘連分割算法中,錯誤分割主要表現為兩種:一是存在未分割的粘連車輛;二是將一車分割成多車。在本文提出的方法中,采用逐次劃分法 (1/2,1/3,1/4…)縮小分割區域,并且每分割一次都結合透視點利用車輛幾何空間高寬比例檢測是否是粘連車輛,較好的避免了產生第一種錯誤分割;利用車輛的區塊特征檢測分割正確性,并且進行錯誤處理,能夠較好的避免第二種錯誤分割,從而保證了分割的準確性。
實驗結果表明,此方法對于兩車粘連和兩車以上的粘連都能夠有效進行分割,且計算復雜度較小,滿足實時要求,適用于公路直道上的實時車流量統計和車輛跟蹤。
本文針對公路車輛視頻中經常出現的多車輛粘連問題進行研究,著重解決前后車距太近造成的車輛粘連的分割問題。結合了車輛輪廓的透視特征以及車輛頭部的區塊分布特征提出了一種新的分割方法。與已有方法相比,此方法對車輛輪廓的完整性要求較低,計算量較小,并且通過區塊特征驗證,修正錯誤分割,能更為有效的保證分割的準確性。實驗表明本文方法能夠較準確且快速的分割出視頻圖像中粘連的多輛車,并具有較好的實際應用價值。
[1]LI Yu-cheng,LI Lei,WANG Mu-shu.Statistics of the traffic flow on multiple lanes [J].Process Automation Instrumentation,2010,31 (10):51-60 (in Chinese). [李宇成,李雷,王目樹.多車道的車流量統計 [J].自動化儀表,2010,31(10):51-60.]
[2]ZHANG Wei,WU Q M Jonathan,YANG Xiao-kang,et al.Multilevel framework to detect and handle vehicle occlusion[J].IEEE Transaction on Intelligent Transportation Systems,2008,9 (3):161-174.
[3]Goo Jun,Aggarwal J K,Gokmen M.Tracking and segmentation of highway vehicles in cluttered and crowded scenes [C].IEEE Workshop on Applications of Computer Vision,2008:1-6.
[4]HUANG Chung-Lin,LIAO Wen-Chieh.A vision-based vehicle identification system [C].Proceedings of the 17th International Conference on Pattern Recognition,2004:364-367.
[5]LIU Jian-wei,WANG Jia-rui,CAO Quan,et al.Accurate segmentation algorithm of vehicles based on shadow of chassis [J].Modern Electronics Technique,2010,33 (5):154-160 (in Chinese).[劉建偉,王佳銳,曹泉,等.基于車輛底盤陰影的車輛精確分割 算法 研究 [J].現 代 電 子技術,2010,33 (5):154-160.]
[6]LIU Huai-yu,LI Jing,HONG Liu-rong.Subspace vehicle recognition algorithm using local features [J].Computer Engineering and Applications,2010,46 (30):156-180 (in Chinese). [劉懷愚,李璟,洪留榮.利用局部特征的子空間車輛識別算法 [J].計算機工程與應用,2010,46 (30):156-180.]
[7]Clement Chun Cheong Pang,Tan Zhi-gang,Nelson Hon Ching Yung.A methodology for resolving severely occluded vehicles based on component-based multi-resolution relational graph matching[C].International Conference on Machine Vision,2008:141-146.
[8]LIU Xue-liang,YAN Jie-feng,ZHOU He-qin.A vehicle contourbased method for occlusion detection and segmentation [J].Computer Simulation,2009,33 (11):107-109 (in Chinese). [劉學亮,嚴捷豐,周荷琴.基于輪廓特征的車輛遮擋檢測和分離算法 [J].計算機仿真,2009,26 (4):297-300.]
[9]Clement Chun Cheong Pang,William Wai Leung Lam,Nelson Hon Ching Yung.A method for vehicle count in the presence of multiplevehicle occlusions in traffic images[J].IEEE Transaction on Intelligent Transportation Systems,2007,8 (9):441-449.
[10]SONG Xue-feng,Ram Nevatia.Detection and tracking of moving vehicles in crowded scenes [C].Proceedings of the IEEE Workshop on Motion and Video Computing.Washington,DC,USA:IEEE,2007:1-4.
[11]SONG Xue-feng,Ram Nevatia.A model-based vehicle segmentation method for tracking [C].IEEE International Conference on Computer Vision,2005:1124-1132.
[12]Kanhere N K,Pundlik S J,Birchfield S T.Vehicle segmentation and tracking from a low-angle off-axis camera [C].IEEE Computer Vision and Pattern Recognition,2005:1152-1158.
[13]WEI Yu-qiang,WANG Cheng-ru.Method for touching vehicles segmentation in multi-vehicles tracking [J].Video Engineering,2009,33 (11):107-109 (in Chinese). [魏玉強,王成儒.多車輛跟蹤時分割粘連車輛的方法 [J].電視技術,2009,33 (11):107-109.]
[14]Na Fan.Object classification and occlusion handling using quadratic feature correlation model and neural networks [J].International Journal of Pattern Recognition and Artificial Intelligence,2011,25 (3):287-298.
[15]MAO Ling,XIE Mei,HUANG Yi,et al.Preceding vehicle detection using histograms of oriented gradients [C].International Conference on Communications,Circuits and Systems.Chengdu,China:IEEE,2010:354-359.