馮羅一,昝 鳴,徐中明,張志飛,李貞貞
(重慶大學 機械與運載工程學院,重慶 400044)
隨著數據采集技術和計算性能的不斷提高,各種聲源識別算法不斷發展。聲源識別的波束形成算法主要包括傳統波束形成(conventional beamforming,CB)[1],自適應波束形成[2],正交波束形成[3],函數波束形成[4]、廣義逆波束形成[5]、反卷積波束形成[6]等。文獻[7-8]對這些方法進行了綜述。近年來,深度學習[9]在圖像識別領域取得了迅速的進展。與傳統的基于數學和物理模型的方法不同,基于深度學習的方法利用深度神經網絡,從數據中學習到的特征表示來獲得輸入輸出的復雜映射關系,從而可以繞過特定問題的復雜描述。除此之外,深度學習模型的計算速度遠高于傳統方法。深度學習模型在訓練過程中所有的操作都包含在神經網絡內部,不再像傳統機器學習的流程那樣分成多個模塊處理,因此將其稱為端到端深度學習。
隨著深度學習模型的發展和其適用性的提高,深度學習在振動聲學領域有了廣泛的應用[10-12]。基于深度學習的聲源識別方法主要可歸納為兩類:基于網格的方法和無網格的方法[13]。對于基于網格的方法,Ma等[14]構建了卷積神經網絡,將聲源平面上的多個聲源識別為聲壓分布圖。這是首次將深度學習與波束形成算法相結合進行聲源識別的研究。Xu等[15]使用密集連接卷積神經網絡(densely connected convolutional networks,DenseNet)從互譜矩陣(cross spectrum matrix,CSM)生成聲壓分布圖。該方法可實現單個頻率下最多25個聲源的高分辨率識別。為了提高基于網格的方法的精度,Lee等定義了一個新的目標函數,該函數依賴網格點和聲源之間相對位置關系來構建目標地圖,其中通過更精細網格點與預測強度之間的最小誤差來確定準確聲源位置,并運用編碼器-解碼器結構的全卷積神經網絡(fully convolutional network,FCN),實現了高分辨率多聲源識別。之后Lee等[16]將類似方法拓展到球面陣列的應用中。對于無網格方法,Kujawski等[17]使用了一個20層的殘差神經網絡(residual network,ResNet),用3個輸出單元來估計單個聲源的坐標和強度。在此基礎上,為了提高低頻情況的精度,Lee等[18]定義了一個頻率加權損失函數和一個更深層次的DenseNet。他們利用與Kujuswki等相同的訓練數據,實現了單聲源識別。為了使用無網格方法識別多聲源,Castellini等[19]通過構建5個不同的多層感知器模型,提出了與類似的無網格方法來實現3個聲源的定位任務。由于聲源的數量決定了神經網絡輸出層的大小,無網格方法只能識別已知數量的聲源。與基于網格的方法相比,無網格方法直接預測聲源的坐標和強度,無需依賴網格點獲得預測結果。
上述方法中采用的訓練數據主要分為兩種:CSM,包括非冗余形式和傳統波束形成地圖(conventional beamforming map,CB Map)。CSM的尺寸由所采用陣列的傳聲器數目決定,因此使用CSM作為輸入必須預先確定傳聲器數目。CB Map的尺寸由網格點數目決定,因此不需要提前確定傳聲器數目。然而,當傳聲器數目減少時,CB Map的聲源特征不再明顯。因此,當使用較多傳聲器數陣列得到的數據訓練得到一個深度學習模型,用來預測較少傳聲器數陣列得到的CB Map時,精度會下降。為了克服實際應用中所使用陣列的限制,增強深度學習聲源識別方法的通用性,本文提出基于U-Net模型的陣列轉換方法(array converted method,ACM),提升深度學習無網格識別方法(deep learning grid-free method,DL-GFM)的識別精度。首先使用18通道陣列CB Map作為輸入、64通道陣列CB Map作為目標訓練U-Net模型,然后使用訓練好的模型對于不同頻率和不同聲源數目的輸入評估模型的預測性能,并且對于三聲源情況通過DL-GFM方法觀察ACM方法對其性能的提升情況,最后通過1個、2個、3個聲源的試驗驗證提出ACM方法的有效性和可行性。
波束形成是一種基于相控麥克風陣列的方法,其通過對每個麥克風采樣的聲壓進行空間濾波。來自真實聲源方向的信號增強,其他方向的信號減弱,形成“主瓣”和“旁瓣”,從而得到聲源分布信息。傳統波束形成CB的算法過程可以描述如下,其過程示意圖如圖1所示。

