Hough變換的車道線并行檢測
王賽,徐伯慶,蘇棟騏
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海200093)
摘要針對車道線識別魯棒性的問題,提出了基于Hough變換的車道線檢測方法。為解決Hough變換檢測直線速度慢的問題,文中采用了并行加速處理技術(shù),將待檢測圖片分解成左右兩個感興趣區(qū)域分別分配給兩個CPU,再將兩個CPU并行獨(dú)立運(yùn)行的檢測結(jié)果進(jìn)行匯總。實(shí)驗(yàn)數(shù)據(jù)表明,車道線檢測速度提高了39.1%,車道線檢測質(zhì)量優(yōu)于傳統(tǒng)的串行檢測,提高了Hough變換的車道線檢測實(shí)現(xiàn)效率。
關(guān)鍵詞并行處理;Hough變換;車道線檢測
收稿日期:2015-04-23
作者簡介:王賽(1990—),男,碩士研究生。研究方向:信號與信息處理。E-mail:wangsai_2009@163.com。徐伯慶(1958—),男,博士,副教授。研究方向:通信及圖像處理。
doi:10.16180/j.cnki.issn1007-7820.2015.12.026
中圖分類號TP391.41文獻(xiàn)標(biāo)識碼A
Lane Line Parallel Detection Based on Hough Transform
WANG Sai,XU Boqing,SU Dongqi
(School of Optical-Electrical and Computer Engineering,University of Shanghai for
Science and Technology,Shanghai 200093,China)
AbstractA lane line detecting method based on Hough transformation is proposed to improve the robustness.A parallel accelerated processing technology is adopted to improve the speed of detecting line for Hough transformation.The image to be detected is divided into two interesting regions assigned to two CPUs respectively for processing.Then the two independent detecting results are combined.The experiment results indicate that the detecting speed is increased by 39.1% with higher quality and efficiency than traditional serial detecting.
Keywordsparallel accelerated processing;Hough transformation;lane line detecting
基于視覺的前方車道線檢測技術(shù)是車輛智能駕駛輔助系統(tǒng)的主要研究內(nèi)容。近年來針對車道線視覺檢測問題研究者已提出各種不同算法,如徐巖[1]等人和陳龍[2]等人均提出了不同的檢測方法。本文采用Hough變換檢測車道線,然而利用Hough變換檢測車道線速度比較慢,因此如何加快檢測速度成為本文要解決的主要問題。近年來有學(xué)者提出了將圖像分割成感興趣區(qū)域進(jìn)行檢測,如孫偉等[3]提出的分區(qū)處理,這樣在某種程度上減小了數(shù)據(jù)處理量,從而縮短了檢測時(shí)間,但還是無法達(dá)到實(shí)時(shí)性的要求。本文提出了Hough變換檢測直線的并行處理方法,將一幅圖像分成左右兩個感興趣區(qū)域分配給兩個CPU同時(shí)獨(dú)立并行處理,以實(shí)現(xiàn)快速提高車道線檢測的速度。雖然也有學(xué)者提出將圖像分割成左右兩個感興趣區(qū)域分別檢測左右車道線,但還是基于一個CPU的串行處理,不能大幅減少檢測速度。
1Hough變換原理
Hough變換的原理是利用圖像空間和Hough參數(shù)空間的點(diǎn)、線對偶性[4]。通過在參數(shù)空間里進(jìn)行簡單的累加統(tǒng)計(jì),然后在Hough參數(shù)空間尋找累加器峰值的方法檢測直線。Hough的基本原理如圖1[5]所示,可看出xy平面上的任意一條直線對應(yīng)pθ平面上的一個點(diǎn),如圖1(b)和圖1(c)所示
y=kx+b
(1)
ρ=xcosθ+ysinθ
(2)
為找到xy平面上的直線,文中可將ρθ空間量分成等間隔的小網(wǎng)格,每個小格對應(yīng)一個計(jì)數(shù)陣元。根據(jù)式(2)可知每一個(x0,y0)點(diǎn)對應(yīng)ρθ平面上的一條曲線,這條曲線所經(jīng)過的小格,對應(yīng)的計(jì)數(shù)陣列元素加1。根據(jù)上述原理遍歷感興趣區(qū)域中的全部(x,y)點(diǎn),大計(jì)數(shù)值的小格對應(yīng)于共線點(diǎn)其中小計(jì)數(shù)值的小格則認(rèn)為是孤立點(diǎn),不構(gòu)成直線,應(yīng)該去除。
圖1 Hough變換原理圖
用Hough變換識別車道線,抗噪性能強(qiáng),對直線斷裂、局部遮擋等缺陷不敏感,能將斷開的邊緣相連接,適用于檢測不連續(xù)的車道線。
2并行處理
實(shí)際檢測時(shí),一幅圖像要檢測出兩條車道線,由于在一個CPU上只運(yùn)行一個進(jìn)程,因此檢測過程數(shù)據(jù)處理量大、檢測速度慢?,F(xiàn)將一幅待檢測的圖像分成左右兩幅小圖像,即把左右兩條車道線分開。然后將兩幅小圖像分配給兩個CPU進(jìn)行處理,并將其中一個CPU設(shè)定為主進(jìn)程,另一個設(shè)為從進(jìn)程,兩個CPU同時(shí)對所接收到的圖像數(shù)據(jù)進(jìn)行處理,各進(jìn)程完成自身所承擔(dān)的任務(wù)后將運(yùn)算結(jié)果返回給主進(jìn)程,主進(jìn)程將另一個從進(jìn)程的運(yùn)算結(jié)果接收完畢并結(jié)合自身進(jìn)程的運(yùn)算結(jié)果,統(tǒng)一對其進(jìn)行處理,最終得到檢測結(jié)果。
2.1圖像預(yù)處理
兩個CPU分別對左右車道線進(jìn)行檢測,所以先將圖像分成左右兩部分。因?yàn)閿z像頭安裝在汽車的中間位置,所以拍攝的左右車道線基本上是以圖像的中間為對稱,則以中間為界將圖像分解為左右兩部分。圖像的上半部分多為背景,則可將分解后的左右兩邊的圖像只截取下半部分,那么實(shí)際上要處理的有效區(qū)域是原圖像的左下1/4和右下1/4。圖像分解示意圖如圖2所示。
圖2 圖像分解示意圖
對分解得到的左右兩邊的圖像進(jìn)行灰度化,再進(jìn)行濾波,然后再對濾波后的圖像進(jìn)行二值化。
2.2檢測車道線
首先利用Hough變換對二值化后的圖像求直線。由于檢測出的直線除了車道線之外可能還有干擾直線,所以要將干擾直線去掉[6-8]。因拍攝左右車道線的斜率均是在一個范圍內(nèi)變化的,且變化較小,則可根據(jù)斜率來去除干擾直線,然后分別將左右圖像上檢測出的多條直線連接起來,從而求出兩條有寬度的完整車道線[9]。
因利用Hough變換檢測出的兩條完整的車道線的灰度值為255,文中將在原圖像上對應(yīng)的像素點(diǎn)的G和B值置零,R值置255,原圖像上的其他像素點(diǎn)不變,則會在原圖像上的左右車道線的位置上分別得到一條紅色的線,即檢測出的車道線[10]。
3程序設(shè)計(jì)流程
本文的實(shí)驗(yàn)程序代碼是利用C++語言結(jié)合Visual Studio 2008軟件開發(fā)系統(tǒng)編寫,并制作了一個基于對話框的簡單界面,方便車道線檢測的操作。圖3是本文的并行車道線檢測算法的程序流程圖。
圖3 程序流程圖
由圖3可知,車道線的檢測過程為:將載入的完整圖像分解為左右兩個感興趣區(qū)域,分別送給兩個CPU進(jìn)行并行處理,先將圖像灰度化、濾波,然后分別求出路面灰度值,根據(jù)所求的灰度值進(jìn)行二值化,對二值化后的圖像進(jìn)行Hough變換,然后根據(jù)Hough變換所求的多條直線分別求出一條完整的車道線,最后將并進(jìn)檢測出的兩條車道線匯總。
其中二值化是一個重要步驟,二值化結(jié)果的優(yōu)劣直接影響到Hough變換檢測直線的質(zhì)量,所以要選擇一個合適的二值化閾值。由圖2可知,分解得到的左圖像的右下區(qū)域和右圖像的左下區(qū)域基本都是路面區(qū)域,則分別求出左圖像右下區(qū)域和右圖像左下區(qū)域像素的均值T1和T2,近似看成路面的平均灰度值。左右車道線的灰度值要比求出的左右路面的灰度值大,實(shí)驗(yàn)證明以T1+50和T2+60分別作為左右圖像二值化的閾值,得到的二值化圖像較好。因?yàn)樽筌嚨谰€比較靠近路邊,則左車道線受環(huán)境變換影響較大,相比右車道線灰度值稍小,所以對分解后的左右圖像進(jìn)行二值化的閾值選取也有所不同。
4檢測結(jié)果及分析
在由兩個雙CPU節(jié)點(diǎn)組成的集群系統(tǒng)上實(shí)驗(yàn),節(jié)點(diǎn)CPU采用Intel ? CoreTMi5處理器。試驗(yàn)中選用的圖像在行駛的汽車上用手機(jī)拍攝,圖像大小為640×360。表1是傳統(tǒng)的串行方法和本文所應(yīng)用的并行方法檢測多幅圖像時(shí)分別求出所用的平均時(shí)間。由于左車道線是實(shí)線,而右車道線是虛線,則利用Hough變換時(shí)參數(shù)有所不同,所以檢測車道線所用的時(shí)間也有所差異。
表1 檢測車道線的平均時(shí)間表
并行運(yùn)算結(jié)果表明:采用兩個CPU并行檢測左右車道線比傳統(tǒng)串行檢測方法的速度提高了39.1%。圖4和圖5所示分別是車道線串行檢測和并行檢測結(jié)果圖。
由圖4和圖5可看出,傳統(tǒng)串行檢測方法檢測的結(jié)果沒有并行檢測方法的檢測結(jié)果好。第20幀、70幀、410幀的左車道線以及第130幀、370幀的右車道線的對比結(jié)果比較明顯。利用Hough串行檢測左右車道線時(shí),參數(shù)設(shè)置相同,往往不能兼顧左右兩條車道線。而利用Hough并行檢測左右車道線時(shí),可根據(jù)左右車道線具體情況分別設(shè)置參數(shù)求直線,所以并行檢測效果更好。
圖4 車道線串行檢測結(jié)果圖
圖5 車道線并行檢測結(jié)果圖
5結(jié)束語
利用Hough變換檢測車道線采用多CPU并行處理的方式相比傳統(tǒng)的串行處理方式,不僅大幅縮短了檢測時(shí)間,且由于檢測左右車道線時(shí)是相互獨(dú)立的,所以可根據(jù)左右車道線的具體情況來分別設(shè)定參數(shù),這樣的檢測效果比串行檢測更好。
下一步的工作包括如何在并行檢測的情況下優(yōu)化算法,從而提高檢測速度和質(zhì)量,以及如何通過增加CPU的個數(shù)進(jìn)一步減小檢測速度。
參考文獻(xiàn)
[1]徐巖,雷濤.基于形態(tài)學(xué)方法的車道線檢測算法研究[J].鐵道學(xué)報(bào),2009,31(1):107-110.
[2]陳龍,李清泉,毛慶洲.基于成像模型的車道線檢測與跟蹤方法[J].中國公路學(xué)報(bào),2011,24(6):96-102.
[3]孫偉,張小瑞,唐慧強(qiáng),等.Hough變換和最小二乘擬合的車道線協(xié)調(diào)檢測[J].光電工程,2011,38(10):13-19.
[4]謝茜.基于視覺的車道線檢測與識別[D].武漢:武漢理工大學(xué),2013.
[5]劉富強(qiáng),張姍姍,朱文紅,等.一種基于視覺的車道線檢測與跟蹤算法[J].同濟(jì)大學(xué)學(xué)報(bào):自然科學(xué)版,2010,38(2):223-229,306.
[6]Liu Z,Wang S,Ding X.ROI perspective transform based road marking detection and recognition[C].Shanghai:2012 International Conference on Audio,Language and Image Processing(ICALIP),2012.
[7]Li W,Gong X,Wang Y,et al.A lane marking detection and tracking algorithm based on sub-regions[C].Qingdao:2014 International Conference on Informative and Cybernetics for Computational Social Systems (ICCSS),2014.
[8]Liu X,Dai B,Song J,et al.Real-time long-range lane detection and tracking for intelligent vehicle[C].Hefei:2011 Sixth International Conference on Image and Graphics (ICIG),2011.
[9]Wang J,An X.A multi-step curved lane detection algorithm based on hyperbola-pair model[C].Hong Kong and Macau:2010 IEEE International Conference on Automation and Logistics (ICAL),2010.
[10]魯曼,蔡自興,李儀.道路區(qū)域分割的車道線檢測方法[J].智能系統(tǒng)學(xué)報(bào),2011,5(6):505-509.