本發(fā)明屬于圖像處理、神經(jīng)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體地說,涉及一種聯(lián)合CNN(卷積神經(jīng)網(wǎng)絡(luò))和RANSAC(隨機(jī)抽樣一致算法)的魯棒的車道線檢測方法。
背景技術(shù):
大量交通事故的分析表明,造成人員傷亡最多,經(jīng)濟(jì)損失最重的事故原因?qū)儆谧肺蚕嘧?,其中由隨意變更車道引起的追尾事故占了大部分。汽車輔助駕駛系統(tǒng)作為行車安全的保障,能夠在車輛即將發(fā)生碰撞或偏離車道時提醒司機(jī),避免事故發(fā)生。準(zhǔn)確的車道線的定位與識別是車道偏離預(yù)警、車道變更輔助等輔助駕駛系統(tǒng)的重要組成部分。現(xiàn)有技術(shù)方案通?;谶吘墮z測、RANSAC或RANSAC和HOUGH的結(jié)合,在場景復(fù)雜干擾噪聲點增加的情況下,RANSAC無法準(zhǔn)確擬合出道路線,并且隨著迭代次數(shù)的增加,無法到達(dá)實時的處理速度,造成上述方案在道路場景復(fù)雜的情況下會變得不可靠,無法達(dá)到市場的實際應(yīng)用要求。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種聯(lián)合RANSAC和CNN的魯棒的車道線檢測方法,其技術(shù)方案具體如下:
一種聯(lián)合RANSAC和CNN的魯棒的車道線檢測方法,其特征在于,包括以下步驟:
S1、從圖像采集裝置中獲得原始圖像I,并對所述原始圖像I進(jìn)行高斯平滑處理得到平滑圖像I0;
S2、對所述平滑圖像I0進(jìn)行邊緣提取處理,得到邊緣特征圖I1;
S3、對所述邊緣特征圖I1進(jìn)行圖像去噪處理,得到去噪圖像I2;
S4、對所述去噪圖像I2設(shè)置感興趣區(qū)域,得到感興趣圖像I3;
S5、對圖像I3進(jìn)行邊緣特征點劃分,設(shè)置劃分參數(shù)Vmin、Vcommon和Uvanish,當(dāng)邊緣點縱坐標(biāo)位于Vmin和Vcommon之間時,判定為公共點,當(dāng)邊緣點縱坐標(biāo)小于Uvanish時,判定為左邊點,其余判定為右邊點;
S6、利用RANSAC算法檢測車道線,具體過程是,S61構(gòu)建雙曲線車道線模型M:
其中Eu=f/du,Ev=f/dv,f是相機(jī)焦距,du和dv是像素高和寬,z0和θ從相機(jī)評估獲得,假設(shè)(uL,vL)為左邊點和公共點集合,(uR,vR)是右邊點和公共點集合,則模型M簡化為
其中,a=(a1,a2,a3,a4)T,模型參數(shù)S62設(shè)置最大迭代次數(shù)Imax,每一次迭代,從數(shù)據(jù)集P中隨機(jī)選取點集S,S包含N個點,去評估雙曲線模型M的參數(shù)a,其中N≥4,數(shù)據(jù)集P為(uL,vL)和(uR,vR)的并集,(uL,vL)為左邊點和公共點集合,(uR,vR)是右邊點和公共點集合;S63使用實例化的模型M去評估P中不屬于點集S的數(shù)據(jù)點S*,如果S*和M的誤差ef的值小于誤差閾值et,則將S*添加到一個稱為一致集合的點集Si中;S64如果點集Si的個數(shù)大于一致集合點集數(shù)目閾值d,則利用集合Si去評估模型M,評估的標(biāo)準(zhǔn)采用點集Si中點的誤差ef的累加和;S65比較前后兩次迭代得到的模型M,保留誤差較小的模型,當(dāng)兩個模型誤差小于閾值Te時模型參數(shù)都保留,同時模型個數(shù)計數(shù)器累加一,其中,模型個數(shù)即為車道線數(shù);S66當(dāng)檢測到的車道線數(shù)大于3,或者|xt,upper-xt-1,upper|>Tupper或者|xt,lower-xt-1,lower|>Tlower或者|Pt,vp(x,y)-Pt-1,vp(x,y)|>Tvp時,其中Xt,upper、Xt-1,upper、Xt,lower、Xt-1,lower分別表示車道線的頂點和底點的t幀和t-1幀的x坐標(biāo),Tupper和Tlower是前后幀頂點和底點差的絕對值的閾值,Pt,vp(x,y)是t幀的消失點位置,Pt-1,vp(x,y)是t-1幀消失點的位置,Tvp是前后幀消失點的差值的閾值,則中斷RANSAC算法檢測車道線,轉(zhuǎn)至步驟S7,否則繼續(xù)迭代至最大迭代次數(shù)Imax,得到最終車道線;
S7、先利用CNN尋找候選車道線,然后對通過CNN處理得到的含有候選車道線的圖像再次應(yīng)用步驟S6。
進(jìn)一步的,所述步驟S1的具體過程是:利用二維高斯濾波器函數(shù)G(x,y)與原始圖像I進(jìn)行卷積,得到平滑圖像I0,其中,σ表示濾波器的寬度。
進(jìn)一步的,所述步驟S2的具體過程是:針對平滑圖像I0的每個位置b(x,y),將該位置的像素和左邊b(x-m,y)和右邊b(x+m,y)相比較:B+m(x,y)=b(x,y)-b(x+m,y),B-m(x,y)=b(x,y)-b(x-m,y),其中距離m≥1,設(shè)置閾值T,邊緣圖像I1的值為:
進(jìn)一步的,所述步驟S3采用滑動窗口去噪,具體過程是,設(shè)置兩個小的滑動窗口,稱為內(nèi)窗口和外窗口,兩個窗口作用在相同的像素鄰域,但外窗口比內(nèi)窗口的長和寬大1.5%,滑動兩個窗口遍歷整張邊緣圖,比較兩個窗口內(nèi)部像素值的和,如果兩個窗口的像素和相等,則判定窗口內(nèi)的像素為孤立噪聲并置為零。
進(jìn)一步的,所述步驟S4的具體過程是:在圖像平面直角坐標(biāo)系下設(shè)置橫軸最大值Xhigh、橫軸最小值Xlow、縱軸最大值Yhigh、縱軸最小值Ylow四個參數(shù),如果圖像I2中的位置(x,y)存在Xlow≤x≤Xhigh,Ylow≤y≤Yhigh,則判定為感興趣區(qū)域,否則判定為不感興趣區(qū)域。
進(jìn)一步的,所述步驟S6中的所述誤差ef的計算采用香濃距離,點(u,v)的香濃距離計算公式為:其中k2=EuEvKz0,k3=Evθ-vr,k4=ur+Euψ,當(dāng)點屬于右點集(uR,vR)時μ=-1,屬于左點集(uL,vL)時μ=+1。
進(jìn)一步的,所述步驟S6的CNN選擇候選車道線的具體過程是:首先將檢測圖像按列優(yōu)先排成一個長列,接著輸入訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)處理長列的每個像素點,然后MLP輸出結(jié)果長列,最后再按照列優(yōu)先處理成一張100×15的圖像,其中,所述100×15的圖像即為候選車道線的圖像。
進(jìn)一步的,所述卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括2個下采樣層、3個卷積層、1個MLP,其中,2個下采樣層的核大小分別為8×2和4×2,MLP包括3個全連接層。
進(jìn)一步的,所述圖像采集裝置是設(shè)置在車輛上的前置攝像頭或行車記錄儀。
本發(fā)明采用以上技術(shù)方案,具有的有益效果是:本發(fā)明能夠增強(qiáng)車道線檢測的準(zhǔn)確度,其中CNN能提取處理圖像的高層次特征,所提取的特征不受噪聲光照等的影響,并且RANSAC和CNN結(jié)合可以使檢測算法更加的魯棒,在道路情況復(fù)雜,例如出現(xiàn)了圍欄,圍墻或光照的劇烈變化的情形下,仍然可以有效檢測車道線。因此,本發(fā)明能夠快速可靠地檢測出車道線,保證車輛的行駛安全,并且對硬件的要求較低,生成成本低,有利于市場推廣。
附圖說明
圖1示出了本發(fā)明的流程圖;
圖2示出了帽型核結(jié)構(gòu)的示意圖;
圖3示出了去除噪聲的滑窗算子的示意圖;
圖4示出了設(shè)置感興趣區(qū)域的示意圖;
圖5示出了CNN結(jié)構(gòu)的示意圖;
圖6(a)為原始輸入圖像;
圖6(b)為邊緣檢測過后的結(jié)果圖;
圖6(c)為單獨RANSAC檢測的結(jié)果圖;
圖6(d)為圖6(c)的檢測結(jié)果在原始圖像上的顯示;
圖6(e)為圖6(b)通過CNN處理后的結(jié)果圖;
圖6(f)為對圖6(e)進(jìn)行RANSAC的檢測結(jié)果;
圖6(g)為圖6(f)檢測結(jié)果在原圖的顯示。
具體實施方式
為進(jìn)一步說明各實施例,本發(fā)明提供有附圖。這些附圖為本發(fā)明揭露內(nèi)容的一部分,其主要用以說明實施例,并可配合說明書的相關(guān)描述來解釋實施例的運作原理。配合參考這些內(nèi)容,本領(lǐng)域普通技術(shù)人員應(yīng)能理解其他可能的實施方式以及本發(fā)明的優(yōu)點。圖中的組件并未按比例繪制,而類似的組件符號通常用來表示類似的組件。
現(xiàn)結(jié)合附圖和具體實施方式對本發(fā)明進(jìn)一步說明。
參照圖1-5,描述本發(fā)明的具體流程步驟。本發(fā)明采用的步驟如下:
1.1、首先從圖像采集裝置(例如,設(shè)置在車輛上的前置攝像頭或行車記錄儀等)中獲得原始圖像I,對圖像I高斯平滑處理得到平滑圖像I0。二維高斯濾波器函數(shù)為:
其中,參數(shù)σ表示濾波器的寬度,σ越大濾波器的頻帶越寬,平滑程度越好,本發(fā)明通過對實際采集的圖像數(shù)據(jù)的實驗來調(diào)節(jié)σ,使圖像在過平滑和欠平滑之間取得一個平衡。用G(x,y)與原始圖像I進(jìn)行卷積,得到平滑圖像I0。I0(x,y)=G(x,y)*I(x,y),*為卷積運算符號。
1.2、針對平滑圖像I0進(jìn)行邊緣提取處理。在本實施例中,邊緣提取采用帽型核(如圖2所示)和平滑圖像進(jìn)行卷積,具體處理過程為如下:針對平滑圖像I0的每個位置b(x,y),將該位置的像素和左邊b(x-m,y)和右邊b(x+m,y)相比較,其中距離m≥1:
B+m(x,y)=b(x,y)-b(x+m,y)
B-m(x,y)=b(x,y)-b(x-m,y) (2)
設(shè)置閾值T,邊緣圖像I1的值為:
由此,邊緣提取過程結(jié)束,得到邊緣特征圖I1。但邊緣提取也可以采用其它方法進(jìn)行而不脫離本發(fā)明的精神和范圍。
1.3、針對上述得到的邊緣特征圖進(jìn)行圖像去噪處理。圖像去噪處理首先找出孤立區(qū)域,然后將孤立區(qū)域置為零。在本實施例中,圖像去噪處理采用滑動窗口算子進(jìn)行。如圖3所示,具體操作為:設(shè)置兩個小的滑動窗口,稱為內(nèi)窗口和外窗口,兩個窗口作用在相同的像素鄰域,但是外窗口的高度h1和寬度w1比內(nèi)窗口的高度h2和寬度w2大1.5%?;瑒觾蓚€窗口遍歷整張邊緣圖,比較兩個窗口內(nèi)部像素值的和,如果兩個窗口的像素和相等,就判定窗口內(nèi)的像素為孤立噪聲,置為零。為了提高計算效率,邊緣圖的積分圖被用來計算窗口的和。去噪過后得到圖像I2。但圖像去噪也可以采用其它方法進(jìn)行而不脫離本發(fā)明的精神和范圍。
1.4、針對去噪圖像I2設(shè)置感興趣(ROI)區(qū)域。在圖像平面直角坐標(biāo)系下設(shè)置橫軸最大值Xhigh、橫軸最小值Xlow、縱軸最大值Yhigh、縱軸最小值Ylow四個參數(shù),這四個參數(shù)均通過對實際采集的圖像數(shù)據(jù)進(jìn)行分析獲得。對于I2中位置(x,y),若Xlow≤x≤Xhigh,Ylow≤y≤Yhigh,則判定為感興趣區(qū)域,其余判定為不感興趣區(qū)域,不進(jìn)入后續(xù)處理步驟,感興趣圖像為I3。但設(shè)置感興趣區(qū)域也可以采用其它方法進(jìn)行而不脫離本發(fā)明的精神和范圍。
1.5、針對圖像I3進(jìn)行邊緣特征點劃分。如圖4所示,設(shè)置縱軸坐標(biāo)劃分參數(shù)Vmin、Vcommon和Uvanish。在圖像中,當(dāng)邊緣點縱坐標(biāo)位于Vmin和Vcommon之間時,判定為公共點,當(dāng)邊緣點縱坐標(biāo)小于Uvanish時,判定為左邊點,其余判定為右邊點。
1.6、利用RANSAC算法檢測車道線,具體步驟如下:
1.6.1、構(gòu)建雙曲線車道線模型為:
公式(4)中Eu=f/du,Ev=f/dv,f是相機(jī)焦距,du和dv是像素高和寬,z0和θ從相機(jī)評估獲得。假設(shè)(uL,vL)為左邊點和公共點集合,(uR,vR)是右邊點和公共點集合。公式(4)簡化為
其中a=(a1,a2,a3,a4)T,當(dāng)a求出后可根據(jù)以下公式求出雙曲線模型參數(shù):
1.6.2、設(shè)置最大迭代次數(shù)Imax,每一次迭代,從數(shù)據(jù)集P中隨機(jī)選取點集S,S包含N個點,去評估雙曲線模型M的參數(shù)a。其中N≥4,數(shù)據(jù)集P為(uL,vL)和(uR,vR)的并集,(uL,vL)為左邊點和公共點集合,(uR,vR)是右邊點和公共點集合。
1.6.3、使用實例化的模型M去評估P中不屬于點集S的數(shù)據(jù)點S*,如果S*和M的誤差函數(shù)ef的值小于誤差閾值et,則將S*添加到一個稱為一致集合的點集Si中。
1.6.4、如果點集Si的個數(shù)大于一致集合點集數(shù)目閾值d,則利用集合S i去評估模型M,評估的標(biāo)準(zhǔn)為點集Si中點的誤差ef的累加和。
1.6.5、比較前后兩次迭代得到的模型M,保留誤差較小的模型,當(dāng)兩個模型誤差小于閾值Te時模型參數(shù)都保留,同時模型個數(shù)計數(shù)器累加一,其中,模型個數(shù)即為車道線數(shù)。ef的計算采用香濃距離,點(u,v)的香濃距離計算公式為:
公式中
k2=EuEvKz0 (12)
k3=Evθ-vr (13)
k4=ur+Euψ (14)
當(dāng)點屬于右點集(uR,vR)時k1中的μ=-1,屬于左點集(uL,vL)時k1中的μ=+1。RANSAC迭代擬合過后獲得雙曲線模型參數(shù)a,即車道線的模型參數(shù)。
1.6.6、針對使用RANSAC提取的車道線,當(dāng)環(huán)境變得復(fù)雜后提取的結(jié)果容易變得不可靠,如果通過增加RANSAC的迭代次數(shù)抑或提高閾值來提高提取的準(zhǔn)確度,即使在準(zhǔn)確性能達(dá)到的前提下,也無法滿足處理速度的實時性要求。本發(fā)明結(jié)合CNN來增強(qiáng)車道線提取的準(zhǔn)確度,CNN能提取處理圖像的高層次特征,所提取的特征不受噪聲光照等的影響。但RANSAC在何種檢測條件下停止檢測,轉(zhuǎn)入CNN也是問題。鑒于此,本發(fā)明通過設(shè)置分別表示車道線的頂點和底點的t幀和t-1幀的x坐標(biāo)的參數(shù)Xt,upper、Xt-1,upper、Xt,lower、Xt-1,lower,表示前后幀頂點和底點差的絕對值的閾值的參數(shù)Tupper和Tlower,表示t幀的消失點位置的參數(shù)Pt,vp(x,y),表示t-1幀消失點的位置的參數(shù)Pt-1,vp(x,y)以及表示前后幀消失點的差值的閾值的參數(shù)Tvp來進(jìn)行判斷。當(dāng)RANSAC算法檢測的車道線數(shù)大于3,或者|xt,upper-xt-1,upper|>Tupper,或者|xt,lower-xt-1,lower|>Tlower,或者|Pt,vp(x,y)-Pt-1,vp(x,y)|>Tvp,則放棄1.6步驟檢測的車道線,轉(zhuǎn)入CNN檢測,即步驟1.7;否則繼續(xù)迭代至最大迭代次數(shù)Imax,得到最終車道線。
1.7、但CNN和RANSAC的結(jié)合有難度,關(guān)鍵點在于如何平衡兩者的時間復(fù)雜度和檢測的精度。CNN中需要進(jìn)行多次的卷積提取特征的操作,卷積越深網(wǎng)絡(luò)越寬當(dāng)然越好,但是時間復(fù)雜度也相對越高,如何設(shè)置網(wǎng)絡(luò)的深度和廣度平衡精度和時間復(fù)雜度是個難點。為此,本發(fā)明設(shè)計了一個精度和時間復(fù)雜度能有效適用于車道線檢測的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),如圖5所示。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括2個下采樣層,3個卷積層,1個MLP(多層感知器),依次為卷積層1、下采樣層1、卷積層2、下采樣層2、卷積層3和MLP。其中,下采樣層的核大小分別為8×2和4×2,MLP包括3個全連接層。CNN輸入圖片大小為192×28,輸出為100×15。但本發(fā)明并不限于上述卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),即在此基礎(chǔ)上作出改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)均落入本發(fā)明的保護(hù)范圍。在CNN檢測階段,將檢測圖像按列優(yōu)先排成一個長列,輸入訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)處理長列的每個像素點,最后MLP輸出結(jié)果長列,然后再按照列優(yōu)先處理成一張100×15的圖像,該圖像即為CNN尋找的候選車道線。然后再次應(yīng)用RANSAC檢測車道線,得到最終車道線。
本發(fā)明具有很好的魯棒性,在復(fù)雜的環(huán)境仍然能有效的檢測車道線。圖6示出了本發(fā)明的實際檢測結(jié)果。其中,圖6(a)為原始輸入圖像,該車道線所在環(huán)境復(fù)雜,干擾眾多;圖6(b)為邊緣檢測過后的結(jié)果圖,圖顯示邊緣檢測過后存在很多和車道線類似的邊緣;圖6(c)為單獨RANSAC檢測的結(jié)果,檢測結(jié)果出現(xiàn)錯誤,偏離正確的車道線位置;圖6(d)為檢測結(jié)果在原圖顯示;圖6(e)為圖6(b)通過CNN處理后的結(jié)果圖,圖像干擾變少,車道線區(qū)域突出;圖6(f)為對圖6(e)進(jìn)行RANSAC的檢測結(jié)果,檢測結(jié)果準(zhǔn)確的檢測到車道線的位置;圖6(g)為圖6(f)檢測結(jié)果在原圖的顯示。實際檢測結(jié)果表明本發(fā)明可以在復(fù)雜環(huán)境下準(zhǔn)確檢測車道線位置。
盡管結(jié)合優(yōu)選實施方案具體展示和介紹了本發(fā)明,但所屬領(lǐng)域的技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍內(nèi),在形式上和細(xì)節(jié)上可以對本發(fā)明做出各種變化,均為本發(fā)明的保護(hù)范圍。