圖1 傳統波束形成示意圖
假設麥克風陣列通道數為M,位于xm(m=1,2,…,M),麥克風位置測得的聲壓pm和在xs(s=1,2,…,S)位置的聲源強度q的關系可以表示為
pm=qg(xs-xm)
(1)
式中,g(xs-xm)為轉向向量。文獻[20]中有4種可供選擇的轉向矢量公式,本文中為了將除聲源位置的所有其他位置的信號都盡可能地減弱,采用了其中的Formulation III的形式,表示為
(2)
式中:k為波數;rs,0=|xs-x0|,rs,m=|xs-xm|分別為聲源位置xs與參考位置x0和麥克風位置xm之間的距離,x0設置為傳聲器陣列中心
(3)
將式(1)寫成向量形式為
p=qg
(4)
直接波束形成器的目標就是在聲源位置xs上確定聲源強度q,即求解式(4)。通過解最小化問題
(5)
得到以下形式的最小二乘解

(6)
式(6)可以重新整理之后獲得功率意義的波束形成結果
(7)
式(7)為傳統波束形成,將由此方法得到的矩陣圖像稱為CB Map。式中:C=ppH為麥克風測量的聲壓得到的CSM;上標“H”為共軛轉置。
在穩定聲場中,首先對自譜和互譜進行平均處理。因為自譜中包含了陣列麥克風的自通道噪聲且其中沒有任何相位信息,對波束形成過程沒有幫助,因此除去CSM的自譜,即除去矩陣對角線,處理過程可表示為
(8)
本文使用針對64通道Vogel螺旋陣列和18通道扇形輪陣列兩種陣列形式來進行研究,其傳聲器分布圖如圖2所示。在傳聲器間距接近的情況下,18通道陣列的孔徑0.38 m小于64通道陣列孔徑1 m,這是導致兩者CB性能差異的主要原因。將兩種陣列的傳統波束形成結果簡稱為CB Map_64和CB Map_18。

圖2 陣列分布形式
本文中以三聲源為例介紹一種基于ResNet-50-V2[21-22]的深度學習無網格方法DL-GFM,其中只關注聲源位置,不關注聲源強度。ResNet-50-V2來源于是殘差神經網絡ResNet的一種包含50層卷積層的優化結構。ResNet的出現解決了使用深度神經網絡模型架構時梯度爆炸和梯度消失的問題,在此之后才出現了更深層(可達上千層)的神經網絡,在分類和回歸任務上的表現相比之前已知的架構更加優異。
ResNet的結構與普通卷積神經網絡相比,多了快捷連接。快捷連接中輸入數據可以并行地從輸入層流向輸出層,因此在輸出中,前一層的映射與卷積處理后的數據相加,進而ResNet只學習輸入和輸出之間的殘差。殘差映射的過程可描述為
(9)
式中:F為需要被學習的殘差映射;X為卷積層的輸入;wi,b分別為卷積層的權重和偏置;Ws為一個線性投影矩陣,用來匹配與卷積層結果相加的維數。式(9)中代表了殘差學習的兩種不同方式,區別在于式(9)上式為恒等映射,在維數匹配的情況下可以實現;式(9)下式的方式由于增加了卷積過程從而增加了參數數量,解決了維數不匹配的問題。He等研究中對兩種方式的區別、處理方式和性能做了具體的分析,感興趣的讀者可以進行閱讀。其中ResNet-50-V2中運用的full pre-activation結構,可以加快模型的訓練速度、提高精度,并且更有效地避免過擬合的問題。
圖3所示為DL-GFM方法的主要過程。DL-GFM方法首先使用麥克風陣列采集多通道數據,然后通過傳統波束形成算法獲得CB Map,將其作為輸入訓練好的ResNet-50-V2模型獲得3個聲源的坐標輸出,分別為a1,b1,a2,b2,a3,b3。訓練過程中采用均方誤差(mean square error,MSE)作為損失函數,ADAM[23]作為訓練算法更新網絡的參數。ResNet-50-V2模型的構建與訓練在Python Keras庫中進行。

