文章標(biāo)識碼: A
文章編號: 0258-7998(2012)02-0124-03
近年來,機(jī)器人聽覺系統(tǒng)開發(fā)已經(jīng)成為機(jī)器人研究領(lǐng)域的重要課題。由于聲波的波長較大,具有較強(qiáng)的衍射能力,可以繞過障礙物傳播,并且能與視覺傳感器配合,從而可用于實(shí)現(xiàn)移動(dòng)機(jī)器人的全方位導(dǎo)航。聽覺系統(tǒng)的開發(fā)本質(zhì)上就是聲源定位系統(tǒng)的研究,采用麥克風(fēng)陣列進(jìn)行聲源定位是信號處理領(lǐng)域的一個(gè)研究熱點(diǎn)。一組麥克風(fēng)按照一定的幾何結(jié)構(gòu)擺放組成麥克風(fēng)陣列[1],拾取來自各個(gè)方向的聲音信號,并進(jìn)行空時(shí)處理,從而精確定位目標(biāo)聲源。
在工程應(yīng)用中,根據(jù)麥克風(fēng)陣列模型和聲音球面?zhèn)鞑ツP蜆?gòu)建的聲源定位系統(tǒng)是一組復(fù)雜的非線性方程,難以用數(shù)值計(jì)算方法準(zhǔn)確建模。在這種情況下,可以應(yīng)用神經(jīng)網(wǎng)絡(luò)表達(dá)這種非線性系統(tǒng)。神經(jīng)網(wǎng)絡(luò)可以按照指定的精度逼近各種復(fù)雜的非線性系統(tǒng),解決非線性系統(tǒng)的建模問題,并對信息采用分布式存儲的處理方式,具有高運(yùn)算效率和很強(qiáng)的容錯(cuò)性、魯棒性[2-3]。
本文研究了可應(yīng)用移動(dòng)機(jī)器人上的聲源定向系統(tǒng),介紹了其硬件構(gòu)成,采用BP神經(jīng)網(wǎng)絡(luò)對定向系統(tǒng)進(jìn)行研究,并通過Matlab仿真證明了在四元麥克風(fēng)陣列模型下實(shí)現(xiàn)遠(yuǎn)場和近場的目標(biāo)聲源定向。
1 定向系統(tǒng)硬件結(jié)構(gòu)
1.1 麥克風(fēng)陣列模型
聲源定向系統(tǒng)的幾何結(jié)構(gòu)如圖1所示,由M1、M2、M3和M4 4個(gè)麥克風(fēng)組成一個(gè)四元球面陣列,對目標(biāo)聲源進(jìn)行定向。其中P為聲源,?琢、?茁分別為方位角和俯仰角。系統(tǒng)麥克風(fēng)選用駐極體麥克風(fēng),這種傳聲器具有體積小、全向性、價(jià)格低、靈敏度較高和頻率響應(yīng)范圍寬等優(yōu)點(diǎn)。該麥克風(fēng)能夠有效地收集聲音信息并檢測出聲音到達(dá)麥克風(fēng)的初始時(shí)刻,為后續(xù)的定位計(jì)算提供準(zhǔn)確的數(shù)據(jù)。整個(gè)系統(tǒng)以Activmedia的Pioneer3 AT機(jī)器人為安裝平臺,如圖2所示。該機(jī)器人配備有速度、激光、攝像頭等傳感器,采用4個(gè)車輪保持平衡,可以承受的載重超過35 Kg,底部裝有2個(gè)直流電動(dòng)機(jī),分別用來驅(qū)動(dòng)左輪和右輪,前后均裝配了防碰接觸開關(guān),能同時(shí)適用于戶外和戶內(nèi)的應(yīng)用需求。
圖1 麥克風(fēng)陣列結(jié)構(gòu)模型
圖2 機(jī)器人實(shí)驗(yàn)系統(tǒng)平臺
1.2 聲達(dá)時(shí)間獲取
1.2.1 信號放大及噪聲的處理
由于全向型麥克風(fēng)的輸出電壓大都在零到幾十毫伏之間,如此微弱的電信號無法滿足后期信號處理工作的要求。因此,僅靠電容式麥克風(fēng)的拾音能力是遠(yuǎn)遠(yuǎn)不夠的,有必要對麥克風(fēng)采集到的信號進(jìn)行放大。本文采用性能較穩(wěn)定的集成運(yùn)算放大器對采集信號進(jìn)行二級放大。考慮到電器元件的放大特性不是完全一致的,因此加入了增益調(diào)整電位器,以便后期調(diào)試時(shí)減少由于硬件特性不同而產(chǎn)生的誤差。除此之外,為了在實(shí)驗(yàn)過程中實(shí)時(shí)觀測信號的采集情況,利用發(fā)光二極管制作輸出信號指示燈來指示信號的強(qiáng)弱變化。同時(shí)考慮到聽覺定位系統(tǒng)的魯棒性和實(shí)時(shí)性,本文還利用集成運(yùn)算放大器制作電壓比較器,使聽覺定位系統(tǒng)具有一定的抗噪能力,通過調(diào)節(jié)參考電壓對背景噪聲進(jìn)行過濾。
1.2.2 聲達(dá)時(shí)間點(diǎn)的捕捉
通過上述過程,系統(tǒng)對聲電信號進(jìn)行了整形,使得大于背景噪聲的信號以方波的形式輸出,用于捕捉聲源信號到達(dá)時(shí)間點(diǎn)。為了使陣列中各個(gè)麥克風(fēng)均能精確地捕捉目標(biāo)聲音到達(dá)的時(shí)間點(diǎn),采用微處理器配合RS觸發(fā)器進(jìn)行捕捉,具體實(shí)現(xiàn)方法如圖3所示。
圖3 捕捉聲達(dá)時(shí)間點(diǎn)硬件電路圖
聲源信號經(jīng)過電壓比較器整形后,產(chǎn)生連續(xù)方波脈沖。當(dāng)?shù)谝粋€(gè)脈沖到達(dá)觸發(fā)器時(shí),觸發(fā)器鎖存并保持電平,輸出端發(fā)光二極管隨即發(fā)生變化,指示聲源信號起始點(diǎn)已被鎖存。由于已將微處理器中的可編程計(jì)數(shù)器調(diào)整為捕捉定時(shí)器工作模式,并設(shè)置CPU時(shí)鐘頻率,所以當(dāng)觸發(fā)器改變電平時(shí),CPU記錄并存儲脈沖到來的時(shí)間。等待4路麥克風(fēng)的聲源信號相繼到達(dá)后,再利用串口通信將4個(gè)存儲的時(shí)間點(diǎn)發(fā)送到上位機(jī),與此同時(shí),將鎖存器電平和微處理器復(fù)位,等待下一刻聲源信號的到達(dá)。這種利用硬件直接捕捉聲達(dá)的方法簡單易行且精度較高。
2 神經(jīng)網(wǎng)絡(luò)計(jì)算模型建立
2.1確定網(wǎng)絡(luò)結(jié)構(gòu)
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),由輸入層、隱含層和輸出層組成[4]。根據(jù)系統(tǒng)輸入輸出數(shù)據(jù)的特點(diǎn)來確定BP神經(jīng)網(wǎng)絡(luò)的輸入輸出,輸入數(shù)據(jù)為3個(gè)時(shí)延值,即聲音信號到達(dá)陣列中不同位置的麥克風(fēng)的時(shí)間差。把聲源到麥克風(fēng)M4的時(shí)間作為基準(zhǔn),到麥克風(fēng)M1、M2、M3的時(shí)間與基準(zhǔn)的差記作3個(gè)時(shí)延值,構(gòu)成一組3個(gè)參數(shù)的輸入數(shù)據(jù)。輸出數(shù)據(jù)為目標(biāo)聲源的位置,本文的聲源定位目的是為了實(shí)現(xiàn)移動(dòng)機(jī)器人對目標(biāo)聲源的跟蹤,所以輸出數(shù)據(jù)采用球坐標(biāo)形式較為方便。該網(wǎng)絡(luò)的輸出有方位角、俯仰角和距離3個(gè)參數(shù)。
隱含層層數(shù)的選擇要從網(wǎng)絡(luò)的精度和訓(xùn)練時(shí)間上綜合考慮[5],在網(wǎng)絡(luò)精度達(dá)到要求的情況下,可以選擇單隱層,以求加快訓(xùn)練速度;而對于復(fù)雜的映射關(guān)系,選擇多隱含層,可以提高網(wǎng)絡(luò)預(yù)測精度[6-7]。本文選用有2個(gè)隱含層的BP網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)為3-25-25-3,即輸入層和輸出層有3個(gè)節(jié)點(diǎn),2個(gè)隱含層分別有25個(gè)節(jié)點(diǎn)。
2.2 數(shù)據(jù)處理
假設(shè)4個(gè)麥克風(fēng)之間的距離均為0.1 m,目標(biāo)聲源范圍為一個(gè)半徑0.1 m~5 m的球體內(nèi)的任意點(diǎn)。聲速為340 m/s,根據(jù)聲源定位模型的幾何關(guān)系隨機(jī)取數(shù)得到系統(tǒng)2 000組的輸入輸出數(shù)據(jù)。從中隨機(jī)選取1 900組數(shù)據(jù)作為網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù),其余100組數(shù)據(jù)作為網(wǎng)絡(luò)測試數(shù)據(jù)。
數(shù)據(jù)歸一化方法是神經(jīng)網(wǎng)絡(luò)預(yù)測前對數(shù)據(jù)常做的一種處理方法[8]。該方法主要有最大最小法、平方數(shù)方差法[9]兩種。本文采用第一種方法對輸入輸出數(shù)據(jù)進(jìn)行歸一化處理,并對網(wǎng)絡(luò)預(yù)測輸出進(jìn)行反歸一化,通過Matlab的自帶函數(shù)mapminmax來實(shí)現(xiàn)。
3 Matlab仿真與結(jié)果分析
3.1 Matlab仿真
Matlab軟件中包含Matlab神經(jīng)網(wǎng)絡(luò)工具箱,可以直接調(diào)用構(gòu)建各種類型的神經(jīng)網(wǎng)絡(luò)。本文的BP神經(jīng)網(wǎng)絡(luò)主要用newff、train和sim 3個(gè)神經(jīng)網(wǎng)絡(luò)工具箱自帶函數(shù)來實(shí)現(xiàn)網(wǎng)絡(luò)的構(gòu)建、訓(xùn)練和仿真預(yù)測。
本文的聲源定位系統(tǒng)以實(shí)現(xiàn)對目標(biāo)聲源的跟蹤為目的,預(yù)測出方位角和俯仰角,確定目標(biāo)聲源的空間方向?qū)崿F(xiàn)跟蹤。但由于BP神經(jīng)網(wǎng)絡(luò)的擬合能力有限,并不能對距離做出較為準(zhǔn)確的預(yù)測,故舍去了這組數(shù)據(jù),主要分析方位角和俯仰角這2組輸出數(shù)據(jù)。圖4為100組預(yù)測數(shù)據(jù)的方位角預(yù)測誤差,誤差范圍為±5°。圖5為100組預(yù)測數(shù)據(jù)的俯仰角預(yù)測誤差,誤差范圍為±4°。
3.2 仿真結(jié)果分析與實(shí)驗(yàn)驗(yàn)證
傳統(tǒng)的聲源定位方法是利用幾何關(guān)系,建立一組時(shí)延和聲源坐標(biāo)的方程組,通過解方程組得到時(shí)延和聲源坐標(biāo)的數(shù)值關(guān)系。在解方程組的過程中,大都假設(shè)聲源位于遠(yuǎn)場且聲音信號以平面波傳播,以此來約減得到近似結(jié)果。但當(dāng)聲源位于近場時(shí),即當(dāng)麥克風(fēng)之間的距離相對于聲源到麥克風(fēng)的距離較大時(shí),這種假設(shè)就不再成立了。如果仍然用近似的結(jié)果進(jìn)行計(jì)算,那么得到的數(shù)據(jù)與真實(shí)數(shù)據(jù)相比就不僅是誤差較大了,而是錯(cuò)誤的。
用于BP神經(jīng)網(wǎng)絡(luò)預(yù)測的100組輸入輸出數(shù)據(jù)是在2 000組樣本數(shù)據(jù)中隨機(jī)選擇的,遠(yuǎn)場和近場的聲源位置都有。從Matlab仿真得到的圖形來看,誤差分布較均勻,說明并沒有因?yàn)槭墙鼒雎曉瓷窠?jīng)網(wǎng)絡(luò)就出現(xiàn)大的預(yù)測誤差,表明該神經(jīng)網(wǎng)絡(luò)無論是近場還是遠(yuǎn)場都可以預(yù)測目標(biāo)聲源的方位角和俯仰角。為了進(jìn)一步驗(yàn)證網(wǎng)絡(luò)在近場對聲源的定向情況,選取目標(biāo)聲源范圍為0.1 m~0.5 m的空心球體內(nèi)的點(diǎn),用已訓(xùn)練好的BP網(wǎng)絡(luò)再次進(jìn)行預(yù)測。預(yù)測的方位角誤差和俯仰角誤差分別如圖6、圖7所示。近場方位角預(yù)測誤差大部分在±5°以內(nèi),有個(gè)別樣本點(diǎn)的誤差較大甚至預(yù)測錯(cuò)誤,這是由于選取的樣本點(diǎn)離坐標(biāo)原點(diǎn)太近造成的,不影響實(shí)際應(yīng)用。近場俯仰角預(yù)測誤差結(jié)果與圖4、圖5的預(yù)測結(jié)果很相似,誤差范圍仍然是±4°。
在機(jī)器人實(shí)驗(yàn)平臺上驗(yàn)證該神經(jīng)網(wǎng)絡(luò)的性能時(shí),以室內(nèi)拍手聲作為聲源,大小約70 dB,背景噪聲約30 dB。機(jī)器人能辨別出聲源的方向并向其靠近,證明了該四元麥克風(fēng)陣列可以使移動(dòng)機(jī)器人實(shí)現(xiàn)較好的聲源定向和跟蹤。
本論文應(yīng)用四元麥克風(fēng)陣列進(jìn)行移動(dòng)機(jī)器人的聲源定向研究,設(shè)計(jì)了一個(gè)雙隱層的BP神經(jīng)網(wǎng)絡(luò)。經(jīng)Matlab仿真證明,輸入獲取的時(shí)延數(shù)據(jù),可以實(shí)現(xiàn)近場和遠(yuǎn)場的目標(biāo)聲源定向,并且在機(jī)器人本體上進(jìn)行了實(shí)驗(yàn)測試,進(jìn)一步驗(yàn)證了其實(shí)用性。但是由于網(wǎng)絡(luò)擬合能力有限,并不能很好地預(yù)測聲源的空間距離,因此,如何實(shí)現(xiàn)對空間距離的準(zhǔn)確預(yù)測是下一步的重點(diǎn)研究任務(wù)。
參考文獻(xiàn)
[1] 傅薈璇,趙紅. Matlab神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)[M]. 北京:機(jī)械工業(yè)出版社,2010.
[2]飛思科技產(chǎn)品研發(fā)中心. 神經(jīng)網(wǎng)絡(luò)與Matlab 7實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2005.
[3] 周開利,康耀紅.神經(jīng)網(wǎng)絡(luò)模型及其Matlab仿真程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2005.
[4] 張良均,曹晶,蔣世忠.神經(jīng)網(wǎng)絡(luò)使用教程[M].北京:機(jī)械工業(yè)出版社,2008.
[5]吳仕勇. 基于數(shù)值計(jì)算方法的BP神經(jīng)網(wǎng)絡(luò)及遺傳算法的優(yōu)化研究[D].昆明:云南師范大學(xué),2006.
[6] HAGAN M T, DEMUTH H B, BEALE M H. Neural network design[M]. 北京:機(jī)械工業(yè)出版社,2002.
[7] AARABI P, ZAKY S. Robust sound localization using multi-source audiovisual information fusion[J]. Information Fusion ,2001(2):209-223.
[8] LIN Z, XU B. Sound source localization based on microphone array[J].Electro-acoustic technology,2004(5):19-24.
[9] 余立雪.神經(jīng)網(wǎng)絡(luò)與實(shí)例學(xué)習(xí)[M].北京:中國鐵道出版社,1996.