文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.183297
中文引用格式: 王培丞,張衛(wèi)鋼. 一種基于隨機森林算法的多障礙物超聲測距方法[J].電子技術(shù)應(yīng)用,2019,45(4):7-10,14.
英文引用格式: Wang Peicheng,Zhang Weigang. A multi-obstacle ultrasonic ranging method based on the random forest algorithm[J]. Application of Electronic Technique,2019,45(4):7-10,14.
0 引言
因超聲波在傳播過程中不受光線、煙霧、電磁干擾等因素影響,所以相較于其他測距方式,超聲波測距有著明顯的優(yōu)勢,受到無人駕駛領(lǐng)域的青睞[1]。
超聲波測距一般使用脈沖回波法[2]。傳統(tǒng)的回波信號處理有閾值法、互相關(guān)函數(shù)法。閾值法簡單實用,實時性好,對距離近、回波峰值較強的信號有很好的檢測能力,但是難以應(yīng)用在距離遠(yuǎn)、回波峰值弱的信號中?;ハ嚓P(guān)函數(shù)法一般只能處理5 m之內(nèi)的回波信號[3],同樣不適用于對遠(yuǎn)距離障礙物的測距。此外,互相關(guān)函數(shù)法理論上只存在一個最優(yōu)點,因此該方法也不能在探測區(qū)域內(nèi)同時對多個障礙物進(jìn)行測距。因此,本文提出了一種基于隨機森林算法的超聲回波信號處理方法,通過對回波信號的時域和頻域分析,提取并融合時、頻域特征信息,利用隨機森林算法判斷出探測區(qū)域內(nèi)的障礙物并計算出障礙物的距離[4]。
1 傳統(tǒng)超聲波測距原理
傳統(tǒng)脈沖回波測距原理是:用脈沖激勵超聲探頭向外發(fā)射超聲波,同時接收從被測物體反射回來的超聲波(簡稱回波)[5],通過檢測從發(fā)射超聲波至接收回波所經(jīng)歷的時間t,簡稱為飛躍時間,利用下式計算超聲波探頭與被測物體之間的距離d,即:
其中,v為空氣介質(zhì)中聲波的傳播速度,常溫下,v一般取340 m/s。
設(shè)計超聲測距系統(tǒng)電路時,需要考慮聲強衰減的問題,因為超聲波在空氣中傳播過程中,聲強會隨著傳播距離的增大而減小[6]。造成衰減的原因是聲束本身存在的擴散以及反射、散射現(xiàn)象等。假設(shè)最初的聲強為I0,在經(jīng)過x米距離后,由于吸收衰減,聲強變?yōu)镮,則超聲波的衰減可以用下式表示:
式中,α為空氣衰減系數(shù)。如果沒有采取一些增益補償措施,則距離越遠(yuǎn),就越難以區(qū)分障礙物信號和其他白噪聲信號,以致后續(xù)無法對信號分析處理。
2 基于隨機森林算法的超聲回波測距方法介紹
2.1 測距系統(tǒng)設(shè)計
本文設(shè)計的超聲波測距系統(tǒng)組成如圖1所示??紤]到測量距離遠(yuǎn),聲強衰減會很大,故在發(fā)射電路的設(shè)計中,提高了發(fā)射電流,以增強信號發(fā)射功率,同時,在接收電路中也設(shè)計了時間增益補償電路,用于補償空氣傳播過程中聲強的衰減。通常,DSP信號處理器中含有帶通濾波器,可以提高處理器(ARM)接收的回波信號質(zhì)量。
2.2 隨機森林算法
隨機森林算法是由美國科學(xué)家BREIMAN L[8]提出的一種集成分類算法。該算法從訓(xùn)練集中隨機抽取一定數(shù)量的樣本作為每棵樹的根節(jié)點樣本,在建立決策樹時,隨機抽取一定數(shù)量的候選屬性作為分裂節(jié)點。隨機森林計算法因為兩個隨機性[9]的引入,使得該算法不容易出現(xiàn)決策樹[11]法的過擬合現(xiàn)象。另外,隨機森林法在運算量沒有顯著提高的前提下可提高預(yù)測精度,具有很好的抗噪聲能力。因此,本文采用該法計算距離。
2.3 信號時、頻域的特征提取
為了利用隨機森林法,需要提取超聲回波信號的時域和頻域特征。
信號具有時域和頻域的特性。在時域中,信號f(t)是時間的函數(shù),描述的是信號的幅度、頻率和相位隨時間的變化關(guān)系。在頻域中,信號F(jω)是頻率的函數(shù),討論的是信號的幅度和相位隨頻率的變化關(guān)系[12]。信號可以通過傅氏變換在時域和頻域之間轉(zhuǎn)換。
通過研究發(fā)現(xiàn),當(dāng)超聲波遇到障礙物返回時,其反射波的頻率f會在發(fā)射波頻率f0附近出現(xiàn),導(dǎo)致頻率f0附近的頻譜幅度變大。例如,以頻率為f0=48 kHz發(fā)射脈沖方波,得到經(jīng)帶通濾波后的原始回波信號波形S,如圖2(a)所示??煽闯鲈?8 200 μs~19 100 μs和55 200 μs~56 100 μs時間段內(nèi)各有一個障礙物。為了測距,在上述兩個時間段內(nèi)分別取最高點作為飛躍時間,根據(jù)式(1)可計算出兩個障礙物的距離分別約為3.2 m和9.5 m。因此,找出障礙物所在的時間段是解決問題的關(guān)鍵。把原始回波信號S分成n段,每一段所對應(yīng)的時間段大小為t0,t0的大小與回波信號中障礙物從出現(xiàn)的開始時刻到結(jié)束時刻所對應(yīng)的時間段tobs有關(guān),例如圖2(a)中tobs=900 μs,如果t0取值過大,就會出現(xiàn)一段中包含多個障礙物,影響判斷障礙物個數(shù),反之如果取值太小,又會造成一個障礙物出現(xiàn)的時間段tobs被分割成連續(xù)好幾段,使計算變得復(fù)雜。所以一般取較為合適,這樣一個障礙物至多會被連續(xù)的3段t0所包括起來,在后續(xù)處理過程中如果判斷出相鄰的時間段內(nèi)有障礙物出現(xiàn),則可以把它們合并為一個時間區(qū)間。選定好t0后,回波信號S總的時長為tall,那么n=tall/t0。而后對每一段信號Si(i=1,2,…,n)做FFT變換,當(dāng)有障礙物出現(xiàn)的時候,f0附近的頻譜幅度會比較強,如圖2(b)所示,該圖顯示的僅為圖2(a)中兩個障礙物所在時間區(qū)間附近的分段,可以看出在障礙物所在時間區(qū)間43段、44段頻譜幅度明顯比42段、45段強;同理,另外一個障礙物所在時間區(qū)間128段、129段頻譜幅度也要比127段、130段高。
基于以上分析,可以提取信號在時域和頻域的一些特征。時域特征主要指信號的相對峰值幅度CT1,即時域信號包絡(luò)的相對變化量。以其中一段Si為例,其計算方法為:
其中step為步長,ai為步長內(nèi)所包含點的最大值,i=SN/step,SN為Si段中的總點數(shù)。提取的特征CT1的本質(zhì)相當(dāng)于提取了Si段的包絡(luò)。
對時域信號Si段做FFT變換,得到頻域幅度譜,截取發(fā)射頻率f0附近的頻段,設(shè)頻段長度為2d,則其左邊頻率為f0-d,右邊頻率為f0+d。以左、右邊頻率構(gòu)成區(qū)間[f0-d,f0+d],在該區(qū)間上提取頻域特征:頻譜相對面積CT2,即區(qū)間內(nèi)的點所圍成的面積。方差CT3,最大值CT4和極差CT5,其計算公式分別為:
2.4 利用隨機森林法的測距方法
具體步驟如下:
(1)準(zhǔn)備數(shù)據(jù):在不同距離的位置測量障礙物(可以多個)的數(shù)據(jù),每個位置采集三次,并做好標(biāo)注。以其中一個原始信號S為例,把信號分成n段,根據(jù)上一節(jié)特征提取的方法,提取出每一段信號Si(i=1,2,…,n)的時域和頻域特征:CT1i,CT2i,CT3i,CT4i,CT5i,并做好每一段的標(biāo)注信息Li,即說明該段是否含有障礙物。每一個信號S有n個數(shù)據(jù)S1,S2,…,Sn。為了不使某一個特征值對結(jié)果影響過大,對每一個特征進(jìn)行歸一化處理,計算方式如下:
其中Xmax和Xmin分別為某一特征集中最大特征值和最小特征值。利用式(6)得到預(yù)處理后的數(shù)據(jù)集。
(2)訓(xùn)練數(shù)據(jù):把預(yù)處理后的數(shù)據(jù)作為訓(xùn)練集,利用隨機森林算法訓(xùn)練出分類器TB。
(3)預(yù)測數(shù)據(jù):當(dāng)測得一個新的信號數(shù)據(jù)時,把數(shù)據(jù)按照步驟(1)處理后,用訓(xùn)練好的隨機森林分類器TB對數(shù)據(jù)集進(jìn)行分類,判斷出障礙物所在的時間段。如果兩個時間段相鄰,則合并這兩個時間段為一個整體的時間區(qū)間,如果求出多個不相鄰的時間區(qū)間,說明檢測出多個障礙物。
(4)計算距離:找出在時間區(qū)間中的最大值,把該值所對應(yīng)的時間點作為飛躍時間tmax,代入式(1),計算出障礙物距離d。
3 實驗結(jié)果與分析
下面以同時測量兩個障礙物為例來驗證該算法,測試示意圖如圖3所示。在檢測范圍內(nèi),任意放置兩個障礙物,用超聲波測距系統(tǒng)進(jìn)行測量。
實驗中發(fā)射的脈沖方波振蕩頻率為48 kHz,采樣頻率為680 MHz,采樣時間為62 638.55 μs。采集經(jīng)過帶通濾波后的原始數(shù)據(jù)點,得到采樣點數(shù)為43 200個,畫出的波形類似圖2(a)。把原始數(shù)據(jù)分成144段,t0約為500 μs,每段有300個數(shù)據(jù)點,頻域區(qū)間選取為[46 kHz,50 kHz],按照本文算法計算出障礙物的距離。通過對不同距離多個不同障礙物進(jìn)行測量,得到實驗結(jié)果如表1所示。結(jié)果表明,該算法可以在10 m之內(nèi),同時有效地完成對多個障礙物的距離測量。其誤差在±3 cm之內(nèi),達(dá)到了實際的應(yīng)用要求。在同一位置上進(jìn)行多次測量,來評判隨機森林算法的準(zhǔn)確度,其實驗結(jié)果如表2所示。結(jié)果表明該算法具有很好的障礙物識別度。
4 結(jié)論
本文提出的算法通過提取超聲回波信號的時域和頻域信息特征,然后利用隨機森林算法判別出障礙物的個數(shù)并求出目標(biāo)距離,可有效地解決因距離遠(yuǎn)、回波信號弱而造成的測距困難問題。該方法可以實現(xiàn)10 m內(nèi)的多個障礙物距離測量功能,測量誤差在±3 cm之內(nèi),達(dá)到了實際的應(yīng)用需求,已經(jīng)用于實際的自動駕駛場景中的礦場卡車項目里,取得了良好的效果,具有較高的實用價值和理論參考意義。
需要說明的是,可以在滿足一定測量分辨率要求的前提下,通過壓縮手段,使樣本數(shù)據(jù)的間隔合理放大,達(dá)到減小計算量,提高測量實時性的目的。
參考文獻(xiàn)
[1] 許高斌,閔銳,陳興,等.一種新型超聲波測距系統(tǒng)信號處理方法[J].電子技術(shù)應(yīng)用,2016,42(8):84-86.
[2] 趙浪濤,趙永花,柴清.高精度超聲波測距方法的研究[J].電氣自動化,2015,29(3):112-114.
[3] 程曉暢,蘇紹景,王躍科,等.超聲回波信號調(diào)制及其包絡(luò)相關(guān)時延估計算法[J].傳感技術(shù)學(xué)報,2006,19(6):2571-2577.
[4] 王宏江,郭會軍,李軍懷.超聲回波信號包絡(luò)相關(guān)時延估計優(yōu)化算法[J].計算機工程與應(yīng)用,2012,48(20):156-157.
[5] 吳賽燕,楊輝.超聲波測距信號處理算法研究[J].福建電腦,2009,25(3):73-74.
[6] 張珂,俞國華,劉鋼海.超聲波測距回波信號處理方法的研究[J].測控技術(shù),2008,27(1):48-49.
[7] 苑潔,常太華.基于STM32單片機的高精度超聲波測距系統(tǒng)的設(shè)計[J].電子設(shè)計工程,2011,15(48):76-78.
[8] BREIMAN L.Random forests[J].Maching Learning,2001,45(1):5-32.
[9] 馮曉蒲,張鐵峰.四種聚類方法之比較[J].微型機與應(yīng)用,2010,29(16):1-3.
[10] 楊靜,張楠男,李建.決策樹算法的研究與應(yīng)用[J].計算機技術(shù)與發(fā)展,2010(1):114-116,120.
[11] KULKARNI V K,SINHA P K.Random forest classifiers:A survey and future research directions[J].International Journal of Advanced Computing,2013,36(1) :1144-1153.
[12] 張衛(wèi)鋼,張維峰.信號與系統(tǒng)[M].北京:清華大學(xué)出版社,2017.
作者信息:
王培丞,張衛(wèi)鋼
(長安大學(xué) 信息工程學(xué)院,陜西 西安710054)