謝紅韜,楊斌,張翠芳
(西南交通大學(xué) 智能系統(tǒng)與控制實驗室,成都 611756)
一種照度自適應(yīng)車道檢測算法及多核平臺實現(xiàn)
謝紅韜,楊斌,張翠芳
(西南交通大學(xué) 智能系統(tǒng)與控制實驗室,成都 611756)
針對車道線檢測,基于圖像白平衡算法和灰度直方圖,自適應(yīng)地提取出感興趣區(qū)域,并自適應(yīng)確定Canny邊緣檢測算法的高低閾值。通過對概率霍夫變換得到的直線點(diǎn)集進(jìn)行RANSAC擬合,滿足了在不同光照條件下的自適應(yīng)車道線檢測,并基于英偉達(dá)Jetson TK1嵌入式開發(fā)板結(jié)合開源GUI庫Qt,使用其Qt Quick開發(fā)出一套車道線檢測系統(tǒng)。
車道線檢測;Canny邊緣檢測;霍夫變換;Jetson TK1;Qt Quick
車道線檢測主要用于駕駛輔助和無人駕駛系統(tǒng),根據(jù)攝像頭數(shù)量,分為單目和雙目兩種檢測系統(tǒng)。出于實時性和經(jīng)濟(jì)性的考慮,一般采用單目檢測,在對采集過來的圖像預(yù)處理之后進(jìn)行邊緣檢測和霍夫變化,提取出圖像中的直線,并由各類擬合算法擬合出車道線。通常在車道線檢測中,不同光照條件下,對于傳統(tǒng)固定值的車道檢測算法有非常大的影響,經(jīng)常出現(xiàn)長時間無法檢測到車道線的情況。本文通過灰度世界算法對圖像進(jìn)行白平衡處理,能很好過濾掉攝像頭采集過來的圖像的光照噪聲。對于車道線檢測的感興趣區(qū)域(ROI),一般在圖像的下半部分,即車道消失的點(diǎn)到圖像底部。傳統(tǒng)車道線檢測對ROI的提取,通常為圖像的某一固定區(qū)域,由于行駛過程中,車道消失點(diǎn)是不斷變化的,所以本文通過灰度世界算法得到的灰度平均值結(jié)合灰度分布統(tǒng)計,提取出感興趣區(qū)域,并應(yīng)用到之后的Canny算法閾值的確定,達(dá)到自適應(yīng)的車道線檢測。根據(jù)改進(jìn)的車道線檢測算法,基于Nvidia Jetson TK1嵌入式平臺結(jié)合Qt Quick實現(xiàn)實時車道線檢測系統(tǒng)。
傳統(tǒng)的車道線檢測,尤其在嵌入式環(huán)境下運(yùn)行,不具有較好的實時性。為適應(yīng)車道線檢測的實時性和在可移動平臺上配置的原理,本文提出了光照環(huán)境自適應(yīng)的車道檢測算法,并在 Nvidia Jetson TK1嵌入式開發(fā)平臺上進(jìn)行實現(xiàn)。Jeston TK1嵌入式平臺搭載一塊4核ARM Cortex-A15架構(gòu)CPU,同時內(nèi)置一塊型號為“GK20a”的Kepler架構(gòu)GPU,可由12 V電源驅(qū)動供電,并配有PCle、HDMI、USB3.0等接口,其尺寸大小為12.7 cm×12.7 cm,具有體積小、功耗低、運(yùn)算速度快等優(yōu)點(diǎn)。在該平臺上可實現(xiàn)快速圖像處理,并且具有嵌入式平臺的可移動特性。
本文的總體架構(gòu)如圖1所示。采用ANC狼魔高清網(wǎng)絡(luò)攝像頭,通過USB3.0使其與 Jetson TK1進(jìn)行連接,由程序采集圖像數(shù)據(jù)并封裝,通過本文在Jetson TK1上實現(xiàn)自適應(yīng)車道線檢測算法,檢測并擬合出車道線。最后,使用HDMI接口連接高清顯示器,通過圖形界面把車道圖像及車道數(shù)據(jù)實時輸出到屏幕進(jìn)行顯示。
圖1 系統(tǒng)總體架構(gòu)
傳統(tǒng)的車道線檢測總是對周圍的環(huán)境光照比較敏感,車道特性容易被環(huán)境光照影響而干擾算法的檢測,以至于得不到較好的結(jié)果,并且傳統(tǒng)檢測算法的感興趣區(qū)域和邊緣檢測閾值比較固定,不具有普適性。本文基于灰度世界算法假設(shè)對輸入圖像進(jìn)行白平衡處理,過濾掉光照噪聲,還原真實圖像,并集合灰度分布統(tǒng)計和分離縱向灰度搜索,自適應(yīng)地找出圖像的感興趣區(qū)域(ROI)和確定Canny邊緣檢測地高低閾值。最后結(jié)合概率霍夫變換和隨機(jī)抽樣一致性算法檢測并擬合出車道線。算法滿足不同光照條件下的自適應(yīng)檢測原則,可以很好地檢測出車道線并具有較好的實時性。其總體算法步驟如圖2所示。
圖2 總體算法步驟
(1)
根據(jù)VonKries對角模型,對每一個像素點(diǎn)的每一個通道分別乘以相應(yīng)的增益系數(shù),調(diào)整其R、G、B分量,得到平衡過后的圖像。使用灰度世界算法對圖像進(jìn)行白平衡,可以消除不同光照條件對圖像的影響,最大限度還原真實圖像。
在圖像處理領(lǐng)域,感興趣區(qū)域(ROI)的提取能有效地縮減圖像處理的范圍,減少了后續(xù)圖像處理時間。傳統(tǒng)的車道線檢測,其ROI的范圍比較固定,在現(xiàn)實的車道環(huán)境下不具有普適性和可配置性。對于車道圖像,一般分為兩個區(qū)域:上半部分為天空區(qū)域,下半部分為車道區(qū)域,兩個區(qū)域呈現(xiàn)明顯的灰度特征。本文針對車道圖像的該特性提出一種分離式縱向灰度搜索方法,針對不同的車道線圖像,能有效地提取出感興趣區(qū)域。其算法步驟如下:①灰度圖按圖片高度分成1:1兩個部分;②分別對兩部分圖片作灰度分布統(tǒng)計,得出兩部分的灰度平均值aveTop和aveBottom;③對于二者灰度平均值大小結(jié)合最大統(tǒng)計灰度值像素采取不同的縱向灰度搜索策略,具體搜索策略如圖3所示。
圖3 縱向灰度搜索策略
對于一般的Canny算法,其高低閾值都需要自己手動設(shè)定,固定的閾值對于不同的圖像不具有普適性,就車道檢測來說,固定的閾值在某些環(huán)境下,不僅會存在車道圖像因邊緣模糊而無法提取的情況,更會存在閾值過低而造成無用的邊緣數(shù)量過多的情況。本文結(jié)合灰度分布統(tǒng)計,采用改進(jìn)的自適應(yīng)閾值Canny算法對圖像中物體的邊緣進(jìn)行檢測,得到含有效車道邊緣的二值化圖像。Canny算法是John F. Canny于 1986 年開發(fā)出來的一個多級邊緣檢測算法。它有圖4所示的X方向和圖5所示的Y方向兩個一階邊緣檢測算子,對圖像的每個像素作卷積,求取梯度幅值及梯度方向。
-101-202-101圖4 X方向檢測算子121000-1-2-1圖5 Y方向檢測算子
式(2)和式(3)為計算X方向和Y方向的梯度,由式(4)、式(5)求取梯度幅值及梯度方向。
(2)
(3)
(4)
(5)
再對梯度幅值進(jìn)行非極大值抑制的邊緣細(xì)化,過濾掉偽邊緣點(diǎn),即在梯度幅值較大的邊緣點(diǎn),沿著它的梯度方向區(qū)域內(nèi)同樣存在較大梯度幅值的點(diǎn)才能被算作邊緣點(diǎn)。
Canny算法提出的雙閾值檢測的概念能有效地提取出圖像內(nèi)物體邊緣。設(shè)定高低閾值,比較梯度幅值與高閾值,小于高閾值的,判定為邊緣,但由于閾值較高,產(chǎn)生的圖像邊緣可能不閉合,在高閾值圖像中把邊緣鏈接成輪廓,當(dāng)?shù)竭_(dá)輪廓的端點(diǎn)時,在斷點(diǎn)的8鄰域點(diǎn)中尋找滿足梯度幅值高于低閾值的點(diǎn),再根據(jù)此點(diǎn)收集新的邊緣,直到整個圖像邊緣閉合。
高低閾值的選取直接關(guān)系到整個圖像邊緣的提取是否成功。對于車道線圖像,車道線為白線或紅線,其灰度值一般總是大于車道的灰度值。本文根據(jù)車道線的特性,結(jié)合灰度分布統(tǒng)計,自適應(yīng)地選取高低閾值。根據(jù)灰度分布統(tǒng)計,如式(6)、式(7)所示,把大于灰度平均值最大灰度分布的像素和小于灰度平均值最大分布像素之差作為低閾值。再把該低閾值乘以1.5倍作為高閾值。通過該自適應(yīng)閾值可有效提取出車道線特性。
(6)
(7)
在得到二值化的邊緣圖像后,通過概率霍夫變換,提取出圖像中的直線,得到直線的點(diǎn)集。傳統(tǒng)的車道線檢測對霍夫變換的點(diǎn)集通過最小二乘法進(jìn)行擬合車道線。簡單的最小二乘法容易受到噪聲的干擾,如果點(diǎn)集內(nèi)有某個點(diǎn)不屬于直線,得到的結(jié)果和希望擬合的結(jié)果存在較大的偏差。本文通過隨機(jī)抽樣一致性算法(RANSAC)進(jìn)行直線擬合,可以有效地排除掉噪聲點(diǎn),得到與希望擬合的車道線誤差較小的結(jié)果。隨機(jī)抽樣一致性算法是一種基于數(shù)學(xué)模型進(jìn)行擬合的方法,它采用迭代的方式從一組包含離群的被觀測數(shù)據(jù)中估算出數(shù)學(xué)模型的參數(shù)。它的算法步驟為:①在數(shù)據(jù)中隨機(jī)選擇幾個點(diǎn)設(shè)定為內(nèi)群;②計算擬合內(nèi)群的模型;③把其他剛才沒選到的點(diǎn)帶入剛才建立的模型中,計算是否為內(nèi)群,記下內(nèi)群數(shù)量;④重復(fù)以上步驟多做幾次;⑤比較哪次計算中內(nèi)群數(shù)量最多,內(nèi)群最多的那次所建的模型就是所要求的解。
對于本文通過霍夫變換檢測出來的點(diǎn)集,隨機(jī)抽樣一致性算法相比于傳統(tǒng)的最小二乘法具有更好的擬合效果,通過迭代能夠去掉許多干擾噪聲,得到精確的直線模型。
本系統(tǒng)的實驗平臺基于NvidiaJetsonTK1嵌入式開發(fā)板。圖6為系統(tǒng)實圖,以JetsonTK1作為嵌入式平臺,通過USB3.0接入攝像頭進(jìn)行圖像數(shù)據(jù)采集,系統(tǒng)攝像頭使用ANC狼魔高清網(wǎng)絡(luò)攝像頭,采集的圖像分辨率為640×480,幀率為30fps。再通過HDMI轉(zhuǎn)VGA數(shù)據(jù)線外接顯示屏作為圖形界面的顯示,顯示器為LenovoThinkVisionL2250p,分辨率為1680×1050。JetsonTK1裸機(jī)需通過JetPack進(jìn)行裝機(jī)配置,JetPackforL4T是Nvidia公司針對Tegra平臺的Linux系統(tǒng)提供的軟件包管理器。在對JetsonTK1進(jìn)行配置的時候,把JetsonTK1通過USB與安裝有JetPack的電腦進(jìn)行連接,可以快速地安裝配置需要的軟件。本文用到的OpenCV4Tegra和Qt皆通過這種方法進(jìn)行配置。
圖6 車道檢測系統(tǒng)實圖
在對處理過后的圖像及數(shù)據(jù)進(jìn)行顯示的時候,本文采用了Qt4.7版本推出的高級用戶界面技術(shù)Qt Quick,使用它可輕松地創(chuàng)建供移動和嵌入式設(shè)備使用的動態(tài)觸摸式界面和輕量級應(yīng)用程序。相比于傳統(tǒng)使用C++進(jìn)行Qt界面構(gòu)建,它新增了一門更加方便的語言QML,它的語法類似于Javascript,相對于傳統(tǒng)的Qt界面構(gòu)建技術(shù),雖然增加了學(xué)習(xí)成本,但使用它可以輕松快速地創(chuàng)建更加美觀的界面。本文使用的軟件版本為Qt5.3及 Qt Quick 2.0。
4.1 去除環(huán)境光照影響
對于復(fù)雜的光照條件,選取如下兩個特殊情況作為算法驗證,如圖7所示,車輛在陰雨天氣下行駛時,整幅圖像由于陰雨天氣和周遭環(huán)境呈現(xiàn)暗淡的藍(lán)色,車道線也呈現(xiàn)暗淡的藍(lán)色。圖8為車輛在暗黃色光的隧道中行駛時,車道及圖像呈現(xiàn)暗黃色。兩幅圖像都受到了不同光照的影響。
圖7 陰雨天氣車道圖像
圖8 開燈隧道車道圖像
圖9 陰雨天氣白平衡圖
圖10 開燈隧道白平衡圖
在采用灰度世界法對圖像白平衡化后,能夠有效地消除環(huán)境光照對圖像的影響。圖9和圖10為白平衡過后的車道圖像,可以明顯看出通過白平衡過后的圖像消除了環(huán)境光照的影響,更趨近于真實世界的圖像反映,并且車道線呈現(xiàn)更明亮的白色,跟車道部分也呈現(xiàn)更加清晰的邊緣。表1為兩幅圖像在白平衡之前和白平衡之后的3通道平均值對比,數(shù)據(jù)顯示,經(jīng)過白平衡后,增強(qiáng)了數(shù)值較低的分量且削弱了數(shù)值較大的分量,圖像的3個通道都趨近于一個平均值,滿足灰度世界假設(shè)。
表1 圖像3通道平均值對比
4.2 自適應(yīng)感興趣區(qū)域查找
如圖11所示,通過分離式灰度縱向搜索法,得到的圖像感興趣區(qū)域頂點(diǎn)處于車道消失點(diǎn)附近,可以在不同的車道環(huán)境下有效提取出針對車道檢測的感興趣區(qū)域。
圖11 分離式縱向灰度搜索法ROI結(jié)果
4.3 自適應(yīng)閾值Canny算法
如圖12所示,無需通過手動設(shè)置閾值,由之前對圖像的預(yù)處理,結(jié)合灰度分布統(tǒng)計得到的自適應(yīng)Canny算法高低閾值,通過Canny邊緣檢測在感興趣區(qū)域可以得出明顯的車道邊緣。
圖12 自適應(yīng)閾值Canny算法結(jié)果
4.4 車道線檢測結(jié)果
通過概率霍夫變換和RANSAC對車道線進(jìn)行擬合,可以在圖像中很好地標(biāo)定出車道線,圖13為車道線檢測結(jié)果,通過本文算法,在不同光照環(huán)境條件下,可以自適應(yīng)地調(diào)整圖像并檢測出車道線,且得到較好的檢測結(jié)果,并且在Jetson TK1嵌入式平臺上可以實現(xiàn)算法運(yùn)算速度小于20 ms,平均幀率在70 fps左右。
圖13 車道線檢測結(jié)果
4.5 圖形界面顯示
本文通過適用于嵌入式領(lǐng)域的跨平臺C++圖形界面庫Qt,結(jié)合其最新的圖形界面構(gòu)建技術(shù)Qt Quick,構(gòu)建出界面整潔的車道線檢測系統(tǒng)。如圖14所示,主體車道被標(biāo)定出來顯示在界面的左半部分,右半部分為實時車道數(shù)據(jù),可以顯示出圖像數(shù)據(jù)的處理幀率、車道線條數(shù),并附有車道縮略圖及相對于車道的行進(jìn)姿態(tài)。整個系統(tǒng)簡潔明了、運(yùn)行流暢,能夠很好得到車道圖像及數(shù)據(jù),極大程度上輔助了司機(jī)駕駛。
圖14 系統(tǒng)界面
[1] Chong H Y,Gortler S J,Zickler T.The von Kries hypothesis and a basis for color constancy[C]//Computer Vision,IEEE 11th International Conference on.IEEE,2007:1-8.
[2] Rong W,Li Z,Zhang W,et al.An improved CANNY edge detection algorithm[C]//Mechatronics and Automation (ICMA),2014 IEEE International Conference on.IEEE,2014:577-582.
[3] Gonzalez J P,Ozguner U.Lane detection using histogram-based segmentation and decision trees[C]//Intelligent Transportation Systems,2000.
[4] 彭紅,肖進(jìn)勝,沈三明,等.一種基于隨機(jī)抽樣一致性的車道線快速識別算法[J].上海交通大學(xué)學(xué)報,2014,48(12):1721-1726.
[5] 范朋.基于Qt的嵌入式Linux系統(tǒng)GUI的研究與實現(xiàn)[D].北京:北京郵電大學(xué),2011.
[6] 鄭純軍,賈寧.基于Qt Quick的跨平臺移動應(yīng)用開發(fā)關(guān)鍵技術(shù)研究[J].軟件工程師,2015(4):33-35.
謝紅韜(碩士研究生),研究方向為嵌入式與智能控制;楊斌(教授),研究方向為嵌入式系統(tǒng);張翠芳(教授),研究方向為智能控制。
An Illustration Self-adaptive Lane Detection Algorithm and Multicore Platform
Xie Hongtao,Yang bin,Zhang Cuifang
(Intelligent System and Control Laboratory,Southwest Jiaotong University,Chengdu 611756,China)
Aiming at the problem of lane detection,the algorithm is proposed which can adaptively extract the region of interest and determine the high and low threshold of Canny edge detection algorithm,the algorithm is based on the image white balance algorithm and gray histogram.Through the RANSAC fitting of the linear point set obtained by the probabilistic Hough transform,the algorithm can meet the requirements of the adaptive lane detection under different illumination conditions.In the paper,the Qt Quick is used to develop a lane detection system based on the NVIDIA Jetson TK1 embedded development board and the open-source GUI library Qt.
lane detection;Canny edge detection;Hough transform;Jetson TK1;Qt Quick
TP751.1
A
?士然
2017-03-13)