理時(shí),通常按照固定大小的 車道線處理區(qū)域進(jìn)行車道跟蹤,但是若車道處于彎道的時(shí)候,車道線在圖像中有可能會(huì)偏 離固定好的處理區(qū)域,從而影響車道跟蹤的準(zhǔn)確性。所以本實(shí)施例提出的車道檢測方法還 包括以下步驟(1)至步驟(3):
[0121] (1)獲取待檢測的車道圖像的車道跟蹤圖像;
[0122] (2)根據(jù)從上一幀圖像中確定的車道線,從車道跟蹤圖像中劃分出多個(gè)跟蹤車道 處理區(qū)域,其中,上一幀圖像是待檢測的車道圖像或者車道跟蹤圖像的上一個(gè)車道跟蹤圖 像;
[0123] (3)對(duì)劃分出的多個(gè)跟蹤車道處理區(qū)域進(jìn)行車道線跟蹤檢測,得到跟蹤車道線。
[0124] 在步驟(2)中,從車道跟蹤圖像中劃分出多個(gè)跟蹤車道處理區(qū)域具體包括如下步 驟(21)至步驟(24):
[0125] (21)通過預(yù)先設(shè)定的跟蹤車道處理區(qū)域的高度,確定跟蹤車道處理區(qū)域與車道交 點(diǎn)的縱坐標(biāo);
[0126] (22)將確定的跟蹤車道處理區(qū)域與車道交點(diǎn)的縱坐標(biāo)代入上一幀拍攝的車道線 圖像確定的車道線方程中,得到跟蹤車道處理區(qū)域與車道交點(diǎn)的橫坐標(biāo);
[0127] (23)將計(jì)算得到的跟蹤車道處理區(qū)域與車道交點(diǎn)的縱坐標(biāo)和橫坐標(biāo)代入以下公 式1和公式2中,分別得到跟蹤車道處理區(qū)域?qū)蔷€左上端點(diǎn)和右下端點(diǎn)的坐標(biāo);
[0130] 其中,(Xl,yi)是跟蹤車道處理區(qū)域的上邊緣與車道的交點(diǎn)坐標(biāo),(x 2, y2)是跟蹤車 道處理區(qū)域的下邊緣與車道的交點(diǎn)坐標(biāo);
[0131] (24)根據(jù)得到的跟蹤車道處理區(qū)域?qū)蔷€的兩端點(diǎn)坐標(biāo),在當(dāng)前拍攝的車道圖像 中劃分出跟蹤車道處理區(qū)域。
[0132] 通過以上的描述,通過當(dāng)前獲取到的車道跟蹤圖像的上一幀圖像,確定當(dāng)前幀圖 像的跟蹤車道處理區(qū)域,可以根據(jù)車道的實(shí)際情況劃分跟蹤車道處理區(qū)域,減少處理區(qū)域 和減少干擾的場景,從而提尚算法性能和提尚算法檢測的準(zhǔn)確性。
[0133] 在得到跟蹤車道處理區(qū)域后,需要對(duì)跟蹤車道處理區(qū)域圖像進(jìn)行二值化,得到二 值化后的跟蹤車道處理區(qū)域圖像中的跟蹤車道邊緣點(diǎn)對(duì);
[0134] 其中,在對(duì)跟蹤車道處理區(qū)域進(jìn)行二值化時(shí),為了減小干擾點(diǎn)對(duì)后面擬合車道線 的干擾,需要剔除跟蹤車道處理區(qū)域圖像中的干擾點(diǎn),剔除跟蹤車道處理區(qū)域圖像中的干 擾點(diǎn)的流程包括以下步驟(1)至步驟(4):
[0135] (1)根據(jù)像素點(diǎn)的坐標(biāo),判斷處于同一水平的多個(gè)像素點(diǎn)之間的距離是否滿足預(yù) 設(shè)的第一距離閾值,如果是則執(zhí)行步驟(2),如果否則執(zhí)行步驟(3);
[0136] (2)保存滿足預(yù)設(shè)的第一距離閾值的兩個(gè)像素點(diǎn)為擬合車道候選邊緣點(diǎn)對(duì),其中, 保存的擬合車道候選邊緣點(diǎn)對(duì)包括:兩個(gè)像素點(diǎn)的坐標(biāo)和水平梯度值;
[0137] (3)從二值化圖像上刪除不滿足第一距離閾值的像素點(diǎn);
[0138] (4)計(jì)算擬合車道候選邊緣點(diǎn)對(duì)中兩個(gè)像素點(diǎn)的水平梯度值的絕對(duì)值之和,將水 平梯度值的絕對(duì)值之和大于設(shè)定的水平梯度閾值時(shí),將該對(duì)擬合車道候選邊緣點(diǎn)作為一對(duì) 跟蹤車道邊緣點(diǎn),若在同一水平方向上存在多對(duì)候選邊緣點(diǎn),只保留水平梯度值和最大的 那對(duì)邊緣點(diǎn)作為跟蹤車道邊緣點(diǎn)對(duì)。
[0139] 其中,最多只有一對(duì)候選邊緣點(diǎn),可以作為跟蹤車道邊緣點(diǎn)對(duì)。
[0140] 通過以上描述,可以濾去二值化圖像中的干擾點(diǎn),從而減少干擾點(diǎn)對(duì)后面車道線 擬合的影響。
[0141] 相關(guān)技術(shù)中,只能檢測直線車道線,而不能對(duì)車道圖像中的曲線車道線進(jìn)行檢測 或其他處理,所以,對(duì)劃分出的多個(gè)跟蹤車道處理區(qū)域進(jìn)行車道線跟蹤檢測,得到跟蹤車道 線包括步驟(1)至步驟(2):
[0142] (1)計(jì)算多個(gè)跟蹤車道處理區(qū)域中每個(gè)跟蹤車道處理區(qū)域中車道線的梯度方向 圖;
[0143] (2)當(dāng)多個(gè)跟蹤車道處理區(qū)域的梯度方向圖中顯示的車道線的方向峰值發(fā)生變化 時(shí),確定車道線是曲線車道線并擬合出曲線車道線方程;
[0144] (3)當(dāng)多個(gè)跟蹤車道處理區(qū)域的梯度方向圖中顯示的車道線的方向峰值未發(fā)生變 化時(shí),確定車道線是直線車道線并擬合出直線車道線方程;
[0145] (4)根據(jù)擬合出的曲線車道線方程或直線車道線方程,得到跟蹤車道線。
[0146] 在步驟(1)中,可以采用現(xiàn)有的任何可以計(jì)算梯度方向圖的方法來計(jì)算每個(gè)跟蹤 車道處理區(qū)域中車道線的梯度方向圖,這里不再一一贅述。
[0147] 在步驟(2)或者步驟(3)中,在判斷方向峰值變化時(shí),先確定方向峰值是否發(fā)生變 化,并在確定方向峰值發(fā)生變化時(shí),判斷方向峰值的變化量是否大于設(shè)定的方向峰值閾值, 如果是則確定車道線的梯度峰值發(fā)生變化。
[0148] 可選地,方向峰值閾值可以是30度,當(dāng)然,也可以根據(jù)實(shí)際的使用情況設(shè)置成其 他的數(shù)值,這里不再一一贅述。
[0149] 在步驟(2)中,通過最小二乘算法擬合出曲線車道方程f (y) = c+dy+ey2的具體 過程包括步驟(21)至步驟(24):
[0150] (21)根據(jù)車道線的方向峰值發(fā)生變化的相鄰兩個(gè)跟蹤車道處理區(qū)域的邊界線確 定梯度變化臨界點(diǎn)縱坐標(biāo)y m;
[0151] (22)將縱坐標(biāo)值小于梯度變化臨界點(diǎn)縱坐標(biāo)的跟蹤車道邊緣點(diǎn)對(duì)中的任意兩個(gè) 像素點(diǎn)的坐標(biāo)( Xfj,yfj)代入以下公式3中,得到參數(shù)a和b;
[0153] (23)將得到的參數(shù)a和b分別代入c和e的計(jì)算公式
和
代入曲線車道方程f(y) = c+dy+ey2,由 于此時(shí)方程f(y) = c+dy+ey2中只有參數(shù)d未知,所以可以求出參數(shù)d ;
[0154] (24)根據(jù)求出的參數(shù)d,確定參數(shù)c和e,得到曲線車道方程f(y) = c+dy+ey2,從 而根據(jù)曲線車道方程f(y) = c+dy+ey2擬合出曲線車道。
[0155] 在步驟(3)中,通過最小二乘算法擬合出直線車道方程x = a+by的具體過程包括 以下步驟(31)至步驟(32):
[0156] (31)將跟蹤車道邊緣點(diǎn)對(duì)中的任意兩對(duì)像素點(diǎn)的坐標(biāo)(x,y)代入直線車道方程X =a+by中,得到參數(shù)a和b,從而確定直線車道方程X = a+by ;
[0157] (32)根據(jù)直線車道方程X = a+by擬合出直線車道。
[0158] 通過以上描述,通過計(jì)算得到的梯度方向圖中顯示的車道線的方向峰值是否發(fā)生 變化,來對(duì)車道線是曲線車道線還是直線車道線進(jìn)行判斷,提高了車道線檢測的準(zhǔn)確性。
[0159] 通過以上的描述可以看出,通過跟蹤得到的車道線不是實(shí)際測量得到的車道線, 所以會(huì)出現(xiàn)偏差,當(dāng)偏差較大時(shí),會(huì)降低跟蹤車道線的準(zhǔn)確性,為了保證車道跟蹤的準(zhǔn)確 性,方法還包括如下步驟(1)至步驟(2):
[0160] (1)分別計(jì)算上一幀圖像確定的車道線與水平方向的第一角度,以及跟蹤車道線 與水平方向的第二角度;
[0161] (2)當(dāng)?shù)谝唤嵌扰c第二角度的差值大于預(yù)設(shè)的角度閾值時(shí),停止車道線跟蹤檢測。
[0162] 在步驟(2)的當(dāng)?shù)谝唤嵌扰c第二角度的差值大于預(yù)設(shè)的角度閾值時(shí),停止車道線 跟蹤檢測具體包括如下步驟(21)至步驟(23):
[0163] (21)判斷第一角度與第二角度的差值是否大于預(yù)設(shè)的角度閾值,如果是則執(zhí)行步 驟(22),如果否則執(zhí)行步驟(23);
[0164] (22)停止車道線跟蹤檢測,并返回步驟200 ;
[0165] (23)獲取下一幀圖像并繼續(xù)進(jìn)行車道線跟蹤。
[0166] 通過以上的描述,當(dāng)上一幀圖像確定的車道線與水平方向的第一角度與跟蹤車道 線與水平方向的第二角度之間的差值大于預(yù)設(shè)的角度閾值時(shí),那么此時(shí)就得停止車道線跟 蹤檢測,返回車道線檢測的步驟重新進(jìn)行車道線檢測,以保證車道檢測的準(zhǔn)確性。
[0167] 實(shí)施例2
[0168] 本技術(shù)方案涉及一種車道檢測方法,本實(shí)施例提供的車道線檢測算法主要分為兩 個(gè)步驟:1)車道線檢測;2)車道線跟蹤。具體步驟如下:
[0169] 一、車道線檢測
[0170] 參見圖3,本實(shí)施例提出的車道線檢測主要分為五個(gè)步驟:選取目標(biāo)處理區(qū)域;二 值化;過濾干擾點(diǎn);直線檢測和篩選直線。下面分別對(duì)這五個(gè)步驟進(jìn)行描述:
[0171] 1)目標(biāo)處理區(qū)域
[0172] 主要根據(jù)圖像地平線確定,選取地平線以下的區(qū)域?yàn)槟繕?biāo)處理區(qū)域(地平線即消 失線,相機(jī)安裝固定后即可確定地平線,地平線以上為無效區(qū)域,因此選取地平線以下區(qū)域 為車道線目標(biāo)處理區(qū)域)。
[0173] 2)二值化
[0174] 利用水平方向sobel算子,求取水平梯度圖;
[0175] 水平梯度的絕對(duì)值低于閾值(該水平梯度閾值是根據(jù)實(shí)驗(yàn)得到的,本算法采用的 是8)的置0,否則保留該水平梯度;
[0176] 求取二值化圖像,若水平梯度的絕對(duì)值大于0,同時(shí)滿足在閾值長度內(nèi)是最大值, 則該位置置255,其它則置0。
[0177] 注:閾值長度指的是水平多少個(gè)像素范圍內(nèi)。通常車道線寬度是有國標(biāo)的,那么左 右邊緣點(diǎn)的距離選取的是車道線左右邊緣點(diǎn)距離的一半。每行左右邊緣點(diǎn)之間的距離是根 據(jù)相機(jī)標(biāo)定信息來確定的。(因?yàn)檐嚨谰€由遠(yuǎn)及近在圖像中的寬度是由小變大。該閾值不 是一個(gè)定值,而是根據(jù)相機(jī)的標(biāo)定信息來選?。?。
[0178] 3)過濾干擾點(diǎn)
[0179] 根據(jù)車道線的性質(zhì)過濾干擾點(diǎn)。車道線的性質(zhì)主要有:車道線的寬度、車道線的 亮度。通常車道線檢測算法在二值化后就采用hough進(jìn)行直線檢測,但是往往二值圖中存 在著大量的干擾點(diǎn),而這些干擾點(diǎn)往往影響算法的性能和直線檢測的效果。而本發(fā)明在二 值化后,增加了對(duì)二值圖像進(jìn)行干擾點(diǎn)過濾的操作。通常車道線存在著左右邊緣點(diǎn),而左右 邊緣點(diǎn)之間的距離在圖像中存在著一定的閾值(通常車道線是有國標(biāo)的,主要根據(jù)相機(jī)標(biāo) 定信息獲取),若二值圖中的水平兩個(gè)點(diǎn)之間距離過大(大于每行車道線左右邊緣點(diǎn)寬度 的1. 5倍)或者過小(小于每行車道線左右邊緣點(diǎn)寬度的0. 5倍)可以確定該兩點(diǎn)不可能 構(gòu)成車道線的一對(duì)邊緣點(diǎn)。同時(shí)通常在圖像中左右邊緣點(diǎn)之間的亮度往往比它們周圍的亮 (由于車道線是白色理想狀態(tài)下其像素值接近于255,而車道線兩邊的馬路是黑色其值理 想狀態(tài)下接近與0,白色比黑色亮),若一對(duì)邊緣點(diǎn)之間的圖像平均亮度值比周邊范圍內(nèi)的 圖像平均亮度低,那么可以確定這對(duì)邊緣點(diǎn)不是車道線的一對(duì)邊緣點(diǎn)。采用上述車道線性 質(zhì),可以濾去部分干擾點(diǎn),從而減少干擾點(diǎn)對(duì)直線檢測的影響,同時(shí)為后面車道線檢測減少 計(jì)算量。
[0180] 4)直線檢測,本實(shí)施例根據(jù)