圖3 DL-GFM方法主要過程
表1所示為模型訓練的數據集設置,包括波束形成過程的關鍵參數、數據集大小。本文使用的訓練數據和測試數據主要通過Acoupipe[24]和Acoular[25]生成。后文U-Net模型的訓練所采用的數據集的區別在于將兩種通道數的CB Map分別作為輸入和目標,即替換了聲源坐標作為輸出。除此之外,兩者訓練算法和損失函數均一致。

表1 數據集設置
本文使用CB Map_18作為輸入、CB Map_64作為輸出,使用U-Net模型訓練陣列轉換器,故將此方法命名為陣列轉換法ACM。使用ACM可以使得用在一定頻率下采用18通道陣列達到使用64通道陣列的效果,進而利用DL-GFM方法進行更精準的識別。
U-Net模型是一種全卷積神經網絡FCN,最早由Ronneberger等[26]提出,用于生物醫學圖像語義分割。因其形狀與字母“U”相似,故被命名為“U-Net”。這種全卷積模型相比于帶全連接層的神經網絡模型可以接受任意大小的圖像輸入,并且采用了上采樣的方法來恢復圖像,從而可以實現像素到像素更精細的預測。常用的上采樣方式是轉置卷積。采用矩陣乘法的方式簡介轉置卷積的原理。假設輸入圖像的尺寸為4×4,卷積核大小為3×3,如式(10)和式(11)所示
(10)
(11)
令步長為1,則輸出大小為2×2,如式(12)所示
(12)
其中,
(13)
同理可得,由卷積核滑移到不同位置之后點乘得出y2,y3,y4。將Input和Output分別按行展開為x=[x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16]T和y=[y1y2y3y4]T,則卷積過程可以表示為
y=Ax
(14)
式中,A為卷積核在輸入圖像上的滑移運算過程,可用稀疏矩陣表示為
(15)
其中每一行向量表示在一個位置的卷積操作,“0”填充表示卷積核未覆蓋到的區域。轉置卷積的操作式(14)的逆運算,可以表示為
x=ATy
(16)
U-Net模型架構如圖4所示,其組成為編碼器-解碼器結構。編碼器網絡由多個通道組成的特征圖通過一系列卷積運算與訓練過的濾波器進行分層計算,旨在從CB Map_18中生成具有空間代表性的特征。本文使用修正線性單元(rectified linear unit,ReLU)作為激活函數,可表示為

圖4 U-Net模型架構
(17)
此處卷積過程可以定義為
(18)

解碼器網絡旨在將編碼器部分生成的空間表示轉換為目標圖CB Map_64。解碼層中的特征圖通過轉置卷積逐漸放大。轉置卷積通過對輸入特征圖進行適當的填充和跨步操作,最后通過網絡末端的1×1卷積層獲得64×64的預測圖。圖4中箭頭代表跳躍連接,目的是將下采樣的特征圖和上采樣的特征圖合并,增強恢復圖像的特征。
本文中結構與文獻[26]中的區別在于:①圖像尺寸分別為224×224×3與64×64×1,為了加快訓練速度,將卷積核數減半;②ACM方法是回歸任務,所以在輸出層用ReLU代替Softmax作為激活函數,且用MSE函數替代其中的帶邊界權值的損失函數。
在U-Net模型的訓練中,只使用了3聲源的訓練數據,即模型只“見過”3聲源的CB Map,因此所有不是3聲源的CB Map對于訓練好的模型來講都是未見場景,包括單聲源和雙聲源。為了體現模型的泛化性能,用未知聲源數目的CB Map進行仿真試驗,觀察預測結果,仿真與試驗信息處理流程圖如圖5所示。

