數字形態(tài)學(xué)濾波器與智能車(chē)路徑記憶
引言
本文引用地址:http://dyxdggzs.com/article/81348.htm “飛思卡爾”杯全國大學(xué)生智能車(chē)競賽規則明確指出,智能車(chē)在賽道上連續跑兩圈,并記錄其中最好的單圈成績(jì),這使路徑記憶算法成為可能。如圖1所示,賽道記憶算法在第一圈以最安全的速度緩慢駛過(guò)一圈,并將賽道信息保存下來(lái),第二圈根據保存下來(lái)的信息進(jìn)行車(chē)速和轉角決策的相應最優(yōu)化,從而在第二圈取得好成績(jì)。無(wú)論智能車(chē)的傳感器前瞻距離有多遠,在跑圈時(shí)它都只能預測在一段有限距離內賽道的情況。而采用賽道記憶算法的智能車(chē),在第二圈時(shí)已對整個(gè)賽道有了全面的認識,從而在相同條件下,將比不使用賽道記憶的智能車(chē)更具優(yōu)勢。
第一圈準確記憶賽道信息是第二圈控制策略的基礎,是比賽成敗的關(guān)鍵。但是在第一圈中不論控制策略如何優(yōu)秀,賽車(chē)總會(huì )或多或少的偏離賽道,舵機的轉角信息總會(huì )出現一定程度的毛刺和擾動(dòng)等粗大誤差,其幅值足以引起處理器的誤判。如果不加處理直接應用于第二圈控制,會(huì )對賽車(chē)造成嚴重干擾,不能以極限速度跑完比賽或者沖出賽道。通常的處理方法有兩種:一是通過(guò)閾值比較丟棄干擾值,但同時(shí)賽道信息也會(huì )同干擾信息一起被丟棄;二是通過(guò)低通濾波將干擾平均到多個(gè)位置,但同時(shí)破壞了賽道原始信息,而且在干擾幅值很大的時(shí)候效果也不是很明顯。
數學(xué)形態(tài)學(xué)(Mathematical Morphology)是一種新型的數字圖像處理方法和理論,其主要內容是設計一整套的變換(運算)、概念和算法,用以描述圖像的基本特征。提供了非常有效的非線(xiàn)性濾波技術(shù),該技術(shù)只取決于信號的局部形狀特征。因此,它在諸如形狀分析、模式識別、視覺(jué)校驗、計算機視覺(jué)等方面,要比傳統的線(xiàn)性濾波更為有效。
算法的選取與實(shí)驗結果對比
數學(xué)形態(tài)學(xué)的運算以腐蝕和膨脹這兩種基本運算為基礎,引出了其它幾個(gè)常用的數學(xué)形態(tài)運算。數學(xué)形態(tài)學(xué)中最常見(jiàn)的基本運算只有七種,分別為:腐蝕、膨脹、開(kāi)運算、閉運算、擊中、細化和粗化,它們是全部形態(tài)學(xué)的基礎。它們的定義如下:
設X代表一個(gè)數字圖像,我們假定該圖像是二值的,即取值只有1或0,則X表示一個(gè)二進(jìn)制信號集合,B是一個(gè)簡(jiǎn)單的緊集合,稱(chēng)為“結構元素”。X被B膨脹和腐蝕的結果可以分別定義為:

在數字圖形處理領(lǐng)域中,數學(xué)形態(tài)學(xué)主要用于非線(xiàn)性變形,它可以局部地修改信號的幾何特征,并提供有關(guān)信號的幾何特征信息。根據不同的信號的形態(tài)特征,可以采用不同的數學(xué)形態(tài)學(xué)運算對信號進(jìn)行處理,這些數學(xué)形態(tài)與運算都被視為數學(xué)形態(tài)濾波器。在這種應用方法中,每一個(gè)信號都被視為適當的維數的歐幾里德空間中的集合。數學(xué)形態(tài)濾波器被定義為集合的運算,它使信號的圖形變形,以提供關(guān)于其幾何結構的數字化信息。對于被視為集合的二進(jìn)制信號,腐蝕、膨脹、開(kāi)運算和閉運算是最簡(jiǎn)單的形態(tài)運算。這些濾波器還可以引申到多維信號中去。此時(shí),形態(tài)濾波器利用的是灰值圖的數學(xué)形態(tài)運算的定義。下面將探討如何將數學(xué)形態(tài)濾波器應用到舵機轉角信號(一維數字信號)的處理中,實(shí)現去除脈沖噪聲和減小擾動(dòng),以及在單片機上編程實(shí)現和快速運算的方法。
數學(xué)形態(tài)濾波器通常是用在二維圖形的處理,為把數學(xué)形態(tài)濾波器推廣到一維的信號的處理中,下面再介紹一下腐蝕、膨脹、開(kāi)運算和閉運算這一個(gè)基本運算在一維信號處理中的定義:
設H、K分別為h[n]和k[n]的定義域,長(cháng)度分別為N和M,一般N>M。H和K均為整數集合。
h[n]指包含舵機轉角信號的數字化序列,k[n]指結構元素序列。
h被k腐蝕:

