王 闖,賀 瑩
(中航工業(yè)西安航空計(jì)算技術(shù)研究所,西安 710065)
基于逆透視變換的車輛排隊(duì)長(zhǎng)度檢測(cè)方法及硬件實(shí)現(xiàn)
王 闖,賀 瑩
(中航工業(yè)西安航空計(jì)算技術(shù)研究所,西安 710065)
交通路口的車輛排隊(duì)長(zhǎng)度檢測(cè)是智能交通系統(tǒng)的重要組成部分,傳統(tǒng)的檢測(cè)方法易受背景噪聲、攝像機(jī)透視效果等因素的干擾造成檢測(cè)失敗,而且其實(shí)現(xiàn)都是基于串行結(jié)構(gòu)的處理器,不能用于實(shí)時(shí)處理的場(chǎng)合;設(shè)計(jì)了一種充分利用平直道路幾何特征并適合FPGA實(shí)現(xiàn)的排隊(duì)長(zhǎng)度自動(dòng)檢測(cè)算法,該算法利用逆透視變換消除圖像幾何失真,引入公路的結(jié)構(gòu)性約束有效檢測(cè)了車道線;接著采用Sobel邊緣算子檢測(cè)出各車道的車輛輪廓,通過(guò)一種基于信息量的度量方法提取排隊(duì)的隊(duì)尾,從而確定了車輛排隊(duì)長(zhǎng)度,并且通過(guò)硬件化設(shè)計(jì)使得整個(gè)檢測(cè)過(guò)程達(dá)到實(shí)時(shí)的處理速度;試驗(yàn)結(jié)果表明,在消除了視覺(jué)偏差的圖像上進(jìn)行的排隊(duì)長(zhǎng)度檢測(cè)結(jié)果比校正前更加真實(shí)準(zhǔn)確,所提出的檢測(cè)方法可以很容易工程化并用于實(shí)際交通路口的車流量自動(dòng)實(shí)時(shí)檢測(cè)。
逆透視變換(IPM);現(xiàn)場(chǎng)可編程門陣列(FPGA);車道線檢測(cè);排隊(duì)長(zhǎng)度;Sobel算子
實(shí)時(shí)準(zhǔn)確地獲取交通路口排隊(duì)的車輛長(zhǎng)度對(duì)于交管部門科學(xué)有效地利用現(xiàn)有的交通資源進(jìn)行交通管理、車輛調(diào)度和信號(hào)燈控制具有重要意義。傳統(tǒng)的車隊(duì)提取方法[1 2]往往直接利用背景差分或者邊緣檢測(cè)提取出車隊(duì)的整體輪廓,接著根據(jù)輪廓的像素分布估計(jì)出車流量的度量。雖然這些方法能取得一定效果,但是在實(shí)際應(yīng)用中,這類方法往往無(wú)法自動(dòng)分割出各個(gè)車道區(qū)域,在對(duì)目標(biāo)車隊(duì)檢測(cè)時(shí)也很容易受到來(lái)自背景的光照變化、陰影等因素的干擾造成檢測(cè)的失敗,而且由于攝像頭獲取的交通圖像具有強(qiáng)烈的透視效果,提取的車輛輪廓往往產(chǎn)生不同程度的幾何視覺(jué)變形,由此測(cè)量的車隊(duì)長(zhǎng)度誤差較大;另外,目前的研究都是針對(duì)工控機(jī)、數(shù)字信號(hào)處理器(DSP)等串行處理器實(shí)現(xiàn)的算法,這類實(shí)現(xiàn)方式固有的順序執(zhí)行結(jié)構(gòu)決定了其不能對(duì)視頻流進(jìn)行實(shí)時(shí)處理[3]。
本文在滿足道路平坦假設(shè)的前提下,針對(duì)結(jié)構(gòu)化道路的幾何特征,提出了一種基于逆透視變換的排隊(duì)長(zhǎng)度檢測(cè)算法。該算法首先利用逆透視變換(Inverse Perspective Mapping)消除道路圖像的透視效果[4],得到無(wú)畸的鳥(niǎo)瞰圖像;接著,在Hough變換的基礎(chǔ)上引入車道標(biāo)志線之間的固有幾何約束,準(zhǔn)確的檢測(cè)了車道線并分割各個(gè)車道區(qū)域;然后,采用Sobel邊緣算子檢測(cè)出各車道的車輛輪廓,并通過(guò)一種基于信息量的度量方法提取排隊(duì)的隊(duì)尾,進(jìn)而確定了車輛排隊(duì)長(zhǎng)度;最后,充分發(fā)揮FPGA分布式、硬件化、并行化的處理特點(diǎn)[5],并結(jié)合實(shí)際系統(tǒng)的特定應(yīng)用需求,給出了所設(shè)計(jì)算法的FPGA硬件邏輯電路結(jié)構(gòu),使得整個(gè)檢測(cè)過(guò)程達(dá)到實(shí)時(shí)的處理速度。
本文的這套算法是基于知識(shí)的啟發(fā)式算法,分為圖像預(yù)處理、車輛的存在檢測(cè)和排隊(duì)長(zhǎng)度的提取三部分。
圖像預(yù)處理和車輛存在檢測(cè)的目的是確定各個(gè)車道在圖像視場(chǎng)中的位置并從中提取出車輛輪廓。在實(shí)際交通路口,各車道的標(biāo)識(shí)線一般相互平行,且相鄰標(biāo)識(shí)線間距離大致相同,但是由于攝像頭獲取的路口圖像具有強(qiáng)烈的透視效果,造成圖像中車輛以及車道標(biāo)志線的幾何失真,因此,本算法首先通過(guò)逆透視變換(IPM)對(duì)輸入圖像進(jìn)行預(yù)處理,消除圖像序列的透視效果,接著引入道路的結(jié)構(gòu)性約束,從Hough變換檢測(cè)出的直線中搜索出各車道的車道線;然后,通過(guò)Canny邊緣檢測(cè)提取出各個(gè)車道存在的車輛輪廓。
在排隊(duì)長(zhǎng)度提取時(shí),車輛排隊(duì)的起點(diǎn)在圖像中的位置往往固定,可以事先獲知,因此只需確定等待隊(duì)列的隊(duì)尾即可檢測(cè)排隊(duì)長(zhǎng)度。以車道中每行圖像的邊緣像素累加和作為檢測(cè)車輛存在的信息量;在圖像的車道區(qū)域,有車輛存在的地方其信息量高,反之則低;在車輛隊(duì)列的隊(duì)尾,圖像中對(duì)應(yīng)行的信息量會(huì)會(huì)產(chǎn)生一個(gè)由高到低的跳變,這樣,通過(guò)檢測(cè)圖像信息量的這一跳變,可以確定排隊(duì)車輛的隊(duì)尾,從而實(shí)現(xiàn)對(duì)排隊(duì)長(zhǎng)度的提取。
在對(duì)圖像感興趣區(qū)域進(jìn)行分割以確定各車道標(biāo)識(shí)線時(shí)使用的知識(shí)如下:
1)在實(shí)際交通路口,固定安裝的攝像機(jī)其光軸一般正對(duì)機(jī)動(dòng)車車道區(qū)域,因此在逆透視變換消除了幾何失真后,圖像坐標(biāo)系中車道標(biāo)識(shí)線與圖像水平方向的夾角應(yīng)該較大;
2)逆透視變換后,檢測(cè)出的車道標(biāo)識(shí)線之間應(yīng)當(dāng)保持平行的關(guān)系;
3)逆透視變換后,檢測(cè)出的車道標(biāo)識(shí)線相互之間的距離不應(yīng)太?。磺覍?duì)于多車道的道路,相鄰車道之間距離應(yīng)大致相同。
整個(gè)檢測(cè)算法主要包括逆透視變換、Hough變換、Sobel邊緣檢測(cè)和各車道排隊(duì)長(zhǎng)度提取幾個(gè)步驟,算法的流程如圖1所示。
圖1 基于逆透視變換的排隊(duì)長(zhǎng)度檢測(cè)算法流程圖
2.1 逆透視變換處理
在歐式空間中分別定義世界坐標(biāo)系W和圖像坐標(biāo)系I,將坐標(biāo)系I下的道路圖像變換到世界坐標(biāo)系W下的Z=0平面中,兩者關(guān)系如圖2所示。
圖2 逆透視變換關(guān)系示意圖
假設(shè)攝像機(jī)安裝位置在世界坐標(biāo)系下的坐標(biāo)為(w,l,h),攝像機(jī)標(biāo)定的參數(shù)分別為:γ為攝像機(jī)光軸o在z=0平面的投影與y軸的夾角(圖3(a));θ為攝像機(jī)光軸o偏離z=0平面的角度(圖3(b));2α為攝像機(jī)的水平和垂直視角(圖3 (a),(b));Rx,Ry分別為圖像序列的水平和垂直方向分辨率。
圖3 世界坐標(biāo)系下剖視圖
通過(guò)坐標(biāo)系變換,以逆透視變換后的圖像為目標(biāo)圖像,對(duì)于輸入圖像幀中的任一像素(x,y),都可以建立其對(duì)應(yīng)于逆透視變換后像素(u,v)的一個(gè)地址映射,該映射關(guān)系如式(1)所示。
在該級(jí)處理的FPGA實(shí)現(xiàn)時(shí),涉及反正切、開(kāi)方等硬件實(shí)現(xiàn)復(fù)雜的運(yùn)算,因此不宜在FPGA中采用公式(1)直接進(jìn)行計(jì)算。實(shí)際上,當(dāng)攝像機(jī)安裝位置不變時(shí),式(1)中圖像分辨率、視場(chǎng)角等攝像機(jī)參數(shù)固定,因此可以采用線下計(jì)算的方式建立輸入像素與變換結(jié)果之間坐標(biāo)對(duì)應(yīng)關(guān)系的查找表,當(dāng)像素輸入時(shí)直接根據(jù)查找表將其寫(xiě)入結(jié)果圖像緩存區(qū)的對(duì)應(yīng)位置,這樣,圖像輸入結(jié)束時(shí)即可得到一幀完整的逆透視變換結(jié)果圖像,避開(kāi)了復(fù)雜的三角函數(shù)和開(kāi)方運(yùn)算,同時(shí)保證了逆透視變換的快速性。
逆透視變換的FPGA具體實(shí)現(xiàn)步驟如下:
Step 1:根據(jù)式(1)建立輸入像素坐標(biāo)與IPM變換結(jié)果的查找表,初始化時(shí),將其寫(xiě)入FPGA的外擴(kuò)SRAM中;
Step 2:以原始圖像像素地址為輸入,在查找表中尋址,并將該點(diǎn)像素值寫(xiě)入查找結(jié)果所對(duì)應(yīng)的IPM輸出地址中;當(dāng)圖像輸入結(jié)束時(shí),則可得到一幀完整的逆透視變換結(jié)果圖像。
對(duì)于某一交通圖像,利用式(1)進(jìn)行逆透視變換的結(jié)果圖像如圖4所示。
圖4 IPM算法的處理效果
2.2 車道標(biāo)識(shí)線檢測(cè)
車道區(qū)域是進(jìn)行排隊(duì)長(zhǎng)度檢測(cè)的有用區(qū)域,因此如果能夠有效檢測(cè)出車道線并將其包圍的區(qū)域作為排隊(duì)長(zhǎng)度檢測(cè)的感興趣區(qū)則可以有效消除背景噪聲對(duì)排隊(duì)長(zhǎng)度檢測(cè)造成的干擾。車道線檢測(cè)常用的算法是Hough變換[6],其實(shí)質(zhì)是對(duì)圖像空間具有一定關(guān)系的像元進(jìn)行聚類,尋找能把這些像元用某一解析形式聯(lián)系起來(lái)的參數(shù)空間累積對(duì)應(yīng)點(diǎn),但是這種算法容易受到背景特征變化的影響,單純使用此方法往往不能穩(wěn)定有效的提取出車道線。如圖5所示。
圖5 傳統(tǒng)圖像Hough變換檢測(cè)車道線效果
然而對(duì)于IPM變換后的圖像,道路顯示出其固有的幾何特性,因此可以依據(jù)上文提及的道路結(jié)構(gòu)知識(shí),設(shè)計(jì)對(duì)Hough變換后的圖像進(jìn)行啟發(fā)式搜索的算法如下:
Step 1:對(duì)Hough變換檢測(cè)出的每一條直線line(Pt_ start,Pt_end),用其與圖像上邊緣的交點(diǎn)橫坐標(biāo)和其與水平方向的夾角表示,即line(theta,x_label),得到集合A;
Step 2:在A中搜索與水平方向夾角從Min_angle到90°范圍以內(nèi)的直線,由此得到子集B,其中Min_angle為保持直線與水平方向垂直的角度下界,其值應(yīng)大于45°;
Step 3:若|thetaB-thetaA|≤Torrance,則認(rèn)為檢測(cè)到的兩條直線滿足平行的約束條件;對(duì)B中所有直線對(duì)進(jìn)行平行性檢驗(yàn),得到直線子集C;
Step 4:查找C中像素距離大于Torrance的直線,由此得到道路邊緣集合D。
根據(jù)算法的具體應(yīng)用場(chǎng)合,合適選擇各參數(shù),則集合D中包含的元素即為尋找的車道線。如圖6所示。
圖6 基于IPM變換的Hough算法車道線檢測(cè)
可見(jiàn),在Hough變換的基礎(chǔ)上利用IPM圖像無(wú)視覺(jué)失真的特點(diǎn)并引入道路結(jié)構(gòu)性約束可以有效檢測(cè)出車道線。根據(jù)檢測(cè)出的車道線,可以方便確定車道數(shù)和各車道在圖像中所占的區(qū)域。
在實(shí)際應(yīng)用時(shí),攝像頭的安裝位置固定,車道區(qū)域在視場(chǎng)中的象素位置也隨之固定,因此可以按照上述算法預(yù)先計(jì)算各車道控制線的位置參數(shù),將其寫(xiě)入FPGA作為車隊(duì)長(zhǎng)度提取的感興趣區(qū)。
車輛與路面背景之間有明顯的亮度差,因此根據(jù)圖像預(yù)處理所劃定的感興趣區(qū),采用Sobel算子可以有效檢測(cè)出各車道的車輛輪廓。
將前一級(jí)輸出的結(jié)果圖像與水平和垂直方向的兩個(gè)3× 3Sobel算子分別做卷積,其卷積核分別為:
設(shè)計(jì)深度為723的Buffer,并在有效像素時(shí)鐘跳變時(shí)用新輸入的像素更新Buffer;以緩沖區(qū)中地址為361的像素為處理中心,將其3×3鄰域同Kh和Kv分別做卷積,卷積的處理方式與上一模塊相似只是卷積結(jié)果用9個(gè)二進(jìn)制位表示,最高位代表減法方向,0為正向差,1為逆向差;兩個(gè)方向的卷積結(jié)果同時(shí)輸出到下一級(jí),并在有效像素時(shí)鐘改變時(shí)重復(fù)上述操作;該模塊的硬件實(shí)現(xiàn)如圖7所示。
圖7 Sobel邊緣檢測(cè)的硬件化實(shí)現(xiàn)結(jié)構(gòu)圖
經(jīng)過(guò)對(duì)IPM圖像中車道區(qū)域的Sobel檢測(cè),提取出的各車道車輛輪廓如圖8所示。
圖8 Sobel邊緣檢測(cè)結(jié)果圖像
經(jīng)過(guò)IPM變換后,車道標(biāo)識(shí)線相互平行。設(shè)排隊(duì)的起始線和視場(chǎng)范圍最遠(yuǎn)線在圖像中的行坐標(biāo)分別為S和E,對(duì)于第i個(gè)車道,其控制點(diǎn)列坐標(biāo)為L(zhǎng)i和Li+1,如圖9所示。對(duì)輸入的每一有效像素,判斷其列坐標(biāo)y是否滿足Li<y<Li+1,即可確定該像素點(diǎn)是否在第i個(gè)車道范圍內(nèi)。
圖9 車道區(qū)域分割示意圖
從起始行S開(kāi)始,以車道中值為1的像素的累加和作為檢測(cè)車輛存在與否的信息量;設(shè)排隊(duì)車輛的平均間距參數(shù)為N,檢測(cè)車輛存在與否的閾值參數(shù)為Cnt_Th,若從某一行x(x>=S)開(kāi)始的連續(xù)N行圖像其信息量都小于Cnt_Th,,則認(rèn)為車輛信息量在第x行產(chǎn)生了明顯的由高到低的跳變,此時(shí)該行對(duì)應(yīng)了排隊(duì)車輛的隊(duì)尾,
由此,可得到第i個(gè)車道的車輛排隊(duì)長(zhǎng)度計(jì)算公式如式(2)所示。
其中:C(x)為第x行圖像的信息量統(tǒng)計(jì)值,g(x,y)為二值化后的圖像象素。
在該模塊的FPGA實(shí)現(xiàn)時(shí),統(tǒng)計(jì)和比較運(yùn)算在圖像輸入時(shí)同步完成,排隊(duì)長(zhǎng)度的計(jì)算可以在圖像輸入完成前第一次出現(xiàn)滿足式(2)的x時(shí)結(jié)束。圖10為水平投影及排隊(duì)長(zhǎng)度計(jì)算的FPGA實(shí)現(xiàn)電路圖。
圖10 排隊(duì)長(zhǎng)度檢測(cè)邏輯電路圖
經(jīng)過(guò)上述步驟,實(shí)現(xiàn)了對(duì)各車道的排隊(duì)長(zhǎng)度檢測(cè),將各車道的排隊(duì)長(zhǎng)度相加,即可得到路口車流量的一種度量。對(duì)交通路口某一圖像序列的排隊(duì)長(zhǎng)度檢測(cè)結(jié)果如圖11所示。
圖11 車輛排隊(duì)長(zhǎng)度檢測(cè)結(jié)果
本文介紹了一種基于逆透視變換的車流量檢測(cè)算法及其FPGA實(shí)現(xiàn),可以實(shí)現(xiàn)對(duì)交通路口車流量的自動(dòng)實(shí)時(shí)檢測(cè)。該算法具有以下特點(diǎn):
1)在圖像預(yù)處理時(shí)采用逆透視變換得到了無(wú)畸的二維鳥(niǎo)瞰圖像,通過(guò)引入車道標(biāo)志線之間的平行約束和距離約束,準(zhǔn)確的從輸入圖像中檢測(cè)出車道標(biāo)識(shí)線;另外,在消除了視覺(jué)偏差的圖像上進(jìn)行的排隊(duì)長(zhǎng)度檢測(cè)比校正前得到的結(jié)果更加真實(shí)準(zhǔn)確;
2)在算法的FPGA實(shí)現(xiàn)時(shí),將參數(shù)的線下標(biāo)定和圖像的在線實(shí)時(shí)處理相結(jié)合,保證了整個(gè)車流量檢測(cè)過(guò)程的實(shí)時(shí)性;
3)充分發(fā)揮了FPGA的并行處理能力,實(shí)現(xiàn)了對(duì)多個(gè)車道車輛排隊(duì)長(zhǎng)度的并行同步實(shí)時(shí)檢測(cè);
但是,逆透視變換下車道線的平行性等約束只適合于平坦路面下的直道,對(duì)于路面起伏以及彎道的情形,本文提到的車道標(biāo)識(shí)線搜索約束將不再滿足。因此,如何基于逆透視變換提出一種更通用更合理的約束來(lái)適應(yīng)于各種情況下的車流量檢測(cè),將是我們下一步的研究?jī)?nèi)容。
[1]楊永輝,黃 磊,劉昌平.基于視頻分析的車輛排隊(duì)長(zhǎng)度檢測(cè)[J].計(jì)算機(jī)應(yīng)用研究,2011,28(3):1037-1041.
[2]王 闖,史忠科.實(shí)時(shí)車輛排隊(duì)長(zhǎng)度圖像檢測(cè)系統(tǒng)及FPGA硬件實(shí)現(xiàn)[J].交通運(yùn)輸系統(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的太陽(yáng)能充電系統(tǒng)的研究與設(shè)計(jì)[J].重慶大學(xué)學(xué)報(bào),2014(09).
[6]吳 哲,孫 涵.基于快速直線段提取的道路標(biāo)識(shí)線識(shí)別算法[J].計(jì)算機(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。
國(guó)家自然科學(xué)基金重點(diǎn)基金項(xiàng)目(61134004)。
王 闖(1986-),男,河南南陽(yáng)人,工程師,主要從事圖形圖像處理和高速實(shí)時(shí)信號(hào)處理方向的研究。