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