圖5 信息處理流程圖
圖6、圖7分別展示了1~3個和4~8個聲源的CB Map通過ACM方法的預測表現,包括輸入圖(input)、預測圖(prediction)、目標圖(target)。其中:“*”為聲源實際位置;“×”為DL-GFM方法的預測位置;“input”為CB Map_18;“prediction”為ACM方法清晰化后的成像圖;“target”為CB Map_64;N為聲源數目;f為頻率。從圖6中可以觀察到,ACM方法對于CB Map_18具有明顯的清晰化效果,并且預測圖與目標圖接近。具體表現在低頻時減小了主瓣寬度;中頻時減小主瓣寬度進而能有效地分離多聲源;高頻時減小主瓣寬度并降低旁瓣水平甚至消除旁瓣,這是CB Map_64中沒有達到的效果。這說明U-Net模型“智慧地”將圖中的旁瓣當作無用信息,因此在進行上采樣恢復圖像時,直接忽略旁瓣從而達到了消除旁瓣的效果。DL-GFM的識別結果在選取的頻率下都是準確的,只在圖6(f)中的弱聲源位置出現了少許偏差。

(a) N=1,f=537 Hz,input
值得一提的是,對于3個及以上的聲源數目,ACM方法也有良好的表現。從圖7中可以觀察到,對于3個以上聲源的情況,預測圖與目標圖相比主瓣寬度稍大,聲源特征分離不夠明顯,但是相對于輸入圖有明顯的提升,同時繼續展現出良好的旁瓣消除性能。如圖7(j)所示,當聲源數目達到8個時,預測結果出現了較大偏差。說明本文中訓練的U-Net模型在更多聲源數目上的表現有局限性,但總體表現良好。可以推測通過更多數目的訓練數據集可以提升ACM方法的聲源識別范圍。
本文中使用平均絕對誤差(mean absolute error,MAE)(EMA)作為評估訓練好的模型性能的指標,可表示為
(19)

圖8展示了在不同聲源數目和頻率下ACM方法的誤差表現,首先可以觀察到隨著頻率的增大MAE值逐漸降低,說明ACM方法的中高頻表現優于低頻。同時可以看出隨著聲源數目的增大MAE值隨之增加,這個差距主要體現在1 608 Hz以下的低頻段。在中高頻段,MAE誤差幾乎沒有差距。綜上所述,在只用3聲源數據集訓練的情況下,U-Net模型擁有很好的泛化能力,并且在中高頻段表現更加出色。

圖8 ACM方法總體性能
圖9展示了使用經過ACM方法處理之后,DL-GFM方法的預測性能。以3聲源情況為例展示結果。圖9中曲線的命名代表訓練數據和測試數據進行波束形成時所使用的陣列。例如,“DNN_64-18_ACM”代表訓練數據使用64通道陣列,測試數據使用18通道陣列并且使用ACM方法之后的評估結果。對比“DNN_64-18_ACM”和“DNN_64-18”可以看出,使用ACM方法之后MAE誤差大幅降低,說明ACM方法對于CB Map的處理效果十分顯著。與“DNN_18-18”相比,在整個頻段上,使用ACM方法的誤差幾乎都低于DNN_18-18,并在858~2 037 Hz頻段效果較明顯,但與“DNN_64-64”在429~858 Hz的低頻段相比仍有一定差距。這說明ACM方法優于專門用對應陣列的CB Map數據訓練的DL-GFM方法。

圖9 DL-GFM方法總體性能
值得一提的是,本文工作中使用的硬件配置是型號為NVIDA QUADRO P4000的GPU。其訓練一個DL-GFM方法中的ResNet-50-V2模型的時間大約30 h,而訓練ACM方法中的U-Net模型只需要大約2 h。因此使用ACM方法既提高了深度學習無網格方法DL-GFM的精度,在不同的陣列測試中又無需多次訓練模型,在實際應用中具有很強的實用性。除此之外,本文中根據測試數據中的表現設置MAE=0.06為DL-GFM方法的合格閾值,即只有當MAE≤0.06時才被認為準確識別出了全部聲源坐標。據此判斷ACM方法對于3聲源的有效頻段在1 072 Hz以上。
仿真結果表明ACM方法能夠消除旁瓣,降低主瓣寬度,提高CB Map的聲源特征清晰程度,進而可以提升DL-GFM方法的識別精度。為了進一步驗證該方法的有效性和可行性,進行了聲源識別試驗。試驗測量中采用了Brüel &Kj?r公司的18通道扇形輪式陣列,集成Brüel &Kj?r4951型傳聲器,試驗設置如圖10所示。

