卜國(guó)富,聶永怡,余京曉,鄭譽(yù)煌
(1.廣東第二師范學(xué)院 物理與信息工程系,廣東 廣州 510303;2.廣東第二師范學(xué)院 教務(wù)處,廣東 廣州 510303)
近年來(lái),人工智能以及新能源技術(shù)研究的發(fā)展獲得社會(huì)的高度重視,在汽車(chē)工業(yè)領(lǐng)域,傳統(tǒng)的汽車(chē)機(jī)械化模式逐漸發(fā)展為自動(dòng)機(jī)械化結(jié)合人工智能化模式。在復(fù)雜環(huán)境中,人工智能的應(yīng)用在自動(dòng)駕駛汽車(chē)的感知決策中發(fā)揮極大作用[1]。汽車(chē)在自動(dòng)駕駛時(shí),需要綜合計(jì)算多方向傳感參數(shù),如車(chē)道線檢測(cè)、四周車(chē)輛與建筑等物體進(jìn)行識(shí)別及相對(duì)距離檢測(cè)等,均需要利用數(shù)字圖像處理。
計(jì)算視覺(jué)識(shí)別技術(shù)是人工智能化的主導(dǎo)技術(shù),在自動(dòng)駕駛汽車(chē)中高級(jí)駕駛輔助系統(tǒng)起關(guān)鍵作用,可在原本傳感的自動(dòng)化基礎(chǔ)上附上視覺(jué)感的智能化。車(chē)道線的邊緣檢測(cè)概念于1959年被提出,隨后眾多研究者提出不同原理的檢測(cè)算法,目前有Roberts Cross算子、Prewitt算子等常用的車(chē)道線檢測(cè)算子,但是Canny算子對(duì)車(chē)道線檢測(cè)效果更優(yōu),張道芳等[2]研究的語(yǔ)義分割DeeplabV3+模型在性能與效果上也優(yōu)于傳統(tǒng)的檢測(cè)算法。本文以Jetson Nano智能小車(chē)為研究平臺(tái),結(jié)合開(kāi)源機(jī)器學(xué)習(xí)(ML)框架、計(jì)算機(jī)視覺(jué)和機(jī)器人開(kāi)發(fā)的框架和NVIDIA AI平臺(tái),基于開(kāi)放源代碼計(jì)算機(jī)視覺(jué)庫(kù)(OpenCV)采用Python語(yǔ)言對(duì)圖像灰度化處理、高斯模糊、Canny邊緣檢測(cè)算子、ROI感興趣區(qū)域截取、霍夫變換等過(guò)程對(duì)車(chē)道線進(jìn)行檢測(cè)。
基于Jetson Nano的車(chē)道線檢測(cè)與視覺(jué)識(shí)別流程圖如圖1所示。
圖1 車(chē)道線檢測(cè)流程
首先通過(guò)cv.imread()函數(shù)讀取由高精度視覺(jué)攝像頭獲取的原圖像,獲取的數(shù)字圖像由像素組成,原始圖像的像素RGB數(shù)值錯(cuò)綜復(fù)雜,且同一場(chǎng)景的RGB數(shù)值受光照強(qiáng)度的影響較大,對(duì)圖像進(jìn)行灰度化處理后可降低其他色彩對(duì)車(chē)道線檢測(cè)效果,可利用Open CV庫(kù)中的cvtColor()函數(shù)對(duì)圖像進(jìn)行灰度化轉(zhuǎn)換。在計(jì)算機(jī)視覺(jué)庫(kù)中有超過(guò)150種顏色空間的轉(zhuǎn)換方法,研究人員常用加權(quán)平均算法,即公式(1)。
GRAY=R×0.30+G×0.59+B×0.11
(1)
其中GRAY表示圖像中某像素點(diǎn)的數(shù)值大小,R,G,B分別表示紅色、綠色、藍(lán)色在該像素點(diǎn)的分量值。研究人員可以通過(guò)OTSU算法對(duì)圖像進(jìn)行自適應(yīng)的二值化處理,把圖像轉(zhuǎn)換成明顯黑白照片效果,加強(qiáng)算法對(duì)光照的魯棒性[3],更有利于車(chē)道線檢測(cè)與識(shí)別。圖像二值化可通過(guò)cv.threshold()函數(shù)實(shí)現(xiàn)圖像轉(zhuǎn)換,原圖像、灰度化圖像、二值化圖像對(duì)比如圖2所示。
圖2 原圖像、灰度化、二值化對(duì)比圖像
圖像模糊算法種類(lèi)有很多,其中一種常用的算法是高斯模糊(也稱高斯平滑)[4]。由于噪聲對(duì)邊緣檢測(cè)有影響,因此需要平滑操作濾除部分噪聲,高斯模糊的原理是加權(quán)平均的算法,即輸入圖像與高斯核作卷積,選取圖像中某像素點(diǎn)作為中心點(diǎn),中心點(diǎn)附近的像素點(diǎn)離中心點(diǎn)越近權(quán)重比例越大,反之則越小。記高斯核坐標(biāo)為(x,y),μ為平均值,σ為方差,則一維高斯函數(shù)方程如公式(2)所示。
(2)
把高斯核視為圖像原點(diǎn),μ取值為0,得到二維高斯函數(shù)方程式如公式(3)所示。
(3)
標(biāo)準(zhǔn)差與高斯矩陣的尺度成正比,通常采用3*3或5*5的高斯核,經(jīng)過(guò)高斯模糊的圖像更加柔和平滑,圖像中的高頻噪聲也被濾除。對(duì)圖像進(jìn)行高斯平滑處理可通過(guò)OpenCV視覺(jué)庫(kù)中的cv.GaussianBlur()函數(shù)實(shí)現(xiàn),二值化圖像與高斯模糊后的圖像對(duì)比如圖3所示。
圖3 二值化與高斯模糊化對(duì)比圖像
經(jīng)過(guò)高斯模糊的圖像只是單閾值處理,并沒(méi)有計(jì)算設(shè)置圖像像素邊緣梯度的幅值與方向,由于原圖像的邊緣梯度方向是隨機(jī)指向,可以使用Canny算子指定圖像的垂直和水平方向,并與圖像作卷積計(jì)算梯度。Canny算子可計(jì)算某像素點(diǎn)的梯度幅值,對(duì)邊緣梯度的幅值進(jìn)行雙閾值限制,實(shí)現(xiàn)非極大值抑制的滯后閾值處理,達(dá)到檢測(cè)到弱邊緣的效果。Canny邊緣檢測(cè)算子對(duì)圖像處理的主要過(guò)程為:
(1)計(jì)算像素點(diǎn)的梯度幅值和方向。
(2)對(duì)圖像非極大值抑制。
(3)進(jìn)行雙閾值檢測(cè)。
Canny算子處理后的圖像抗干擾能力強(qiáng)、噪聲小、圖像更平滑、邊緣連續(xù)性更好[5]??衫胏v.Canny()函數(shù)實(shí)現(xiàn)對(duì)邊緣進(jìn)行處理,高斯模糊圖像與雙閾值邊緣連接處理的圖像對(duì)比如圖4所示。
圖4 Canny邊緣檢測(cè)處理后的圖像
在視覺(jué)識(shí)別處理中,感興趣區(qū)域(ROI)指對(duì)處理的圖像加一層自定義多邊形框架截取作為需要處理的區(qū)域。在獲取的初始圖像中更精準(zhǔn)檢測(cè)出直線車(chē)道,可去除車(chē)道線以外的干擾圖像,如圖5(a)所示,研究人員可以建立不規(guī)則ROI區(qū)域,加上一層掩膜,只保留紅色線以下區(qū)域用于霍夫變換。本文通過(guò)array函數(shù)使用頂點(diǎn)定義ROI截取區(qū)域,利用ZEROS函數(shù)獲得圖像ROI區(qū)域的一層mark圖像,最后通過(guò)bitwise函數(shù),將原圖像和mark圖像位操作,提取ROI區(qū)域達(dá)到預(yù)期效果,如圖5(b)所示。圖像ROI截取的處理可減少周?chē)ㄖ捌渌矬w對(duì)車(chē)道線檢測(cè)的影響[6],提高直線檢測(cè)的成功率。
(a)預(yù)截取圖像
霍夫變換是對(duì)Canny圖像檢測(cè)直線并通過(guò)畫(huà)線把檢測(cè)的直線標(biāo)記出來(lái),是圖像處理提取特征的一種算法。霍夫變換的原理是把直角坐標(biāo)下的方程轉(zhuǎn)化為極坐標(biāo)系形式的直線方程,假設(shè)極坐標(biāo)的一條直線由(r,α)表示,其中r為直線長(zhǎng)度,α為該直線與X軸夾角,如圖6所示。
圖6 霍夫變換的直角坐標(biāo)
計(jì)算直線斜率與其均值的差,并迭代計(jì)算去除最大值與最小值,得到的數(shù)值擬合最小二乘法確定最終的直線參數(shù)。假設(shè)有n條直線,則擬合一條直線為公式:
f(xn)=axn+b
(4)
求出最小誤差平方和公式為公式5:
(5)
但對(duì)于車(chē)道線曲線檢測(cè),直線擬合的模型并不適用曲率較大的曲線車(chē)道線,因此對(duì)曲線擬合模型可采用三階線性方程,設(shè)L0為小車(chē)方向的斜率,L1為直線斜率,L2為曲線曲率,L3為曲率變化率,則方程式為公式6[7]:
(6)
通過(guò)OpenCV視覺(jué)庫(kù)中的HoughLinesP函數(shù)實(shí)現(xiàn)霍夫變換檢測(cè)ROI區(qū)域的直線,由for循環(huán)結(jié)構(gòu)繪制不同顏色直線,使車(chē)道線檢測(cè)結(jié)果更直觀,綜合以上5個(gè)步驟可成功檢測(cè)出直線車(chē)道線,其檢測(cè)結(jié)果如圖7所示。
圖7 霍夫變換車(chē)道線檢測(cè)圖像
本文通過(guò)對(duì)原始圖像的ROI區(qū)域截取處理,去除圖像車(chē)道線以外的物體,降低車(chē)道線檢測(cè)的失誤率?;贠penCV 開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)并采用python語(yǔ)言在Jetson智能小車(chē)平臺(tái)上成功識(shí)別并檢測(cè)車(chē)道線,如何對(duì)檢測(cè)的車(chē)道線進(jìn)行追蹤行駛是今后的研究方向。