陽(yáng)光算法,其實(shí)應(yīng)該叫灰度圖像處理算法才對(duì);叶葓D像轉(zhuǎn)二值化圖像,具體步驟什么的,不再介紹,不懂得可以去自學(xué)《數(shù)字圖像處理》和matlab。
OV7725硬件二值化與MT9V034比較
OV7725硬件二值化攝像頭
(1)基本原理:
當(dāng)掃描到某點(diǎn)時(shí),該點(diǎn)處圖像的灰度值被攝像頭中的圖像傳感芯片換成與灰度值對(duì)應(yīng)的電壓值,不同的電壓值經(jīng)過(guò)硬件二值化電路的處理轉(zhuǎn)化成高低電壓,這樣就完成電壓值的二值化處理(高低電壓)。
最后將圖像信息數(shù)據(jù)通過(guò)數(shù)據(jù)端口輸出到控制器。
(2)優(yōu)勢(shì)
①由硬件自動(dòng)進(jìn)行二值化,節(jié)約MCU運(yùn)算時(shí)間。
②二值化后處理簡(jiǎn)單,因?yàn)?就是黑,1就是白
③一次傳輸8個(gè)像素,一個(gè)字節(jié)為8個(gè)像素,有效降低像素時(shí)鐘
(3)劣勢(shì)
由于二值化后信息量少,導(dǎo)致在復(fù)雜的場(chǎng)景可能無(wú)法正常判斷與識(shí)別。
2.灰度攝像頭MT9V034
(1)MT9V034優(yōu)勢(shì):
①全局快門(mén)是MT9V034最大的優(yōu)勢(shì),可以在MT9V034 PDF中查看全局快門(mén)與卷簾快門(mén)的區(qū)別(OV7725為卷簾快門(mén))
②攝像頭輸出灰度圖像,可以用于實(shí)現(xiàn)更加復(fù)雜的圖像識(shí)別。因?yàn)榘男畔⒘枯^多
③圖像輸出的速度較快,例如設(shè)置FPS為 60,分辨率為120*188,圖像輸出的時(shí)間只有3MS左右,有更多的時(shí)間去處理。
(2)劣勢(shì)
與二值化比較就是信息量比較大,使得運(yùn)算量也較大,同時(shí)處理起來(lái)需要更多的知識(shí)但是由于現(xiàn)在比賽的環(huán)境越來(lái)越復(fù)雜,簡(jiǎn)單的攝像頭已經(jīng)開(kāi)始難以滿意要求,因?yàn)槁倪@點(diǎn)已經(jīng)變得不再是缺點(diǎn)了
3. DMA傳輸
DMA轉(zhuǎn)移數(shù)據(jù)程序解析:當(dāng)攝像頭采集到圖像時(shí),發(fā)出場(chǎng)中斷信號(hào),控制器捕捉到這一場(chǎng)中斷信號(hào),觸發(fā)中斷,進(jìn)入場(chǎng)中斷服務(wù)程序,場(chǎng)中斷標(biāo)志置1。
在場(chǎng)中斷服務(wù)程序中,初始化 DMA傳輸,并使能DMA傳輸。
之后控制器捕捉PCLK時(shí)鐘信號(hào),PCLK時(shí)鐘信號(hào)為脈沖方波,它的每一個(gè)上升沿都將觸發(fā)一次DMA傳輸,每次DMA傳輸將一個(gè)字節(jié)的圖像信息送入控制器寄存器中,當(dāng)觸發(fā)n 次后停止DMA傳輸。
DMA傳輸停止時(shí)觸發(fā)中斷程進(jìn)入中斷復(fù)位函數(shù),在中斷復(fù)位函數(shù)里禁止DMA傳輸關(guān)閉場(chǎng)中斷,同時(shí)標(biāo)記圖像采集完畢。
這樣就完成一場(chǎng)圖像信息的采集。
灰度圖像處理
提取到圖像數(shù)據(jù)后,需要對(duì)CMOS傳感器采集的數(shù)據(jù)進(jìn)行處理,把路況提取出來(lái),這時(shí)需要確定圖像閾值的大小。
智能車(chē)采集到的圖像的灰度值是0-255,數(shù)值越高表示接近白色,數(shù)值越低接近黑線。
如果像素點(diǎn)灰度值小于某一閾值,則確定該點(diǎn)為黑點(diǎn),否則,確定其為白點(diǎn)。但現(xiàn)在由于加入了陽(yáng)光,所以綜合考慮陽(yáng)光的影響。
確定闕值的方法有很多,這里介紹自動(dòng)閾值法(大津(Ostu)法)。
(1)自動(dòng)閾值法基本原理
是以圖像的灰度直方圖為依據(jù),以目標(biāo)和背景的類(lèi)間方差最大為閾值選取準(zhǔn)則,綜合考慮了像素鄰域以及圖像整體灰度分布等特征關(guān)系。
由直方統(tǒng)計(jì)圖確定被閾值t分離后的區(qū)域l、區(qū)域⒉所占整個(gè)圖像的面積比,以及整幅圖像、區(qū)域1、區(qū)域2的平均灰度。
(2)介紹一下灰度直方圖
灰度直方圖:描述圖像中每種灰度級(jí)像素的個(gè)數(shù),反映圖像中每種灰度出現(xiàn)的頻率,橫坐標(biāo)是灰度級(jí),縱坐標(biāo)是灰度級(jí)出現(xiàn)的頻率。
雙峰直方圖是指直方圖中出現(xiàn)兩個(gè)峰,也就是說(shuō)有兩個(gè)頻率較高的灰度級(jí),一個(gè)在較低灰度級(jí)部分,一個(gè)在較高灰度級(jí)部分。
以兩幅尺寸為256*256圖片為例,一幅是調(diào)車(chē)時(shí)的實(shí)際場(chǎng)地圖像,一幅是純藍(lán)白賽道圖。
用MATLAB統(tǒng)計(jì)灰度直方圖
灰度圖
灰度直方圖
由此實(shí)際賽道和理想賽道的灰度差異,智能車(chē)圖像直方圖就是一個(gè)多峰灰度圖。
(3)自動(dòng)閾值法基本步驟
(4)閾值分割完圖像數(shù)組后,便是對(duì)其二值化,因?yàn)樘幚砥髦荒茏R(shí)別二進(jìn)數(shù)О和1,因此小于或等于闕值的像素可以設(shè)定為黑色,以灰度值0表示,大于閾值的像素設(shè)定為白色,以灰度值1表示。
如果有連續(xù)均勻地灰度值,那么可以得到相當(dāng)好的二值化圖像。
MATLAB編程對(duì)上述測(cè)試圖片二值化
圖像不同部分灰度差別較大,勢(shì)必造成大津法閾值分割不準(zhǔn)確。圖片一運(yùn)行時(shí)間為0.017821 秒,圖片二為0.013891秒。
閾值不準(zhǔn)確的原因﹐在很大一部分上是由于光照不均引起的圖像噪聲所致,一幅完美的圖像,直方圖應(yīng)是谷寬雙峰的。
一幅較好的圖像,代表藍(lán)色底布和白色賽道的雙峰應(yīng)該是最明顯的,而圖片一的直方圖是三峰,而且前兩峰靠的很近,高度也近似,這就引入了極大的噪聲。因此我們需要濾除噪聲。
采用最簡(jiǎn)單的均值濾波,得到以下圖像
可見(jiàn)最簡(jiǎn)單的均值濾波并不能滿足濾波要求,但是均值濾波能很好地去掉由于地面反射引起的光斑。
中值濾波以后的圖像
中值濾波并沒(méi)有去掉光斑,但是將光斑區(qū)域明顯的聚集起來(lái)。濾波方法對(duì)噪聲是否有用,要看噪聲的類(lèi)型,上述中值濾波和均值濾波呈現(xiàn)了不同的效果,說(shuō)明含有的噪聲至少有高斯噪聲和椒鹽噪聲兩類(lèi)。
綜合考慮均值濾波和中值濾波,得到以下圖像
(5)上述提到了三峰圖像,而我們采用的是單闕值分割,即只實(shí)現(xiàn)了兩峰之間的分割,第三峰被忽視了,因此可以考慮多峰閾值分割。
具體如下:
①使用OSTU求出第一個(gè)分割閾值t1,將小于等于t1的灰度值設(shè)為t1,其他保持不變,得到新圖像。
②再度適用OSTU得到第二個(gè)閾值t2、將圖像中像素灰度值小于等于t2的置為0,大于的置為255,得到所要處理的圖像。
運(yùn)用多峰闕值法,得到如下圖像:
步驟一以后
由此可知,第一次得到的閾值是前兩個(gè)峰之間的閾值。
步驟二以后
多閾值分割法的效果顯然好于單閥值,而且運(yùn)行時(shí)間為0.037678秒,時(shí)間上比起單閾值分割法多了0.02秒。
加入中值濾波得到的圖像
完全可以滿足尋線要求,但是時(shí)間上為0.112160秒,可見(jiàn)中值濾波很耗費(fèi)時(shí)間。
(6)對(duì)于陽(yáng)光的濾除,模型優(yōu)化上,以信標(biāo)車(chē)為例
模糊OSTU
大津算法的閾值準(zhǔn)確度較高,但是遇見(jiàn)多峰圖像時(shí),大津閾值法的分割可能無(wú)法滿足要求,需要判斷峰的數(shù)目,然后多次使用大津算法,這種情況下運(yùn)算量較大。
對(duì)智能車(chē)賽道來(lái)講,究其原因,是因?yàn)樗{(lán)色底布反光呈現(xiàn)的灰度值與白色賽道灰度值接近,使得圖像灰度值呈現(xiàn)模糊化的特點(diǎn),因此可以運(yùn)用模糊數(shù)學(xué)的方法,在大津法的基礎(chǔ)上對(duì)其進(jìn)行改進(jìn)。
1、模糊大津閾值法基本原理
將賽道圖像灰度值分為三類(lèi),第一類(lèi)A 藍(lán)色底布,選取較低的一部分灰度值L2,第二類(lèi)B反光區(qū)域,選取中間的一部分灰度值Ll-L4,第三類(lèi)C白色賽道,選取較高的一部分灰度值L3。
圖像被分割為三個(gè)區(qū)域ABC,圖像的每一個(gè)灰度值都有一個(gè)隸屬度或兩個(gè)隸屬度,比如L2點(diǎn)有兩個(gè)隸屬度u(L2)和u,(L2)且u(L2)+ ug(L2)=1,每個(gè)區(qū)域就相當(dāng)于一個(gè)模糊子集。
2、模糊大津閾值法基本步驟
設(shè)圖像灰度直方圖函數(shù)為h(k),h(k)表示當(dāng)灰度值為k時(shí)像素點(diǎn)的個(gè)數(shù),如果整幅圖像的像素?cái)?shù)為N,那么在大津閾值法基礎(chǔ)上修改的各個(gè)區(qū)域的像素面積比為︰
由于區(qū)域劃分受到L1,L2,L3,L4的影響,通過(guò)遍歷灰度直方圖的谷點(diǎn),求出均值谷點(diǎn)作為灰度直方圖分割點(diǎn),分割點(diǎn)左方為α.區(qū)域,右方為β區(qū)域,取α區(qū)域頻率最高灰度值gray1 ,β區(qū)域頻率灰度最高值gray2 。
Ll = gray1
L2= gray1+20
L4= grav 2
L3滑動(dòng)取值,比較不同L3下的類(lèi)問(wèn)最大方差,當(dāng)類(lèi)問(wèn)最大方差最大時(shí),取闕值為
3、模糊大津閾值法MATLAB圖像處理
使用MATLAB編程,得到如下圖像。
五、方法比較
在反射光較強(qiáng)時(shí),對(duì)不加任何濾波的OSTU、多闕值OSTU、模糊OSTU進(jìn)行比較
沒(méi)有反射光的圖像,不加任何濾波進(jìn)行比較