白松讓,段 敏,曹景勝,鄭 蘇, 楊曉麗
基于OpenCV的車道線智能檢測(cè)和識(shí)別
白松讓,段 敏,曹景勝,鄭 蘇, 楊曉麗
(遼寧工業(yè)大學(xué) 汽車與交通工程學(xué)院,遼寧 錦州 121001)
隨著智能駕駛系統(tǒng)的發(fā)展和普及,準(zhǔn)確識(shí)別駕駛環(huán)境變得非常關(guān)鍵,車道線檢測(cè)技術(shù)可以為車輛提供自身位置信息是高級(jí)駕駛輔助系統(tǒng)和自動(dòng)駕駛系統(tǒng)的重要組成部分。提出了一種基于開源計(jì)算機(jī)視覺庫(kù)(OpenCV)進(jìn)行車道線智能檢測(cè)和識(shí)別的方法,首先對(duì)圖像進(jìn)行灰度化、高斯模糊得到模糊圖像,然后通過(guò)坎尼(Canny)邊緣檢測(cè)算法得到邊緣圖像,最后對(duì)得到的邊緣圖像進(jìn)行霍夫變換實(shí)現(xiàn)智能檢測(cè)并識(shí)別出車道線。
車道線檢測(cè);開源計(jì)算機(jī)視覺庫(kù);Canny邊緣檢測(cè);霍夫變換
近年來(lái),隨著車輛數(shù)量的急劇增加,國(guó)內(nèi)外對(duì)智能交通領(lǐng)域方面的關(guān)注與投入日益提高,交通安全問(wèn)題開始受到越來(lái)越多人們的關(guān)注,據(jù)相關(guān)研究,由于駕駛員的疏忽造成了眾多交通事故的發(fā)生,為了降低駕駛員的駕駛難度和疲勞程度,保證車輛的安全行駛,降低交通事故的發(fā)生率,車道線檢測(cè)識(shí)別、前車檢測(cè)識(shí)別、行人檢測(cè)識(shí)別、交通標(biāo)識(shí)檢測(cè)識(shí)別等高級(jí)駕駛輔助系統(tǒng)關(guān)鍵技術(shù)成為了研究熱點(diǎn),張道芳等采用語(yǔ)義分割的DeeplabV3+模型實(shí)現(xiàn)了一種優(yōu)于傳統(tǒng)檢測(cè)的方法[1]。劉萍等采用了最優(yōu)閾值法和反透視變換法實(shí)現(xiàn)對(duì)車道線的劃分并及對(duì)無(wú)人車的導(dǎo)航[2]。計(jì)算機(jī)視覺庫(kù)(OpenCV)由C函數(shù)和C++類構(gòu)成,能夠?qū)崿F(xiàn)圖像處理和計(jì)算機(jī)視覺方面的通用算法,具有輕量高效的特點(diǎn),被廣泛應(yīng)用于自動(dòng)駕駛和汽車安全駕駛系統(tǒng)。本文以機(jī)器視覺理論為基礎(chǔ),基于開源計(jì)算機(jī)視覺庫(kù)(OpenCV),以采集的道路圖像為研究對(duì)象,提出了一種結(jié)合Canny邊緣檢測(cè)和霍夫變換的車道線檢測(cè)和準(zhǔn)確識(shí)別的方法。
車道線檢測(cè)和識(shí)別基本流程如圖1所示通過(guò)高精度攝像頭獲取自車行駛的前方道路原始圖像后,對(duì)原始圖像進(jìn)行灰度化處理、圖像降噪(高斯模糊)、Canny算子邊緣提取得到邊緣圖像后,經(jīng)霍夫變換檢測(cè)直線并與原圖結(jié)合準(zhǔn)確識(shí)別出車道線。
圖1 車道線檢測(cè)和識(shí)別基本流程圖
在對(duì)圖像進(jìn)行數(shù)字處理時(shí),往往需要把彩色圖像轉(zhuǎn)換為灰度圖像以加快圖像處理速度,其中24位的彩色圖像用三個(gè)字節(jié)表示每個(gè)像素,每個(gè)字節(jié)分別對(duì)應(yīng)著RGB中三個(gè)分量的亮度。當(dāng)RGB中3個(gè)分量亮度值不同時(shí),圖像便表現(xiàn)為彩色圖像;當(dāng)RGB中3個(gè)分量亮度值相同時(shí),圖像表現(xiàn)為灰度圖。圖像灰度轉(zhuǎn)換的方法有分量法,最大值法,平均值法和加權(quán)平均法,對(duì)應(yīng)的算法公式如下所示:
(1)最大值法:
(3)加權(quán)平均法:
本次采用的灰度轉(zhuǎn)換的方法為加權(quán)平均法,其根據(jù)RGB和HSV顏色空間的變化關(guān)系,將RGB三通道分量分別乘以不同的比例(權(quán)值)后相加。其中綠色通道所占的權(quán)值最高,藍(lán)色光線所占權(quán)值最低,符合人眼對(duì)于光線的敏感程度,故按照加權(quán)平均法對(duì)彩色圖像RGB三通道分量進(jìn)行加權(quán)平均便能得到較合理的灰度圖像。圖像的灰度轉(zhuǎn)換可以通過(guò)OpenCV庫(kù)中的CvtColor函數(shù)實(shí)現(xiàn)。其灰度化后的圖像如圖2所示。
高斯模糊又叫高斯平滑或者高斯濾波,是一種常用的用于消除圖像中的高斯噪聲的線性平滑濾波算法,其本質(zhì)上是低通濾波器,即輸出圖像像素點(diǎn)的像素值是原圖像對(duì)應(yīng)像素點(diǎn)與周圍像素點(diǎn)的像素值進(jìn)行加權(quán)求和之后得到值,即用高斯分布權(quán)值矩陣與原始圖像矩陣做卷積運(yùn)算。在計(jì)算機(jī)視覺計(jì)算中,高斯模糊所使用的高斯核為x方向和y方向上的兩個(gè)一維高斯的乘積,兩個(gè)維度上的方差通常相同。高斯模糊的數(shù)學(xué)公式為:
(1)一維高斯分布:
(2)二維高斯分布:
其中,是方差,和表示示所用高斯核的中心。
對(duì)圖像的處理為二維高斯分布的應(yīng)用,高斯模糊后圖像的平滑程度取決于方差的大小。高斯模糊的輸出為對(duì)應(yīng)像素領(lǐng)域像素的加權(quán)平均,而離中心像素越近的像素權(quán)重越高。由于在計(jì)算過(guò)程中引入了權(quán)值和方差的概念,故經(jīng)過(guò)高斯模糊處理后的圖像與均值濾波處理后圖像相比平滑效果會(huì)更好圖像會(huì)更加柔和,并且對(duì)圖像邊緣保留的程度也會(huì)更好。至于高斯分布的權(quán)重矩陣,是對(duì)二高斯函數(shù)進(jìn)行采樣和歸一化之后的結(jié)果。高斯矩陣的尺寸越大,標(biāo)準(zhǔn)差就會(huì)越大,處理后圖像的模糊程度就會(huì)越強(qiáng),通常采用3*3的高斯核對(duì)圖像進(jìn)行處理。
本次采用的Canny邊緣檢測(cè)算法是一種邊緣檢測(cè)算法,在灰度轉(zhuǎn)換和高斯模糊的基礎(chǔ)上進(jìn)行梯度幅值和方向的計(jì)算,通過(guò)非最大信號(hào)抑制和高低閾值的連接,輸出二值圖像,Canny算法與其他算法相比其抗干擾能力更強(qiáng),噪聲更小,輸出的圖像更平滑邊緣連續(xù)性更好,Canny算法的流程如下。
圖3 高斯模糊處理后的圖像
進(jìn)行像素梯度處理后的圖像需要進(jìn)行非最大信號(hào)抑制來(lái)細(xì)化圖像邊緣,去除非邊緣信號(hào),并檢測(cè)邊緣像素周圍像素,若其像素值小于邊緣信號(hào)的像素值則將像素值取零(去除),只留下邊緣信號(hào),非最大信號(hào)抑制保留了局部梯度值最大的信號(hào),抑制了所有其他的梯度值信號(hào)。因此經(jīng)非最大信號(hào)抑制處理后圖像只保留了梯度變化中最銳利的位置。
圖4 Canny邊緣檢測(cè)處理后的圖像
在非最大信號(hào)抑制的基礎(chǔ)上對(duì)圖像進(jìn)行高低閾值的連接,處理時(shí)需提前設(shè)定一個(gè)高閥值和一個(gè)低閥值來(lái)進(jìn)行邊緣像素的區(qū)分。將邊緣像素點(diǎn)梯度值大于高閥值的像素點(diǎn)視作強(qiáng)邊緣點(diǎn);邊緣梯度值小于高閥值,大于低閥值的視作弱邊緣點(diǎn);像素值小于低閥值的像素點(diǎn)則抑制掉。再將強(qiáng)邊緣點(diǎn)附近的弱邊緣點(diǎn)與強(qiáng)邊緣點(diǎn)連接得到最終的二值圖像。進(jìn)行Canny算法處理過(guò)的圖像如圖4所示。
霍夫變換直線檢測(cè)需在邊緣檢測(cè)完成的前提下進(jìn)行,在圖像中尋找直線,實(shí)現(xiàn)圖像從平面空間到極坐標(biāo)空間的轉(zhuǎn)換。
=* cos+* sin
式中:為直角坐標(biāo)系中原點(diǎn)到直線的距離;為與x軸的夾角。
極坐標(biāo)系中的表達(dá)式=*cos(),=*sin()。因原圖像在平面坐標(biāo)系中,故點(diǎn)(,)已知,可以將參數(shù)與看成未知數(shù),則在原圖像中同一條直線上的點(diǎn)的和在參數(shù)坐標(biāo)系(-中的圖象是共點(diǎn)的,又每個(gè)(,)點(diǎn),在參數(shù)坐標(biāo)系中都對(duì)應(yīng)一條相應(yīng)的曲線,所以如果個(gè)點(diǎn)(,)共線,這個(gè)點(diǎn)在參數(shù)坐標(biāo)系中所對(duì)應(yīng)的曲線會(huì)有一個(gè)公共點(diǎn),如圖5(2)所示,對(duì)于每個(gè)像素點(diǎn)來(lái)說(shuō),不同的對(duì)應(yīng)的不同,對(duì)圖像中的所有邊緣點(diǎn)進(jìn)行處理,找出所有公共點(diǎn),再反算到平面坐標(biāo)中就可得到直線上各點(diǎn)的像素坐標(biāo),通過(guò)設(shè)置參數(shù)累加器和直線繪制函數(shù)得到直線。
基于上述研究進(jìn)行實(shí)驗(yàn)測(cè)試和分析,選用的硬件平臺(tái)為 Intel CORE i5 處理器、4 G 內(nèi)存,軟件方面基于計(jì)算機(jī)視覺庫(kù) OpenCV 3 4. 1 版本,采用 C + +語(yǔ)言在 Visual Studio 2015 開發(fā)環(huán)境中進(jìn)行了算法代碼開發(fā)。經(jīng)過(guò)霍夫變換直線檢測(cè)后的圖像如圖6所示。
圖6 霍夫變換檢測(cè)車道線
車道線的智能檢測(cè)與識(shí)別是實(shí)現(xiàn)汽車無(wú)人駕駛的關(guān)鍵技術(shù)之一,本文以數(shù)字圖像處理為理論研究了車道線檢測(cè)和識(shí)別的步驟,在此基礎(chǔ)上基于OpenCV開源計(jì)算機(jī)視覺庫(kù)在Visual Studio 2015開發(fā)環(huán)境中進(jìn)行了代碼編寫,經(jīng)過(guò)運(yùn)行,成功檢測(cè)并準(zhǔn)確識(shí)別出車道線,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。
[1] 張道芳, 張儒良. 基于語(yǔ)義分割的車道線檢測(cè)算法研究[J]. 科技創(chuàng)新與應(yīng)用, 2019(6): 14-16.
[2] 劉萍, 孫耀航. 基于反透視變換的車道線檢測(cè)算法[J]. 計(jì)算機(jī)與數(shù)字工程, 2019, 47(3): 678-681.
[3] 王文豪, 高利. 一種基于OpenCV的車道線檢測(cè)方法[J].激光雜志 ,2019, 40(1): 44-47.
[4] 任桐慧, 曹為政. 基于opencv的視頻道路車道線檢測(cè)方法研究[J]. 科學(xué)技術(shù)創(chuàng)新, 2018(23): 74-75.
[5] 李亞娣, 黃海波, 李相鵬, 等. 基于Canny算子和Hough變換的夜間車道線檢測(cè)[J]. 科學(xué)技術(shù)與工程, 2016, 16(31): 234-237.
[6] 姜良超, 李傳友, 殷凡青. 基于OpenCV的車道線檢測(cè)[J]. 摩托車技術(shù), 2018(8): 41-44.
Intelligent Detection and Recognition of Lane Line Based on OpenCV
BAI Song-rang, DUAN Min, CAO Jing-sheng, ZHENG Su,YANG Xiao-li
(School of Automobile and Traffic Engineering, Liaoning University of Technology, Jinzhou 121001, China)
With the development and popularization of the intelligent driving system, it is very important to accurately identify the driving environment, and the lane detection technology can provide the position information of the vehicle to be an important components of advanced driving assistance system and the automatic driving system. A method for intelligent detection and identification of lane lines based on open source computer vision library (OpenCV) is presented in this paper. First, the image is gray-scale, the Gaussian blur gets the fuzzy image, then the edge image is obtained by the Canny edge detection algorithm, And finally Hough transform on the obtained edge image is carried out to realize the intelligent detection and identify the lane line.
lane detection; open source computer vision library; canny edge detection; hoff transform
TP391.41
A
1674-3261(2020)02-0092-04
10.15916/j.issn1674-3261.2020.02.006
2019-07-07
白松讓(1996-),男,吉林松原人,碩士生。
段 敏(1963-),女,遼寧錦州人,教授,碩士。
責(zé)任編校:劉亞兵