圖10 試驗設置
圖10中聲源平面到陣列平面距離為0.5 m,3個聲源坐標分別為:聲源1中心是(0,0.2,0.5)m,聲源2中心是(0.2,0,0.5)m、聲源3中心是(-0.2,-0.1,0.5)m。此處3個聲源刻意避免設置在陣列中心對應位置,以排除設置位置帶來的偶然性。聲源采用受白噪聲激勵的小型揚聲器模擬點聲源。采樣頻率為16 384 Hz,采樣時間為10 s。通過控制開啟揚聲器的個數來分別布置單聲源、雙聲源、三聲源的場景。
圖11~圖13分別展示了不同頻率下單聲源、雙聲源、三聲源的試驗結果,包括輸入圖CB Map_18和ACM預測圖。圖例與圖6、圖7中一樣。采集到的信號獲得CB Map之后輸入DNN_64獲得預測結果。結合圖11~圖13按照頻率由低到高觀察。

圖11 單聲源試驗結果

圖12 雙聲源試驗結果

圖13 三聲源試驗結果
如圖11~圖13所示,512 Hz的預測結果中3種試驗結果都類似,輸入圖中一個“大主瓣”被分離成了3個主瓣,DL-GFM識別出了錯誤位置。在輸入圖類似的情況下,U-Net模型容易識別成訓練數據中的三聲源場景,導致低頻時ACM和DL-GFM方法效果較差;1 024 Hz的單聲源預測圖減小了主瓣,并且基本準確地識別出了聲源位置;雙聲源預測圖中明顯觀察到兩個聲源,但產生了較大旁瓣,導致DL-GFM沒有正確識別聲源位置;三聲源預測圖中有兩個清晰主瓣和一個“渾濁”主瓣,同時聲源位置也被準確識別;2 048 Hz的3種聲源數目的輸出圖相較于低頻時ACM清晰化效果和DL-GFM位置識別精度都有較大的提升;4 096 Hz的輸入圖中出現了較大的旁瓣,很容易被DL-GFM識別為弱聲源,而3種試驗結果都完全清除了旁瓣同時減小了主瓣寬度;8 192 Hz是在試驗采樣頻率下的最大分析頻率,可以看到在3種聲源數目的情況的輸入圖中都出現了密集的旁瓣,其大小與聲源主瓣寬度相當。最終預測結果成功清除了所有旁瓣,并且聲源預測位置與實際位置接近重合。
綜上所述,試驗結果驗證了提出ACM方法的可行性,其作為前處理過程與DL-GFM方法結合,具有高精度的聲源位置識別效果。但與仿真結果一致,其在低頻段表現出了局限性,這在今后的研究中仍需繼續關注。
本文提出了一種基于端到端深度學習模型U-Net 的陣列轉換法ACM,將18通道陣列的傳統波束形成結果轉換為64通道陣列的傳統波束形成結果,實現了成像圖的清晰化,其旁瓣消除效果優于目標圖CB Map_64。相比于DNN_64-18和DNN_18-18,明顯提升了深度學習無網格方法DL-GFM的精度,增強了已訓練模型的陣列通用性。1個、2個、3個聲源的驗證試驗證明了提出方法的有效性和可行性。結論如下:
(1) 在只有三聲源訓練數據集的情況下,ACM方法在1~8個聲源范圍內均有良好的清晰化效果,但在多于3個聲源時表現有一定的局限性。
(2) 在本文使用的兩種陣列條件下,對于三聲源的情況,ACM方法在中高頻段清晰化效果好于低頻段,并將DL-GFM方法有效頻率下限提升到1 072 Hz左右。