基于CCD攝像頭的黑線提取算法
基于AD采樣的算法
本文引用地址:http://www.ex-cimer.com/article/91257.htm基于AD的黑線提取算法能夠反映圖像上的每個(gè)點(diǎn)的黑白程度,提取出來(lái)的黑線準(zhǔn)確度比較高,但是后續(xù)的黑線提取算法比較復(fù)雜?;陔妷禾儽容^方法軟件黑線提取非常簡(jiǎn)單,但是硬件調(diào)試比較困難,而且不能反映每個(gè)點(diǎn)的真實(shí)黑白程度。對(duì)賽道環(huán)境要求很高,易受干擾。
基于AD的黑道提取有以下幾種方法:
1) 找出每一行的黑線的左右邊界點(diǎn),把中間點(diǎn)作為道路;
2) 利用若干行相加,取最黑點(diǎn);
3) 找出每行的最黑點(diǎn),把它作為道路。
第一種做法: 找出每一行的黑線的左右邊界點(diǎn),把中間點(diǎn)作為道路。
圖1斜看十字交叉道示意圖
它是最容易想到的方法,在無(wú)交叉道以及攝像頭的黑白AD值分明的情況下,它可以達(dá)到非常理想的效果.但是若出現(xiàn)了斜看交叉道或者黑白AD不是很分明的情況下,該方法的濾波顯得十分復(fù)雜.在實(shí)際中由于攝像頭對(duì)于遠(yuǎn)處的黑線不是很敏感,這使得黑點(diǎn)的閾值很難以確定,選大了會(huì)使遠(yuǎn)方道路提取出錯(cuò),選小了會(huì)丟失遠(yuǎn)方的道路信息.也許采用動(dòng)態(tài)閾值是一個(gè)好方法,但是它也不是十分管用.在實(shí)驗(yàn)中我們發(fā)現(xiàn)黑點(diǎn)的閾值不是隨著距離的變化成線性變化的,它的變化多少帶有點(diǎn)突變的味道,因此很難確定黑點(diǎn)閾值的變化規(guī)律,自然動(dòng)態(tài)閾值也很難設(shè)定.斜看十字道會(huì)帶來(lái)更大的麻煩,由于在實(shí)際的控制中很難做到每次都嚴(yán)格地貼線走,因此小車在從彎道出來(lái)的時(shí)候若彎道前方有個(gè)十字道,很容易造成斜看的情況發(fā)生.這時(shí)從AD采集的圖像上看來(lái)十字交叉道會(huì)像一個(gè)分叉的樹(shù)枝一樣從前方道路上出來(lái),更糟糕的情況是在前方正確道路消失的地方恰好被斜的十字道路的一邊給補(bǔ)上了.若采用這種方法,則很容易誤將道路確定到十字叉的一邊上,使得小車的轉(zhuǎn)向錯(cuò)誤.為了濾除這種情況,我們根據(jù)它的特點(diǎn)采用了很多的濾波方法.
首先,在前方道路與十字叉的交界點(diǎn),黑點(diǎn)的個(gè)數(shù)會(huì)突然增加很多.在一般情況下,隨著距離的增加黑點(diǎn)的個(gè)數(shù)會(huì)慢慢減少,不會(huì)出現(xiàn)突然增多的情況.因此我
們可以用上一行的黑點(diǎn)數(shù),估計(jì)出下一行的黑點(diǎn)數(shù),如果超出了我們的估計(jì)值,我們就認(rèn)為它是不合理的。
其次可以根據(jù)賽道不突變的原則,來(lái)濾除雜點(diǎn).我們可以根據(jù)前面兩行的變化情況預(yù)測(cè)出下一行的賽道變化范圍,利用它來(lái)濾除雜點(diǎn).但是在實(shí)際的應(yīng)用中下一行的變化范圍預(yù)測(cè)總是不是很理想.因此當(dāng)賽車經(jīng)過(guò)90度彎時(shí),賽道的變化在小車看來(lái)變化是十分巨大的幾乎和斜看十字交叉道沒(méi)有多大的區(qū)別.有時(shí)會(huì)將90度彎濾除,造成小車直接沖出跑道。
最后,我們還可以通過(guò)分別從左至右與從右至左的方法來(lái)所搜賽道的左右邊界點(diǎn),若發(fā)現(xiàn)兩者不一致,則可以采取取變化較小的點(diǎn)作為賽道來(lái)處理。
圖2三行相加提取黑線示意圖?
加了以上的濾波以后真?zhèn)€搜索賽道程序會(huì)顯得十分復(fù)雜,而且也不是十分可靠。
第二種做法: 利用若干行相加,取最黑點(diǎn)。
這種做法是我們上屆的學(xué)長(zhǎng)提出來(lái)的算法.但是我利用起來(lái)不是很可靠.它的頭點(diǎn)始終采不穩(wěn)定.它的三行相加的理由是若中間一行右黑點(diǎn)丟失,它可以利用自己設(shè)定的閾值把它找回,如三行相加的黑點(diǎn)閾值可以定義為1個(gè)白點(diǎn)與2個(gè)黑點(diǎn)的和.帶有些中值濾波的味道. 但是,由于遠(yuǎn)處的黑白不是很清楚,本來(lái)黑白的閾值就難以設(shè)定,三行相加的閾值就更難設(shè)定.而且在彎道上由于遠(yuǎn)方的點(diǎn)本來(lái)就少,大約只有一兩個(gè)黑點(diǎn)而且又不在同一列上,很容易將這些點(diǎn)丟失,導(dǎo)致頭部的點(diǎn)不穩(wěn)定.為了盡可能地將遠(yuǎn)方的黑線提取出來(lái),從軟件上將唯一的方法就是增大閾值,比如將三行相加的閾值設(shè)置為一黑二白相加,但是問(wèn)題是遠(yuǎn)方的黑白不是很明顯,白點(diǎn)比較黑,黑點(diǎn)比較白,這種閾值的選取很容易造成把遠(yuǎn)方的那些比較黑的白點(diǎn)也一并歸入黑線之中,這使得小車的轉(zhuǎn)向發(fā)生混亂.
圖3 逐行找黑點(diǎn)
攝像頭相關(guān)文章:攝像頭原理
評(píng)論