一種非均勻行采集的智能車路徑識別算法
單行數(shù)據(jù)處理
本文引用地址:http://m.butianyuan.cn/article/114481.htm橫向濾波
由于受到道路環(huán)境和硬件環(huán)境,如:光電轉(zhuǎn)換過程中光敏元件靈敏度的不均勻性、數(shù)字化過程的量化噪聲等的影響,單片機采集的圖像信息中會存在干擾,在路徑識別過程中,有些干擾可能會被誤認為是引導線。因此,在單行數(shù)據(jù)處理之前,首先對圖像信息進行橫向濾波。
中值濾波是一種典型的非線性濾波方式,其主要功能是讓與周圍像素灰度值的差比較大的像素改取與周圍像素值接近的值,中值濾波對孤立的噪聲點(特別是椒鹽噪聲)的消除能力較強,同時能夠有效保護圖像的邊緣[4]。
本文選用1×3的窗口對單行數(shù)據(jù)進行中值濾波,將某個像素點和相鄰兩個像素點的像素值按大小順序排列,取出中間值作為該點的像素值。這種方法能夠有效地抑制隨機噪聲,并且計算量相比去噪常用的3×3模板要小得多,能夠有效地提高路徑識別的實時性[5]。
閾值分割
閾值分割的基本思想是確定一個閾值,然后把每個像素點的像素值和閾值相比較,根據(jù)比較結(jié)果把該像素劃分為目標或背景,圖像分割效果的好壞直接取決于閾值的選取。由于光線和噪聲的干擾,若用一個固定閾值進行分割,會產(chǎn)生一定的誤差。為盡可能減小誤分割的概率,增強智能車的抗光線變化干擾能力,本文采用動態(tài)閾值對每一行圖像進行分割,根據(jù)上一行的圖像數(shù)據(jù)確定下一行的閾值,閾值T的確定方法為[6]:
式中,bm和tm分別為背景和目標區(qū)域平均灰度值。
這里先取圖像灰度范圍的中值作為第一行的初始值,然后迭代求得各行的值。具體迭代步驟如下:
(1) 求出第一行圖像中的最大灰度值maxZ和最小灰度值minZ;
(2) 求出第一行的初始閾值T0=(maxZ+minZ)/2,給定迭代時新舊閾值的允許接近程度ε=5;
(3) 求出第一行圖像中灰度值Z≥T1的所有像素點的數(shù)量bn、累加和bS以及灰度值Z< T1的所有像素點的數(shù)量tn、累積和tS;
(4) 計算確定第一行閾值
(5) 轉(zhuǎn)至步驟(3),求出第i行閾值Ti,如果則Ti為最終閾值,否則,Ti =Ti-1。
邊緣檢測
邊緣是目標與背景相鄰區(qū)域之間灰度值不連續(xù)的結(jié)果,邊緣檢測是所有基于邊界的圖像分割的第一步。本系統(tǒng)的引導線與地板的色差較大,反映在數(shù)據(jù)中就是灰度值差別較大,引導線與地板間的邊沿較明顯,如圖5所示,因此對邊緣進行檢測較容易且可靠性高。
邊緣檢測的思路是:確定一閾值,對采集的單行圖像數(shù)據(jù)逐點進行掃描,若灰度值小于閾值,則判斷該點為黑點,即檢測到引導線左邊緣,繼續(xù)掃描,若灰度值大于給定閾值,則該點為白點,將該點作為引導線右邊緣。右邊緣和左邊緣的橫坐標之差為引導線的寬度,其平均值即為引導線的中心橫坐標值。
由于圖像數(shù)據(jù)中可能存在著未被濾出的噪聲點,通過以上算法不可避免地會將一些噪聲點識別為引導線。從而可能在一行數(shù)據(jù)中存在多段黑線,根據(jù)路徑的連續(xù)性特性對路徑進行提取可提高引導線識別的可靠性。提取路徑的過程如下。
(1)如果該行中沒有檢測到黑線,則該行為純白或純黑行,將路徑坐標置為零,同時將無效行標志置位。若該行為一場的第一行,則將無效場標志置位。
(2)如果檢測到一段黑線,若黑線寬度大于設(shè)定的先驗值,則將該黑線段的中心坐標作為該行的路徑中心坐標,否則將該行設(shè)為無效行。
(3)如果檢測到兩段黑線,若該行為一場的第一行,則該行的路徑坐標不變,即保持上一場該行的路徑坐標;否則,分別判斷兩段黑線與上一行路徑坐標的距離,取距上行較近的黑線中心為該行路徑坐標。
(4)如果檢測到更多黑線,則該行無效,將路徑坐標置為零,同時將無效行標志置位。
整場數(shù)據(jù)處理
道路圖像經(jīng)過單行路徑提取以后,橫向的單點噪聲已經(jīng)消除,但是對于部分寬度較大的干擾卻無法濾除,這樣提取出來的路徑在某些行就發(fā)生了跳變。為了得到準確的引導線參數(shù),為后續(xù)的控制模塊提供精確的導航參數(shù),需要在整場圖像采集完畢之后,對提取的路徑進行縱向的平滑。
評論