侯曉飛 穆瑞林周晉 賈自杰
(1 天津科技大學(xué)機(jī)械工程學(xué)院 天津 300222)
(2 天津市輕工與食品工程機(jī)械裝備集成設(shè)計(jì)與在線監(jiān)控重點(diǎn)實(shí)驗(yàn)室 天津 300222)
(3 天津市房地產(chǎn)市場(chǎng)服務(wù)中心 天津 300222)
近年來(lái),城市中違法亂鳴笛行為隨著汽車數(shù)量的增加而逐漸增多。鳴笛聲制造交通噪聲的同時(shí),給人們的生產(chǎn)和生活也帶來(lái)了巨大的影響,尤其是在學(xué)校、醫(yī)院、居民區(qū)等這些需要安靜的區(qū)域。因此,對(duì)亂鳴笛行為的治理非常有必要。車輛的識(shí)別與分類在創(chuàng)建城市智能交通系統(tǒng)中至關(guān)重要,在傳統(tǒng)的鳴笛聲識(shí)別分類中往往采用的是人工監(jiān)測(cè)的方法,此種方法誤檢率較高,且依賴人工復(fù)核。目前車輛識(shí)別與分類研究主要集中于視覺方法,對(duì)車輛完整的聲學(xué)識(shí)別與分類研究較少。
隨著聲學(xué)研究的深入,為了提高鳴笛聲的檢測(cè)效率,在鳴笛聲分類識(shí)別方面,能量閾值法、互譜矩陣法以及特征提取法等逐漸被應(yīng)用在鳴笛聲識(shí)別當(dāng)中,例如劉建平等[1]根據(jù)信號(hào)短時(shí)能量與過(guò)零率乘積的雙門限檢測(cè)算法對(duì)鳴笛聲與非鳴笛聲進(jìn)行了識(shí)別;孫懋珩等[2]提出了一種基于傳聲器陣列和閉式球形插值法的汽車?guó)Q笛聲識(shí)別系統(tǒng),但是此種方法只能單方面地確定目標(biāo)車輛的位置,且會(huì)存在較多誤判。神經(jīng)網(wǎng)絡(luò)近些年受到了研究者越來(lái)越多的重視,侍艷華等[3]設(shè)計(jì)了梅爾頻率倒譜系數(shù)(Mel-frequency cepstrum coefficient,MFCC)和卷積神經(jīng)網(wǎng)絡(luò)識(shí)別鳴笛聲的方法;班琦等[4]在建立鳴笛聲樣本的基礎(chǔ)上利用改進(jìn)的BP 神經(jīng)網(wǎng)絡(luò)算法識(shí)別了鳴笛聲;白琳等[5]將小波變換[6]與BP 神經(jīng)網(wǎng)絡(luò)相結(jié)合實(shí)現(xiàn)了車輛聲信號(hào)的分類。
在鳴笛聲識(shí)別分類中,利用神經(jīng)網(wǎng)絡(luò)識(shí)別時(shí)效率與準(zhǔn)確率會(huì)受到不同特征提取的影響,例如鄭皓[7]將頻譜特征作為卷積深度置信網(wǎng)絡(luò)(Convolutional deep belief networks,CDBN)的輸入進(jìn)行訓(xùn)練后得到鳴笛聲的CDBN特征,與MFCC特征進(jìn)行對(duì)比分析后發(fā)現(xiàn)利用CDBN 特征進(jìn)行識(shí)別的準(zhǔn)確率更高。可知鳴笛聲識(shí)別中提取何種特征進(jìn)行識(shí)別仍是一項(xiàng)關(guān)鍵。
在違法鳴笛聲監(jiān)管過(guò)程中通常利用傳聲器陣列進(jìn)行鳴笛聲定位[8],但隨著距離的增加,可能會(huì)產(chǎn)生定位誤差,而兩輛車如果并排行駛且橫向距離較近時(shí),由于定位誤差的存在,可能會(huì)存在車輛之間的誤判。為了更準(zhǔn)確地識(shí)別違法鳴笛聲,提高交通執(zhí)法效率,本文提出了一種基于子頻帶能量特征提取的汽車?guó)Q笛聲識(shí)別與分類的方法。本方法對(duì)鳴笛聲的時(shí)頻譜特征進(jìn)行分析與提取,結(jié)合可變學(xué)習(xí)速率的BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行鳴笛聲識(shí)別,可對(duì)不同車型的鳴笛聲進(jìn)行有效區(qū)分,獲取違法鳴笛車輛的完整聲學(xué)信息,以作為違法鳴笛的輔助判斷和處罰依據(jù)。利用車輛的鳴笛聲特征對(duì)鳴笛車輛車型進(jìn)行識(shí)別分類,其目的是在違法鳴笛聲治理過(guò)程中進(jìn)行輔助監(jiān)管與判斷,當(dāng)有異議時(shí),可通過(guò)復(fù)核對(duì)比鳴笛聲定位與鳴笛聲車型特征兩種依據(jù)進(jìn)行更加科學(xué)準(zhǔn)確的判斷,從而減少鳴笛噪聲,對(duì)道路交通噪聲污染治理具有積極意義。
城市道路中比較常見的鳴笛聲是由電喇叭發(fā)出的[9],因此在研究時(shí)以小汽車上裝載的電喇叭發(fā)出的鳴笛聲為主,主要頻率集中在400~5000 Hz之間。
進(jìn)一步將鳴笛聲信號(hào)做短時(shí)傅里葉變換得到鳴笛聲的時(shí)頻圖,如圖1所示。
圖1 鳴笛聲時(shí)頻圖Fig.1 Time-frequency spectrum of the car whistle
進(jìn)行鳴笛聲識(shí)別分類之前,需要對(duì)采集到的聲音樣本進(jìn)行有效聲音段截取以保留鳴笛聲信號(hào)的主要頻率。采用短時(shí)能量法[10]確定鳴笛聲信號(hào)有效聲音段,短時(shí)能量法計(jì)算式如(1)所示:
式(1)中,x(i)為傳聲器采集測(cè)量信號(hào),EK為第K幀的短時(shí)能量。
為了進(jìn)一步對(duì)鳴笛聲進(jìn)行分析,并將不同的鳴笛聲分類,采用子頻帶能量法提取特征的方法進(jìn)行鳴笛聲識(shí)別。通過(guò)劃分聲信號(hào)頻譜子頻帶,對(duì)子頻帶內(nèi)的頻率信息進(jìn)行分析,找出鳴笛聲信號(hào)在各個(gè)子頻帶與其他聲音不同的特征,即可利用此種特征進(jìn)行鳴笛聲識(shí)別。
首先將鳴笛聲的全頻帶進(jìn)行劃分,劃分為N個(gè)子頻帶。在對(duì)鳴笛聲頻帶進(jìn)行劃分時(shí),為了減小計(jì)算量,并將鳴笛聲信號(hào)的子頻帶能量特征完整提取,可將信號(hào)劃分為32 個(gè)子頻帶。為了保證各頻率能量不被泄漏,相鄰兩個(gè)子頻帶之間的重合度為50%。每一段子頻帶上能量初始值等于時(shí)頻圖能量值,如式(2)所示:
式(2)中,P(f)為每個(gè)子頻帶內(nèi)每個(gè)頻率f的能量,fl為子頻帶起始頻率,fh子頻帶截止頻率。
子頻帶的起始和截止頻率計(jì)算式如式(3)、式(4)所示:
其中,fl(k)、fh(k)為第k個(gè)子頻帶的起始與截止頻率,fL、fH為鳴笛聲整個(gè)頻率段的起始與截止頻率,N為子頻帶總個(gè)數(shù)。
進(jìn)一步將每個(gè)子頻帶內(nèi)包絡(luò)的各頻率段分為n段并對(duì)每一段能量值進(jìn)行加窗處理,保證各頻率的能量不泄漏且輸入到神經(jīng)網(wǎng)絡(luò)的特征值矩陣容易計(jì)算,在取值時(shí)數(shù)值等于參數(shù)N。求取子頻帶中每一段加窗后的平均能量,如式(5)所示:
式(5)中,Ek(i)為第k段子頻帶內(nèi)第i段包含頻率的能量進(jìn)行加窗后的平均能量,F(xiàn)i(j)為第k個(gè)子頻帶內(nèi)第i段對(duì)應(yīng)的各頻率j的能量值,h(j)為窗函數(shù)在頻率j對(duì)應(yīng)的系數(shù),n為第k個(gè)頻帶內(nèi)加窗的個(gè)數(shù)。
將第k個(gè)子頻帶中分成的n個(gè)窗的n個(gè)平均能量構(gòu)建為一個(gè)行向量,共N個(gè)行向量,將N個(gè)子頻帶的第i段平均能量值構(gòu)建為一個(gè)列向量,共n個(gè)列向量。對(duì)所有的n個(gè)列向量進(jìn)行疊加處理,構(gòu)建出同種鳴笛聲的N ×n維特征值矩陣。
式(6)中,C是同種鳴笛聲的特征值矩陣,C(i)為子頻帶中的第i段平均能量值的列向量。
利用式(6)對(duì)圖1 中鳴笛聲信號(hào)時(shí)頻圖進(jìn)行子頻帶能量特征處理,提取特征值矩陣并進(jìn)行歸一化處理,特征值矩陣包絡(luò)形成的區(qū)域曲線如圖2所示。
圖2 鳴笛聲子頻帶能量特征包絡(luò)曲線Fig.2 Envelope curve of whistle sub-band energy characteristic
由圖2 中可以看出,按照上述方法進(jìn)行特征點(diǎn)提取后,不同種鳴笛聲之間的子頻帶能量特征分布具有較大的差異,具體表現(xiàn)為鳴笛聲子頻帶平均能量歸一化后峰值個(gè)數(shù)、子頻帶出現(xiàn)的頻率位置以及包絡(luò)形成區(qū)域均不相同。因此可利用提取子頻帶能量特征的方法可以進(jìn)行鳴笛聲的識(shí)別以及不同類型鳴笛聲的分類。
BP 神經(jīng)網(wǎng)絡(luò)應(yīng)用廣泛,具有自適應(yīng)強(qiáng)的能力[11],本文構(gòu)建3 層BP 神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)鳴笛聲進(jìn)行識(shí)別分類。輸入層提取子頻帶能量特征歸一化后的特征值矩陣作為神經(jīng)網(wǎng)絡(luò)的輸入層參數(shù);中間隱含層對(duì)輸入的特征值矩陣進(jìn)行學(xué)習(xí)與訓(xùn)練,學(xué)習(xí)過(guò)程是通過(guò)中間層對(duì)輸入特征樣本的不斷逼近來(lái)調(diào)整神經(jīng)網(wǎng)絡(luò)權(quán)值和偏置值的過(guò)程,如式(7)所示:
式(7)中,wij為神經(jīng)元j到神經(jīng)元i的連接權(quán)值,di為神經(jīng)元的期望輸出,yi為神經(jīng)元的實(shí)際輸出,α為學(xué)習(xí)速率。
為了提高算法的收斂速度,在學(xué)習(xí)過(guò)程中將學(xué)習(xí)速率按式(8)進(jìn)行調(diào)整,以減小神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程中的迭代次數(shù)。
式(8)中,αk為第k次學(xué)習(xí)速率,α0為初始學(xué)習(xí)速率,αL為最小學(xué)習(xí)速率,N為迭代總次數(shù)。
為了加快迭代速度,減小迭代次數(shù),神經(jīng)元激活函數(shù)選擇為tansig函數(shù),如式(9)所示:
輸出層在被激活之后,將中間層的實(shí)際輸出與期望輸出進(jìn)行比較,在誤差達(dá)到最小時(shí)將結(jié)果輸出。利用BP 神經(jīng)網(wǎng)絡(luò)對(duì)鳴笛聲識(shí)別分類時(shí),將采集到的鳴笛聲利用子頻帶能量法提取特征值矩陣后輸入到訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)中進(jìn)行判別,判斷為何種鳴笛聲并輸出。鳴笛聲分類的過(guò)程如圖3所示。
圖3 鳴笛聲分類過(guò)程Fig.3 Classification process of car whistle
為了驗(yàn)證子頻帶能量特征提取法的準(zhǔn)確性,在實(shí)驗(yàn)時(shí)首先進(jìn)行鳴笛聲與非鳴笛聲的識(shí)別。其次在鳴笛聲分類實(shí)驗(yàn)時(shí),以福特、豐田、別克、大眾、吉利、比亞迪、東風(fēng)悅達(dá)、本田共8種車型為研究對(duì)象進(jìn)行分類實(shí)驗(yàn)。
首先將鳴笛聲與非鳴笛聲進(jìn)行區(qū)分,利用STM32 開發(fā)的控制系統(tǒng)控制微型傳聲器采集鳴笛聲信號(hào)和非鳴笛聲信號(hào)。在采集時(shí),非鳴笛聲信號(hào)采集了3 種常見聲音,分別是小汽車行駛經(jīng)過(guò)時(shí)的道路噪聲、鳥鳴聲和犬吠聲。圖4 為鳴笛聲與道路噪聲、犬吠聲和鳥鳴聲的時(shí)頻圖的對(duì)比。
圖4 鳴笛聲與非鳴笛聲對(duì)比Fig.4 Compaction the whistle with the other sounds
從圖4中可以看出:鳴笛聲倍頻程明顯,聲能分布較為集中,呈現(xiàn)出典型的脈沖信號(hào)特征;而其他非鳴笛聲頻率分布比較集中,聲能分布相對(duì)分散。
選擇鳴笛聲樣本數(shù)量20 個(gè),道路噪聲、鳥鳴聲和犬吠聲樣本各10 個(gè),利用子頻帶能量特征提取后進(jìn)行鳴笛聲的識(shí)別。圖5 為鳴笛聲與非鳴笛聲的識(shí)別結(jié)果。識(shí)別率為采集的鳴笛聲信號(hào)特征矩陣與訓(xùn)練好的純凈的鳴笛聲信號(hào)特征矩陣的商值,如式(10)所示:
圖5 鳴笛聲識(shí)別率Fig.5 Recognition rate of car whistles
式(10)中,R為識(shí)別率;Sc為提取的實(shí)際采集的鳴笛聲信號(hào)的子頻帶能量特征值矩陣;Pc為神經(jīng)網(wǎng)絡(luò)訓(xùn)練好的純凈鳴笛聲的特征值矩陣。
圖5 實(shí)驗(yàn)結(jié)果表明,利用子頻帶能量特征提取的方法可將鳴笛聲與非鳴笛聲進(jìn)行識(shí)別,識(shí)別率可高達(dá)94.889%。與文獻(xiàn)[1]中利用雙門限檢測(cè)與頻譜間隔進(jìn)行笛聲識(shí)別的方法相比,本文實(shí)現(xiàn)了鳴笛聲與非鳴笛聲之間的準(zhǔn)確識(shí)別。與文獻(xiàn)[3]中利用MFCC 特征提取方法相比,本文所提出的特征提取方法,完成了鳴笛聲與非鳴笛聲之間的識(shí)別,并對(duì)不同鳴笛聲進(jìn)行分類,使平均識(shí)別分類正確率達(dá)到了89.718%以上。
本文構(gòu)建3 層BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行鳴笛聲的識(shí)別分類,學(xué)習(xí)訓(xùn)練之前需配置每一層的參數(shù)。通過(guò)子頻帶能量特征提取獲得的鳴笛聲聲頻的32 維特征向量參數(shù),作為輸入層的輸入?yún)?shù)。隱含層的神經(jīng)元個(gè)數(shù)為12 個(gè),神經(jīng)元激活函數(shù)為tansig 函數(shù)。本文對(duì)8 種車型鳴笛聲進(jìn)行了實(shí)驗(yàn)研究,因此輸出層的神經(jīng)元個(gè)數(shù)為8 個(gè),對(duì)應(yīng)輸出的類別有8 種可能性,即輸出設(shè)置8 種對(duì)應(yīng)的標(biāo)簽。本文以上述8種車型各20 條樣本分為訓(xùn)練組15 條和測(cè)試組5 條對(duì)設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)進(jìn)行準(zhǔn)確性實(shí)驗(yàn)驗(yàn)證。
首先訓(xùn)練組樣本提取子頻帶能量特征點(diǎn)后輸入到BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)訓(xùn)練,并將學(xué)習(xí)好的神經(jīng)網(wǎng)絡(luò)保存。然后將測(cè)試組樣本進(jìn)行測(cè)試,驗(yàn)證神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確性,驗(yàn)證結(jié)果如圖6 所示。識(shí)別率是每種車型測(cè)試組樣本提取的特征值與神經(jīng)網(wǎng)絡(luò)訓(xùn)練好的學(xué)習(xí)組樣本對(duì)應(yīng)的特征值的比。
圖6 鳴笛聲測(cè)試識(shí)別結(jié)果Fig.6 Result of whistle test and identification
實(shí)驗(yàn)結(jié)果表明,利用子頻帶能量特征提取方法可以實(shí)現(xiàn)對(duì)不同種鳴笛聲的識(shí)別與分類,平均識(shí)別率可達(dá)93.626%。
在學(xué)習(xí)訓(xùn)練過(guò)程中利用改進(jìn)可變學(xué)習(xí)速率的BP 神經(jīng)網(wǎng)絡(luò)同固定學(xué)習(xí)速率的神經(jīng)網(wǎng)絡(luò)進(jìn)行迭代次數(shù)的比較,迭代次數(shù)如表1所示。
表1 迭代次數(shù)比較Table 1 Comparison of iterations
可以看出利用改進(jìn)的可變學(xué)習(xí)速率的神經(jīng)網(wǎng)絡(luò)進(jìn)行鳴笛聲分類識(shí)別時(shí),神經(jīng)網(wǎng)絡(luò)的迭代次數(shù)明顯減少,提高了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效率。
判斷為汽車?guó)Q笛聲之后,將不同類型的鳴笛聲進(jìn)行區(qū)分,以達(dá)到對(duì)鳴笛車輛進(jìn)行輔助判斷的目的。圖7 為鳴笛聲分類的實(shí)驗(yàn)場(chǎng)景。在不同的位置通過(guò)STM32 控制器開發(fā)的系統(tǒng)控制微型傳聲器采集鳴笛聲信號(hào),并通過(guò)功率放大器將信號(hào)放大,采樣頻率為10 kHz。
圖7 鳴笛聲分類實(shí)驗(yàn)場(chǎng)景Fig.7 Classification experimental scene
進(jìn)一步將上述8 種車型的其他鳴笛聲信號(hào)共160 條樣本進(jìn)行識(shí)別分類鳴笛聲的實(shí)驗(yàn)。在本節(jié)中定義識(shí)別正確率為樣本的準(zhǔn)確識(shí)別個(gè)數(shù)與識(shí)別總個(gè)數(shù)的比值。實(shí)驗(yàn)結(jié)果如表2所示。
表2 鳴笛聲識(shí)別分類結(jié)果Table 2 Result of classification of car whistles
表2 實(shí)驗(yàn)結(jié)果表明,豐田和吉利兩種車型鳴笛聲的所有樣本中提取出的特征點(diǎn)較少,因此在識(shí)別時(shí)正確率也較小,平均正確識(shí)別率只有83.334%和82.608%;而大眾和比亞迪兩種車型鳴笛聲樣本提取疊加出的特征點(diǎn)較多,因此識(shí)別率也隨之增加,識(shí)別分類正確率最大達(dá)到了92.308%和93.75%。與文獻(xiàn)[4]相比較,本文所提出的子頻帶能量特征提取方法應(yīng)用在鳴笛聲分類上,使分類正確率有了一定的提升,8 種車型的最大識(shí)別正確率達(dá)到了90%以上。與文獻(xiàn)[5]中利用小波變換提取特征將小轎車與大客車與貨車進(jìn)行區(qū)分相比較,本文提出的方法進(jìn)一步完成了8 種小轎車?guó)Q笛聲之間的分類,且平均識(shí)別正確率達(dá)到了89.718%。結(jié)果表明,本文所提出的此種子頻帶能量特征提取方法是有效的。
通過(guò)移動(dòng)傳聲器改變x坐標(biāo)和y坐標(biāo)到聲源的距離,從而使聲源到傳聲器的距離分別達(dá)到為5 m、8 m、10 m、20 m,然后驗(yàn)證測(cè)試距離對(duì)識(shí)別分類正確率的影響。測(cè)試過(guò)程中,環(huán)境噪聲在55 dB左右。
聲源到傳聲器距離與識(shí)別分類正確率的關(guān)系如圖8所示。
圖8 識(shí)別正確率與測(cè)試距離關(guān)系Fig.8 Relationship of the accuracy with test distance
圖8 實(shí)驗(yàn)結(jié)果表明,測(cè)試距離對(duì)識(shí)別正確率有一定的影響。10 m 內(nèi)的識(shí)別正確率相差較小,基本保持在80%~90%之間;而10 m和20 m 處識(shí)別正確率相差較大,最高只能達(dá)到80%。識(shí)別分類正確率降低的原因如下:(1) 隨著距離的增加,鳴笛聲聲能產(chǎn)生了明顯的衰減,從而降低了識(shí)別正確率。(2) 在接收過(guò)程中會(huì)不可避免地采集到環(huán)境其他聲音,距離越遠(yuǎn),采集到的非相關(guān)噪聲便會(huì)越多,從而導(dǎo)致識(shí)別正確率減小。
為了降低遺漏檢測(cè)的可能,將在距離10 m處采集的鳴笛聲信號(hào)與采集的非鳴笛聲信號(hào)按照一定的,設(shè)置信噪比分別為0 dB、6 dB、15 dB、20 dB。在環(huán)境噪聲中驗(yàn)證噪聲對(duì)分類識(shí)別正確率的影響。噪聲對(duì)識(shí)別正確率的影響關(guān)系如圖9所示。
圖9 識(shí)別正確率與噪聲關(guān)系Fig.9 Relationship of the accuracy with the noise
圖9 實(shí)驗(yàn)結(jié)果表明,噪聲對(duì)識(shí)別正確率有一定的影響。當(dāng)信噪比較小時(shí),識(shí)別正確率明顯降低,在信噪比為0 dB 時(shí)平均識(shí)別正確率為71.26%;隨著信噪比的增大,識(shí)別正確率也隨之增大,且趨于穩(wěn)定,信噪比為20 dB 時(shí)識(shí)別正確率最大可達(dá)到93.31%。后續(xù)可通過(guò)對(duì)采集的聲音進(jìn)行濾波降噪和聲音增強(qiáng)處理來(lái)提高鳴笛聲的識(shí)別正確率。
為了在鳴笛聲治理過(guò)程中提高鳴笛聲的識(shí)別正確率,對(duì)違法鳴笛車輛進(jìn)行輔助監(jiān)管,提出了一種子頻帶能量特征提取法。本方法對(duì)鳴笛聲信號(hào)時(shí)頻譜圖進(jìn)行特征提取,利用可變學(xué)習(xí)速率的BP 神經(jīng)網(wǎng)絡(luò)對(duì)特征值矩陣進(jìn)行學(xué)習(xí)訓(xùn)練。對(duì)此方法進(jìn)行了實(shí)驗(yàn)驗(yàn)證,實(shí)驗(yàn)結(jié)果表明子頻帶能量特征提取法可應(yīng)用于鳴笛聲的識(shí)別與分類。鳴笛聲與非鳴笛聲之間的識(shí)別率達(dá)到了94.889%,并且不同鳴笛聲的分類正確率最大達(dá)到了93.75%。在不同距離和不同噪聲環(huán)境下對(duì)此方法進(jìn)行了初步驗(yàn)證,驗(yàn)證了子頻帶能量特征提取法的有效性。本方法為鳴笛聲的識(shí)別分類提供了一種新思路。但本文所述方法尚有不足之處,且對(duì)同種喇叭發(fā)出的鳴笛聲識(shí)別分類仍需做大量實(shí)驗(yàn)進(jìn)行驗(yàn)證,后續(xù)可進(jìn)一步采集更多車型的鳴笛聲以及同種品牌車型的鳴笛聲構(gòu)建鳴笛聲樣本庫(kù),并在更復(fù)雜的環(huán)境中驗(yàn)證其準(zhǔn)確性與穩(wěn)定性,為提升識(shí)別正確率做進(jìn)一步研究分析。