王 闖,賀 瑩
(中航工業(yè)西安航空計算技術(shù)研究所,西安 710065)
基于逆透視變換的車輛排隊長度檢測方法及硬件實現(xiàn)
王 闖,賀 瑩
(中航工業(yè)西安航空計算技術(shù)研究所,西安 710065)
交通路口的車輛排隊長度檢測是智能交通系統(tǒng)的重要組成部分,傳統(tǒng)的檢測方法易受背景噪聲、攝像機透視效果等因素的干擾造成檢測失敗,而且其實現(xiàn)都是基于串行結(jié)構(gòu)的處理器,不能用于實時處理的場合;設計了一種充分利用平直道路幾何特征并適合FPGA實現(xiàn)的排隊長度自動檢測算法,該算法利用逆透視變換消除圖像幾何失真,引入公路的結(jié)構(gòu)性約束有效檢測了車道線;接著采用Sobel邊緣算子檢測出各車道的車輛輪廓,通過一種基于信息量的度量方法提取排隊的隊尾,從而確定了車輛排隊長度,并且通過硬件化設計使得整個檢測過程達到實時的處理速度;試驗結(jié)果表明,在消除了視覺偏差的圖像上進行的排隊長度檢測結(jié)果比校正前更加真實準確,所提出的檢測方法可以很容易工程化并用于實際交通路口的車流量自動實時檢測。
逆透視變換(IPM);現(xiàn)場可編程門陣列(FPGA);車道線檢測;排隊長度;Sobel算子
實時準確地獲取交通路口排隊的車輛長度對于交管部門科學有效地利用現(xiàn)有的交通資源進行交通管理、車輛調(diào)度和信號燈控制具有重要意義。傳統(tǒng)的車隊提取方法[1 2]往往直接利用背景差分或者邊緣檢測提取出車隊的整體輪廓,接著根據(jù)輪廓的像素分布估計出車流量的度量。雖然這些方法能取得一定效果,但是在實際應用中,這類方法往往無法自動分割出各個車道區(qū)域,在對目標車隊檢測時也很容易受到來自背景的光照變化、陰影等因素的干擾造成檢測的失敗,而且由于攝像頭獲取的交通圖像具有強烈的透視效果,提取的車輛輪廓往往產(chǎn)生不同程度的幾何視覺變形,由此測量的車隊長度誤差較大;另外,目前的研究都是針對工控機、數(shù)字信號處理器(DSP)等串行處理器實現(xiàn)的算法,這類實現(xiàn)方式固有的順序執(zhí)行結(jié)構(gòu)決定了其不能對視頻流進行實時處理[3]。
本文在滿足道路平坦假設的前提下,針對結(jié)構(gòu)化道路的幾何特征,提出了一種基于逆透視變換的排隊長度檢測算法。該算法首先利用逆透視變換(Inverse Perspective Mapping)消除道路圖像的透視效果[4],得到無畸的鳥瞰圖像;接著,在Hough變換的基礎上引入車道標志線之間的固有幾何約束,準確的檢測了車道線并分割各個車道區(qū)域;然后,采用Sobel邊緣算子檢測出各車道的車輛輪廓,并通過一種基于信息量的度量方法提取排隊的隊尾,進而確定了車輛排隊長度;最后,充分發(fā)揮FPGA分布式、硬件化、并行化的處理特點[5],并結(jié)合實際系統(tǒng)的特定應用需求,給出了所設計算法的FPGA硬件邏輯電路結(jié)構(gòu),使得整個檢測過程達到實時的處理速度。
本文的這套算法是基于知識的啟發(fā)式算法,分為圖像預處理、車輛的存在檢測和排隊長度的提取三部分。
圖像預處理和車輛存在檢測的目的是確定各個車道在圖像視場中的位置并從中提取出車輛輪廓。在實際交通路口,各車道的標識線一般相互平行,且相鄰標識線間距離大致相同,但是由于攝像頭獲取的路口圖像具有強烈的透視效果,造成圖像中車輛以及車道標志線的幾何失真,因此,本算法首先通過逆透視變換(IPM)對輸入圖像進行預處理,消除圖像序列的透視效果,接著引入道路的結(jié)構(gòu)性約束,從Hough變換檢測出的直線中搜索出各車道的車道線;然后,通過Canny邊緣檢測提取出各個車道存在的車輛輪廓。
在排隊長度提取時,車輛排隊的起點在圖像中的位置往往固定,可以事先獲知,因此只需確定等待隊列的隊尾即可檢測排隊長度。以車道中每行圖像的邊緣像素累加和作為檢測車輛存在的信息量;在圖像的車道區(qū)域,有車輛存在的地方其信息量高,反之則低;在車輛隊列的隊尾,圖像中對應行的信息量會會產(chǎn)生一個由高到低的跳變,這樣,通過檢測圖像信息量的這一跳變,可以確定排隊車輛的隊尾,從而實現(xiàn)對排隊長度的提取。
在對圖像感興趣區(qū)域進行分割以確定各車道標識線時使用的知識如下:
1)在實際交通路口,固定安裝的攝像機其光軸一般正對機動車車道區(qū)域,因此在逆透視變換消除了幾何失真后,圖像坐標系中車道標識線與圖像水平方向的夾角應該較大;
2)逆透視變換后,檢測出的車道標識線之間應當保持平行的關(guān)系;
3)逆透視變換后,檢測出的車道標識線相互之間的距離不應太?。磺覍τ诙嘬嚨赖牡缆?,相鄰車道之間距離應大致相同。
整個檢測算法主要包括逆透視變換、Hough變換、Sobel邊緣檢測和各車道排隊長度提取幾個步驟,算法的流程如圖1所示。
圖1 基于逆透視變換的排隊長度檢測算法流程圖
2.1 逆透視變換處理
在歐式空間中分別定義世界坐標系W和圖像坐標系I,將坐標系I下的道路圖像變換到世界坐標系W下的Z=0平面中,兩者關(guān)系如圖2所示。
圖2 逆透視變換關(guān)系示意圖
假設攝像機安裝位置在世界坐標系下的坐標為(w,l,h),攝像機標定的參數(shù)分別為:γ為攝像機光軸o在z=0平面的投影與y軸的夾角(圖3(a));θ為攝像機光軸o偏離z=0平面的角度(圖3(b));2α為攝像機的水平和垂直視角(圖3 (a),(b));Rx,Ry分別為圖像序列的水平和垂直方向分辨率。
圖3 世界坐標系下剖視圖
通過坐標系變換,以逆透視變換后的圖像為目標圖像,對于輸入圖像幀中的任一像素(x,y),都可以建立其對應于逆透視變換后像素(u,v)的一個地址映射,該映射關(guān)系如式(1)所示。
在該級處理的FPGA實現(xiàn)時,涉及反正切、開方等硬件實現(xiàn)復雜的運算,因此不宜在FPGA中采用公式(1)直接進行計算。實際上,當攝像機安裝位置不變時,式(1)中圖像分辨率、視場角等攝像機參數(shù)固定,因此可以采用線下計算的方式建立輸入像素與變換結(jié)果之間坐標對應關(guān)系的查找表,當像素輸入時直接根據(jù)查找表將其寫入結(jié)果圖像緩存區(qū)的對應位置,這樣,圖像輸入結(jié)束時即可得到一幀完整的逆透視變換結(jié)果圖像,避開了復雜的三角函數(shù)和開方運算,同時保證了逆透視變換的快速性。
逆透視變換的FPGA具體實現(xiàn)步驟如下:
Step 1:根據(jù)式(1)建立輸入像素坐標與IPM變換結(jié)果的查找表,初始化時,將其寫入FPGA的外擴SRAM中;
Step 2:以原始圖像像素地址為輸入,在查找表中尋址,并將該點像素值寫入查找結(jié)果所對應的IPM輸出地址中;當圖像輸入結(jié)束時,則可得到一幀完整的逆透視變換結(jié)果圖像。
對于某一交通圖像,利用式(1)進行逆透視變換的結(jié)果圖像如圖4所示。
圖4 IPM算法的處理效果
2.2 車道標識線檢測
車道區(qū)域是進行排隊長度檢測的有用區(qū)域,因此如果能夠有效檢測出車道線并將其包圍的區(qū)域作為排隊長度檢測的感興趣區(qū)則可以有效消除背景噪聲對排隊長度檢測造成的干擾。車道線檢測常用的算法是Hough變換[6],其實質(zhì)是對圖像空間具有一定關(guān)系的像元進行聚類,尋找能把這些像元用某一解析形式聯(lián)系起來的參數(shù)空間累積對應點,但是這種算法容易受到背景特征變化的影響,單純使用此方法往往不能穩(wěn)定有效的提取出車道線。如圖5所示。
圖5 傳統(tǒng)圖像Hough變換檢測車道線效果
然而對于IPM變換后的圖像,道路顯示出其固有的幾何特性,因此可以依據(jù)上文提及的道路結(jié)構(gòu)知識,設計對Hough變換后的圖像進行啟發(fā)式搜索的算法如下:
Step 1:對Hough變換檢測出的每一條直線line(Pt_ start,Pt_end),用其與圖像上邊緣的交點橫坐標和其與水平方向的夾角表示,即line(theta,x_label),得到集合A;
Step 2:在A中搜索與水平方向夾角從Min_angle到90°范圍以內(nèi)的直線,由此得到子集B,其中Min_angle為保持直線與水平方向垂直的角度下界,其值應大于45°;
Step 3:若|thetaB-thetaA|≤Torrance,則認為檢測到的兩條直線滿足平行的約束條件;對B中所有直線對進行平行性檢驗,得到直線子集C;
Step 4:查找C中像素距離大于Torrance的直線,由此得到道路邊緣集合D。
根據(jù)算法的具體應用場合,合適選擇各參數(shù),則集合D中包含的元素即為尋找的車道線。如圖6所示。
圖6 基于IPM變換的Hough算法車道線檢測
可見,在Hough變換的基礎上利用IPM圖像無視覺失真的特點并引入道路結(jié)構(gòu)性約束可以有效檢測出車道線。根據(jù)檢測出的車道線,可以方便確定車道數(shù)和各車道在圖像中所占的區(qū)域。
在實際應用時,攝像頭的安裝位置固定,車道區(qū)域在視場中的象素位置也隨之固定,因此可以按照上述算法預先計算各車道控制線的位置參數(shù),將其寫入FPGA作為車隊長度提取的感興趣區(qū)。
車輛與路面背景之間有明顯的亮度差,因此根據(jù)圖像預處理所劃定的感興趣區(qū),采用Sobel算子可以有效檢測出各車道的車輛輪廓。
將前一級輸出的結(jié)果圖像與水平和垂直方向的兩個3× 3Sobel算子分別做卷積,其卷積核分別為:
設計深度為723的Buffer,并在有效像素時鐘跳變時用新輸入的像素更新Buffer;以緩沖區(qū)中地址為361的像素為處理中心,將其3×3鄰域同Kh和Kv分別做卷積,卷積的處理方式與上一模塊相似只是卷積結(jié)果用9個二進制位表示,最高位代表減法方向,0為正向差,1為逆向差;兩個方向的卷積結(jié)果同時輸出到下一級,并在有效像素時鐘改變時重復上述操作;該模塊的硬件實現(xiàn)如圖7所示。
圖7 Sobel邊緣檢測的硬件化實現(xiàn)結(jié)構(gòu)圖
經(jīng)過對IPM圖像中車道區(qū)域的Sobel檢測,提取出的各車道車輛輪廓如圖8所示。
圖8 Sobel邊緣檢測結(jié)果圖像
經(jīng)過IPM變換后,車道標識線相互平行。設排隊的起始線和視場范圍最遠線在圖像中的行坐標分別為S和E,對于第i個車道,其控制點列坐標為Li和Li+1,如圖9所示。對輸入的每一有效像素,判斷其列坐標y是否滿足Li<y<Li+1,即可確定該像素點是否在第i個車道范圍內(nèi)。
圖9 車道區(qū)域分割示意圖
從起始行S開始,以車道中值為1的像素的累加和作為檢測車輛存在與否的信息量;設排隊車輛的平均間距參數(shù)為N,檢測車輛存在與否的閾值參數(shù)為Cnt_Th,若從某一行x(x>=S)開始的連續(xù)N行圖像其信息量都小于Cnt_Th,,則認為車輛信息量在第x行產(chǎn)生了明顯的由高到低的跳變,此時該行對應了排隊車輛的隊尾,
由此,可得到第i個車道的車輛排隊長度計算公式如式(2)所示。
其中:C(x)為第x行圖像的信息量統(tǒng)計值,g(x,y)為二值化后的圖像象素。
在該模塊的FPGA實現(xiàn)時,統(tǒng)計和比較運算在圖像輸入時同步完成,排隊長度的計算可以在圖像輸入完成前第一次出現(xiàn)滿足式(2)的x時結(jié)束。圖10為水平投影及排隊長度計算的FPGA實現(xiàn)電路圖。
圖10 排隊長度檢測邏輯電路圖
經(jīng)過上述步驟,實現(xiàn)了對各車道的排隊長度檢測,將各車道的排隊長度相加,即可得到路口車流量的一種度量。對交通路口某一圖像序列的排隊長度檢測結(jié)果如圖11所示。
圖11 車輛排隊長度檢測結(jié)果
本文介紹了一種基于逆透視變換的車流量檢測算法及其FPGA實現(xiàn),可以實現(xiàn)對交通路口車流量的自動實時檢測。該算法具有以下特點:
1)在圖像預處理時采用逆透視變換得到了無畸的二維鳥瞰圖像,通過引入車道標志線之間的平行約束和距離約束,準確的從輸入圖像中檢測出車道標識線;另外,在消除了視覺偏差的圖像上進行的排隊長度檢測比校正前得到的結(jié)果更加真實準確;
2)在算法的FPGA實現(xiàn)時,將參數(shù)的線下標定和圖像的在線實時處理相結(jié)合,保證了整個車流量檢測過程的實時性;
3)充分發(fā)揮了FPGA的并行處理能力,實現(xiàn)了對多個車道車輛排隊長度的并行同步實時檢測;
但是,逆透視變換下車道線的平行性等約束只適合于平坦路面下的直道,對于路面起伏以及彎道的情形,本文提到的車道標識線搜索約束將不再滿足。因此,如何基于逆透視變換提出一種更通用更合理的約束來適應于各種情況下的車流量檢測,將是我們下一步的研究內(nèi)容。
[1]楊永輝,黃 磊,劉昌平.基于視頻分析的車輛排隊長度檢測[J].計算機應用研究,2011,28(3):1037-1041.
[2]王 闖,史忠科.實時車輛排隊長度圖像檢測系統(tǒng)及FPGA硬件實現(xiàn)[J].交通運輸系統(tǒng)工程與信息,2012,12(3):65-72.
[3]Lopich A,Dudek P.Hardware implementation of skeletonization algorithm for parallel asynchronous image processing[J].Journal of Signal Processing Systems,2009,56:91-103.
[4]Nieto M,Salgado L,Jaureguizar F,et al.Stabilization of inverse perspective mapping images based on robust vanishing point estimation[A].Proceedings of the 2007 IEEE Intelligent Vehicles Symposium[C].Istanbul,Turkey,2007:315-320.
[5]程紅麗,張耕川.基于FPGA的太陽能充電系統(tǒng)的研究與設計[J].重慶大學學報,2014(09).
[6]吳 哲,孫 涵.基于快速直線段提取的道路標識線識別算法[J].計算機技術(shù)與發(fā)展,2009,19(5):48-51.
Vehicles Queue Length Detection Based on Inverse Perspective Mapping and Its Hardware Implementation
Wang Chuang,He Ying
(Xi′an Aeronautics Computing Technique Research Institute,AVIC,Xi′an 710065,China)
Vehicles queue detection in intersection is an important component of the intelligent transportation system.The traditional detection methods are vulnerable to background noise and perspective effect of traffic image,and their implementation are based on the structure of serial processor,which is hard to meet the real-time processing requirements of visual applications.Thus,take advantage of the geometry characteristics of flat road,this paper develops a novel vehicles queue detection algorithm suitable for FPGA implementation.It firstly eliminates the geometric distortion of image sequence using inverse perspective mapping method,and detects the lane markers by introducing in structural constraints of road;on this basis,it extracts the contours of vehicles queue using Sobel algorithm and determines the queue tail by adopting a kind of measurement based on entropy.Moreover,the hardware architecture design in FPGA makes the entire algorithm achieve real-time processing speed.Test results show that after eliminating the visual deviation of the image,the queue length detection result is more accurate,and the proposed detection method can be easily engineered and used for automatic real-time detection of actual traffic intersection traffic.
inverse perspective mapping(IPM);field-programmable gate array(FPGA);lane markers identification;vehicles queue;Sobel operator
1671-4598(2016)08-0028-04
10.16526/j.cnki.11-4762/tp.2016.08.008
:TP391.4;U491
:A
2016-02-24;
:2016-03-11。
國家自然科學基金重點基金項目(61134004)。
王 闖(1986-),男,河南南陽人,工程師,主要從事圖形圖像處理和高速實時信號處理方向的研究。