基于嵌入式gpu系統(tǒng)的并行化聲源定位系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種聲源定位系統(tǒng)及方法,尤其涉及一種基于嵌入式GPU系統(tǒng)的并行 化聲源定位系統(tǒng)及方法,屬于聲源定位領(lǐng)域。
【背景技術(shù)】
[0002] 隨著智能感知、智能終端等技術(shù)與設(shè)備的發(fā)展,聲源定位被越來越廣泛地應(yīng)用,使 用麥克風(fēng)陣列進行聲源位置的估計已經(jīng)成為一個熱門的研宄領(lǐng)域,它在智能人機交互和工 業(yè)控制等領(lǐng)域都有著十分重要的應(yīng)用。麥克風(fēng)陣列技術(shù)改變傳統(tǒng)的單個麥克風(fēng)使用方式, 利用多個麥克風(fēng)排列成一定形狀的陣列同時采集語音,通過對多路信號進行分析處理,結(jié) 合已知的麥克風(fēng)陣列的空間幾何關(guān)系,在空間域中定出一個或多個聲源的平面或者空間坐 標(biāo),從而推算出聲源的位置。
[0003] 傳統(tǒng)的聲源定位技術(shù)通常是利用DSP等硬件裝置并結(jié)合相關(guān)估算方法進行定位, 主要包括時延估計法和定向波束形成法。時延估計法主要是利基于聲源發(fā)出的信號到達各 麥克風(fēng)陣元存在的時間延遲,根據(jù)各個通道信號間的相關(guān)關(guān)系對這個時間延遲進行估計, 從而來對聲源位置進行估計;定向波束形成法是基于最大輸出功率可控波束方法的一種形 式,為了搜索能夠使波束功率最大的位置,需要對整個空間進行掃描。現(xiàn)有技術(shù)雖然能實現(xiàn) 對聲源的定位,但其缺點也顯而易見,一是硬件成本高,系統(tǒng)結(jié)構(gòu)復(fù)雜;二是常用的空間幾 何定位方法無法解決近場聲源定位的問題;三是由于計算量過大,很難滿足實時的要求,其 性能往往難以接受。
[0004]
【發(fā)明內(nèi)容】
[0005] 本發(fā)明在于提供一種基于嵌入式GPU系統(tǒng)的并行化聲源定位系統(tǒng)及方法,以解決 現(xiàn)有聲源定位方法并行化程度低、時間開銷大以及成本高的技術(shù)問題。
[0006] 本發(fā)明的目的通過以下技術(shù)方案予以實現(xiàn):基于嵌入式GPU系統(tǒng)的并行化聲源定 位系統(tǒng)及方法,包括嵌入式GPU系統(tǒng)1、麥克風(fēng)陣列模塊2和顯示輸出模塊3 ;其中嵌入式 系統(tǒng)1由預(yù)處理模塊1-1、并行化時延估計模塊1-2和并行化位置解算模塊1-3組成,麥 克風(fēng)陣列模塊2由麥克風(fēng)陣列2-1和同步采集卡2-2組成;語音輸入模塊2-1采集到的信 號輸入至同步采集卡2-2,并從同步采集卡2-2輸出至嵌入式GPU系統(tǒng)1,信號在嵌入式GPU 系統(tǒng)1中順次通過預(yù)處理模塊1-1、并行化時延估計模塊1-2和并行化位置解算模塊1-3, 處理后的信號從嵌入式GPU系統(tǒng)1輸出至顯示輸出模塊3顯示。
[0007] 基于嵌入式GPU系統(tǒng)的并行化聲源定位系統(tǒng)的方法,包括下列步驟:
[0008] 1、以四元麥克風(fēng)陣列2-1中心點為坐標(biāo)原點0建立三維坐標(biāo)系,d為各陣元間 距,將麥克風(fēng)陣列2-1的四個陣元分別安裝在Ml(d/2, 0, 0)、M2 (0,d/2, 0)、M3 (_d/2, 0, 0)、 M4(0,-d/2,0)位置。各陣元中自帶濾波電路和電壓增益電路,并行對各通道采集的音頻信 號進行預(yù)處理;同步采集卡2-2在主控制器同一個時鐘信號指令下,按照固定的采用頻率 f,同步采集麥克風(fēng)陣列2-1的各陣元通道的音頻信號,同時將各通道信號進行A/D轉(zhuǎn)換,將 數(shù)字化的信號送入基于CUDA平臺架構(gòu)的嵌入式GPU系統(tǒng)1中;
[0009] 判斷本次采集的麥克風(fēng)陣列2中各陣元信號是否大于所設(shè)定的閾值,若音頻數(shù)字 信號大于所設(shè)定的閾值,則說明定位范圍內(nèi)存在目標(biāo)聲源,繼續(xù)執(zhí)行后續(xù)步驟;否則說明定 位范圍內(nèi)無目標(biāo)聲源,則放棄本次采集數(shù)據(jù);
[0010] 2、通過并行化的方法給音頻信號加窗分幀并進行FFT變換,以便后續(xù)進行信號分 析和時延估計;
[0011] 3、利用廣義互相關(guān)時延估計法測算兩陣元接收信號間的時延,其中計算互功率譜 函數(shù)等復(fù)雜運算在GPU上并行化實現(xiàn);
[0012] 4、基于估算的聲音到達時間差(TDOA),使用并行化的BP神經(jīng)網(wǎng)絡(luò)模型進行樣本 訓(xùn)練,從而識別出目標(biāo)聲源位置信息;
[0013] 5、將解算出的目標(biāo)聲源方位值送入顯示輸出模塊3顯示結(jié)果。
[0014] 其中,所述步驟1中同步采集卡2-2采集數(shù)據(jù)的頻率f= 48kHz。
[0015] 其中,所述步驟2中對語音信號的分幀是用可移動的有限長度窗口進行加權(quán)的方 法來實現(xiàn)的,即Sw(n) =S(n)*w(n),其中S(n)為加窗前的函數(shù),Sw(n)為加窗后的函數(shù), w(n)即為所加的窗函數(shù);在CUDA平臺架構(gòu)下,分配4個GPU線程(Thread)為各通道信號并 行獨立加窗,F(xiàn)FT計算則利用CUDA自帶的CUFFT庫,采用能同時計算多路相同點數(shù)FFT的 庫函數(shù)計算4路信號的頻譜,充分利用GPU并行計算的優(yōu)勢。
[0016] 其中,所述步驟3所述的利用廣義互相關(guān)時延估計法測算兩陣元接收信號間時延 的具體方法:先將時域內(nèi)的兩個音頻信號作傅里葉變換得到頻域信號,求兩信號的互功率 譜,并在頻域內(nèi)給予一定的加權(quán)來抑制噪聲,再作反變換到時域,從而得到兩信號之間的互 相關(guān)函數(shù),然后計算互相關(guān)函數(shù)中峰值出現(xiàn)的時刻,該時刻就是所要求的兩信號之間的時 間延遲D。
[0017] 其中,在GPU上并行化計算互功率譜密度,即在計算互相關(guān)函數(shù)時需要先計算兩 信號的互功率譜,將一陣元信號頻譜和另一陣元信號頻譜的共軛相乘得到兩陣元間的互功 率譜,四陣元麥克風(fēng)陣列2-1共有12個互功率譜函數(shù);在GPU中分配一個線程塊(Block) 進行并行化計算各組互功率譜;為了充分利用GPU資源,優(yōu)化資源配置,將各信號的頻譜預(yù) 先存入線程塊的共享存儲器(ShareMemory)中,以此減少各GPU線程訪問顯存的I/O操作 次數(shù)。
[0018] 其中,所述步驟4根據(jù)TD0A使用并行化的BP神經(jīng)網(wǎng)絡(luò)模型進行聲源定位,即根據(jù) 麥克風(fēng)陣列2-1陣元個數(shù)和聲源位置參數(shù)設(shè)計BP神經(jīng)網(wǎng)絡(luò)的輸入層、輸出層節(jié)點數(shù),根據(jù) 聲源定位的精度和復(fù)雜度設(shè)計隱藏層的層數(shù);該方法先用一定數(shù)量的樣本數(shù)據(jù)訓(xùn)練BP神 經(jīng)網(wǎng)絡(luò),使BP神經(jīng)網(wǎng)絡(luò)能夠表達所求的定位模型,然后根據(jù)TD0A輸入的時延量,利用已訓(xùn) 練好的BP神經(jīng)網(wǎng)絡(luò)識別出其方位角9、俯仰角0和距離r,以確定聲源在空間的位置;使用 該方法使得處于遠場和近場的聲源都能進行準(zhǔn)確定位。
[0019] 其中,并行化BP神經(jīng)網(wǎng)絡(luò)模型基于CPU+GPU異構(gòu)嵌入式系統(tǒng),使用CUDA平臺架 構(gòu),對BP神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練過程中的各層算法進行并行計算優(yōu)化,具體步驟如下:
[0020] ①在Host端(CPU)上分配顯存空間,并將本次訓(xùn)練樣本的輸入、輸出、權(quán)重值、偏 倚值和學(xué)習(xí)率復(fù)制到Device端(GPU),然后進行GPU資源配置劃分;
[0021] ②在Device端上進行并行化的計算,可以并行計算的部分有隱藏層的輸出、隱 藏層的誤差、輸出層的輸出、輸出層的誤差、輸出層的權(quán)重值和偏倚值;為了充分利用GPU 的計算資源,將每次并行計算劃分為若干的線程塊(Block),每個線程塊里分配若干線程 (Thread),將每個線程塊中的共有數(shù)據(jù)存放在各線程塊的共享存儲器(ShareMemory)中, 而將本次訓(xùn)練的輸入輸出結(jié)果存入常量存儲器(ConstantMemory)中;
[0022] ③將本次訓(xùn)練結(jié)果中的權(quán)重值和偏倚值復(fù)制回Host端,如此循環(huán)訓(xùn)練,直至達到 訓(xùn)練次數(shù)或識別精度滿足要求結(jié)束。
[0023] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:在原有聲源定位處理流程的基礎(chǔ)上進行 了部分模塊的并行化改進:(1)使用BP神經(jīng)網(wǎng)絡(luò)模型,使得處于遠場和近場的聲源都能進 行準(zhǔn)確定位;(2)使用嵌入式GPU系統(tǒng),由于GPU浮點運算能力強、內(nèi)存寬帶大和成本低,以 及基于CUDA通用并行化計算架構(gòu),充分發(fā)揮GPU的計算能力;(3)利用并行化的方法對音 頻信號處理、BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)等過程進行優(yōu)化,提高了音頻信號處理和BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的 計算速度,從而保證了聲音位置解算功能的實時性,增強聲源定位系統(tǒng)的健壯性和穩(wěn)定性。
【附圖說明】
[0024] 圖1為本發(fā)明的一種基于嵌入式GPU系統(tǒng)的并行化聲源定位方法模塊圖;
[0025] 圖2為本發(fā)明的一種基于嵌入式GPU系統(tǒng)的并行化聲源定位方法的實施流程圖;
[0026] 圖3為本發(fā)明中麥克風(fēng)陣列中的四元十字陣定位示意圖;
[0027] 圖4為本發(fā)明中基于CUDA平臺下的并行化聲源定位方法中CPU和GPU任務(wù)劃分 示意圖。
[0028] 圖5為本發(fā)明中基于CUDA平臺下的廣義互相關(guān)時延估計法流程圖。
【具體實施方式】
[0029] 下面結(jié)合附圖對本發(fā)明的內(nèi)容作進一步的詳細介紹。
[0030] 如圖1所示,基于嵌入式GPU系統(tǒng)的并行化聲源定位系統(tǒng)及方法,包括嵌入式GPU 系統(tǒng)1、麥克風(fēng)陣列模塊2和顯示輸出模塊3 ;其中嵌入式GPU系統(tǒng)1由預(yù)處理模塊1-1、并 行化時延估計模塊1-2和并行化位置解算模塊1-3組成,麥克風(fēng)陣列模塊2由麥克風(fēng)陣列 2-1和同步采集卡2-2組成;語音輸入模塊2-1采集到的信號輸入至同步采集卡2-2,并從 同步采集卡