采用數字形態(tài)濾波方法,還要選用合理的算法。其中,如何選取模板序列的長(cháng)度是關(guān)鍵,如果模板序列過(guò)長(cháng)會(huì )將有用信號當作噪聲濾除,過(guò)短則達不到濾除噪聲的目的。在采樣速率一定的情況下,序列的長(cháng)度與時(shí)間成正比,這要求模板的長(cháng)度要小于模型車(chē)的最小轉彎時(shí)間,大于舵機擾動(dòng)的最長(cháng)時(shí)間。第一圈讓模型車(chē)勻速通過(guò),這樣處理有兩個(gè)優(yōu)點(diǎn):
1) 可以固定最小轉彎時(shí)間,從而確定模板的長(cháng)度。非勻速通過(guò)時(shí)速轉彎時(shí)間不定,要求模板長(cháng)度可變,從而造成后續處理復雜,穩定性不高。
2) 采樣序列的順序可以直接轉化為位移量,便于后續控制策略處理。相對于非勻速通過(guò)速度與時(shí)間乘積得到的位移,直接轉化得到的位移更準確(在標準的韓國賽道上,實(shí)驗模型車(chē)直接轉化得到的賽道長(cháng)度誤差小于5cm,速度與時(shí)間乘積得到賽道長(cháng)度誤差在10cm以上)。
實(shí)驗系統在圖2所示的賽道上,智能車(chē)對賽道信息的采樣速率為200Hz,以1.5m/s的速度勻速跑完第一圈的數據如圖3所示??梢钥吹皆趶澋乐?,舵機的轉角信息存在著(zhù)嚴重的毛刺和擾動(dòng),不能直接用于第二圈的控制策略。圖4為matlab中采用3階巴特沃茲濾波處理后的結果,干擾的抑制效果仍然不理想,而且運算量偏大,單片機難以承受。圖5為采用形態(tài)學(xué)濾波處理后的數據,賽道信息完整準確,可以較好的應用于后續控制策略。
圖2 實(shí)驗系統采用的賽道
圖3 第一圈記錄的賽道信息
圖 4 3階巴特沃茲濾波器處理后數據
圖5 形態(tài)學(xué)濾波處理后的數據
數學(xué)形態(tài)濾波的快速算法
由于數學(xué)形態(tài)濾波器只由加法、減法和比較運算構成,其運算相對簡(jiǎn)單,因此,它很適合于在計算功能相對較弱的單片機上應用并能取得很好的效果。以往單片機由于受存儲容量、計算速度及字長(cháng)的限制而使大多數的數字濾波器較難實(shí)現,而形態(tài)濾波器則為單片機應用數字濾波器代替以往的模擬濾波器提供了一條新的途徑。
由腐蝕的定義可知,欲計算f(n)的腐蝕值,需要知道該點(diǎn)前w(w為結構元素的寬度)點(diǎn)的數據;而要計算f(n)膨脹后的結果,則需要知道該點(diǎn)后w點(diǎn)的數據。由于運算是一個(gè)腐蝕運算接著(zhù)一個(gè)膨脹運算后得到的,在長(cháng)度為L(cháng)的數據中只有從第w點(diǎn)到第(L-w+1)點(diǎn),才可以得到開(kāi)運算的結果。
如圖6所示,我們定義一個(gè)模板序列,該序列的長(cháng)度和結構元素的寬度相同。該模板的初始值由前w個(gè)點(diǎn)的腐蝕值組成。以第n點(diǎn)為例,沿該點(diǎn)向前的方向對模板序列的值進(jìn)行膨脹運算,運算的結果即為該點(diǎn)的開(kāi)運算的結果。同時(shí),沿該點(diǎn)向后的方向繼續進(jìn)行腐蝕運算,得到第(n+1)點(diǎn)的腐蝕值。將(n+1)點(diǎn)的腐蝕值作為模板序列的最后一個(gè)點(diǎn),并將模板序列前(w-1)點(diǎn)順次向前移動(dòng)一個(gè)位置。更新后的模板值即可用來(lái)做 (n+1)點(diǎn)的膨脹運算,得到在(n+1)點(diǎn)的開(kāi)運算值。如此繼續下去,就可完成全部的開(kāi)運算。在做閉運算也可采用類(lèi)似的方法來(lái)提高計算的速度。
圖6 數學(xué)形態(tài)濾波快速算法
這樣,對長(cháng)度為N的一段數據,用M個(gè)零作為其結構元素進(jìn)行處理時(shí),當采用一般方法進(jìn)行計算,需要進(jìn)行2×M×N次的比較運算。而當采用快速算法時(shí),能夠在比較最大值的同時(shí)得到最小值,減少(N-M+1)×M次比較運算,使程序的執行速度提高了近一倍,而且,由于采用這種快速算法,可以實(shí)現路徑記憶信息的實(shí)時(shí)處理,很大程度上方便了第二圈控制策略的制定,因此,它使得形態(tài)濾波這種方法更加適合應用于路徑信息的處理中。
實(shí)驗及結論
通過(guò)對不同傳感器方案(光電管和CCD)的智能車(chē)在不同賽道多次實(shí)驗發(fā)現,對于光電管方案和CCD方案的智能車(chē),賽道記憶算法都能一定程度上提高第二圈速度。智能車(chē)采用形態(tài)學(xué)濾波算法處理賽道記憶數據后,不但行駛的穩定性、準確性有了較大的提升,而且沒(méi)有大幅增加MCU的資源消耗,同時(shí)可以支持復雜的控制策略。上述方案具有很強的通用性,適用于不同傳感器方案、不同控制算法的智能車(chē)。
評論