馮凱強 潘雨青 李 峰 徐小波
(江蘇大學(xué)計算機科學(xué)與通信工程學(xué)院 鎮(zhèn)江 212013)
近年來,伴隨著科學(xué)技術(shù)的發(fā)展,社會對安防監(jiān)控系統(tǒng)的需求也在日益增加,然而目前視頻監(jiān)控是安防監(jiān)控領(lǐng)域中采用的最普遍的方法,但是視頻監(jiān)控對設(shè)備性能的要求和通信的要求較高,且對外部環(huán)境比較依賴,比如:光照、監(jiān)控的視野、遮擋等,另外隨著監(jiān)控已經(jīng)慢慢進(jìn)入到每個家庭的生活中,視頻監(jiān)控中個人隱私問題變得更加突出,異常聲音檢測可以很好地彌補目前監(jiān)控系統(tǒng)中出現(xiàn)的問題,在原本以圖像為主的監(jiān)控領(lǐng)域中,增加了聲音的屬性,可以更好地提高整個安防系統(tǒng)的安全性,更高效地檢測出異常事件。
在傳統(tǒng)的音頻分類模型中,多數(shù)采用DTW[17]、SVM[6]、HMM[10]等方法,自從2006年Hinton[5]發(fā)表了關(guān)于深層網(wǎng)絡(luò)的一篇文章后,深度學(xué)習(xí)在視頻和音頻等領(lǐng)域有了重大的進(jìn)步,目前在音頻處理領(lǐng)域已經(jīng)把深度學(xué)習(xí)作為主要的分類模型,例如語音識別[7~8]、說話人識別[9~10]等,深度學(xué)習(xí)在音視頻領(lǐng)域取得的效果得益于復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)和高性能的硬件設(shè)備,而物聯(lián)網(wǎng)設(shè)備的計算能力和存儲空間硬件參數(shù)無法滿足深度學(xué)習(xí)運行標(biāo)準(zhǔn),因此有必要在保證模型的準(zhǔn)確度的同時,進(jìn)一步縮減模型的大小,使能夠滿足物聯(lián)網(wǎng)設(shè)備的性能要求,在邊緣端進(jìn)行異常聲音識別。在特征選擇方面不同的應(yīng)用場景,也有不同的選擇,常見的有MFCC[11]、語譜圖[12]。從上述相關(guān)文獻(xiàn)可以看出,深度學(xué)習(xí)在語音領(lǐng)域可以很好地應(yīng)用,但針對異常聲音的研究相對較少。針對模型參數(shù)較大的問題,常見的壓縮算法是先訓(xùn)練一個復(fù)雜且功能強大的模型,然后再運用各種算法進(jìn)行模型壓縮,如權(quán)重閾值、哈希、哈夫曼編碼等。
異常聲音檢測模型如圖1所示,主要包括三個階段,分別是異常聲音提取階段、異常聲音檢測與異常聲音訓(xùn)練階段。聲音信號經(jīng)過拾音器后變?yōu)閿?shù)字信號,經(jīng)過端點檢測、特征提取后,送入預(yù)先訓(xùn)練好的模型進(jìn)行異常聲音檢測,下面將對關(guān)鍵的部分進(jìn)行具體介紹。
圖1 異常聲音檢測模型結(jié)構(gòu)
預(yù)處理一般包含預(yù)加重、分幀、加窗以及端點檢測等過程。
端點檢測[17]是檢測聲音的起始事件和結(jié)束時間,獲取異常聲音處理的有效片段??紤]到異常聲音的特點和端點檢測的計算成本,采用短時幅度和短時過動態(tài)門限率[17]兩個特征進(jìn)行端點檢測,算法流程圖如表1所示。
短時幅度計算:
短時過動態(tài)門限率計算公式:
其中T為動態(tài)門限,反應(yīng)了噪聲的平均幅度水平,sgn為符號函數(shù)。
預(yù)加重是將X(n)通過一個高通濾波器,主要作用是提升信號中的高頻部分,使得信號頻譜變得更加平坦:
其中μ是在0.9~1.0之間,一般情況下取值為0.97。
在對信號截取后,容易存在信號的泄露問題,所以對聲音信號進(jìn)行截取時要進(jìn)行加窗,可以使時域信號更好地滿足周期性的要求。本模型中使用漢明窗[17]形式如下:
其中a的取值為0.46。
端點檢測算法如下所示。
目前針對異常聲音的特征選擇一般是參考語音識別技術(shù)領(lǐng)域的特征,常用的特征有梅爾頻率倒譜系數(shù)(MFCC)、短時能量等,而異常聲音的信號之間的區(qū)別較大,有相對獨立的特征,語音識別領(lǐng)域的不再適合。下面將介紹兩種常見的特征MFCC與聲譜圖。
MFCC是建立了聲音頻率與人耳聽到的聲音高低的非線性關(guān)系,用符合臨界頻帶分布的一組濾波器序列來模擬人耳聽覺的非線性,對聲音信號的頻譜進(jìn)行濾波,該濾波器的中心頻率是分布在等間距的Mel頻率軸上,反映了音頻短時幅度譜的特征,目前應(yīng)用在聲音的相關(guān)研究領(lǐng)域。MFCC[14]的提取方法是將預(yù)處理后的信號xt(τ)作頻域變換后,將對能量譜依照Mel標(biāo)度分布的三角濾波器組做卷積,再對濾波器組的輸出向量做離散余弦變換(DCT),這樣得到的前維向量稱為MFCC。它與頻率的關(guān)系可以用下式表示:
其中f為實際頻率,單位是Hz。
聲譜圖分別從頻率、時間和聲壓三個方向?qū)β曇粜盘栠M(jìn)行描述的,在聲譜圖中利用顏色的灰度值來表示,為了加強聲音信號的特征,通常采用聲壓值來表示。對異常聲音信號進(jìn)行短時傅里葉變換,傅里葉變換的長度取2Nf點[4],這樣每一幀的信號的長度都是Nf:
其中x為信號的頻譜值,YdB表示聲壓值。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以在缺乏先驗知識的前提下從數(shù)據(jù)中提取不同層次的抽象特征,與神經(jīng)網(wǎng)絡(luò)相比,卷積引入了局部連接,權(quán)值共享等策略,減少了權(quán)值的參數(shù)的規(guī)模,使得模型更加易于優(yōu)化,同時也降低了過擬合的風(fēng)險。
輸入層:作為下一層卷積層的輸入矩陣,一般來說輸入層不算作模型的層數(shù)。
卷積層:卷積層用來提取輸入的數(shù)據(jù)的特征,是卷積網(wǎng)絡(luò)模型的重要組成部分。卷積核與輸入的數(shù)據(jù)矩陣進(jìn)行卷積操作,在卷積操作后,結(jié)果將會與偏置參數(shù)進(jìn)行相加運算,最后通過非線性映射層中的激活函數(shù),得到輸出的特征圖,如下式:
其中公式中Ki表示輸入的數(shù)據(jù)J核第i個卷積核W進(jìn)行卷積操作后得到的特征,ai是偏置參數(shù),σ是激活函數(shù)。
池化層:池化層常用于特征降維,壓縮數(shù)據(jù)和參數(shù)數(shù)量,可以有效防止模型過擬合,常用的有最大池化層和平均池化層,通常在聲音領(lǐng)域中一般使用最大池化層。
全連接層:在最后一個池化層后緊接的是全連接層,在卷積神經(jīng)網(wǎng)絡(luò)中一般至少包含一個全連接層,全連接層把不同網(wǎng)絡(luò)層的節(jié)點全部連接,對卷積和池化后的特征進(jìn)行整合。
輸出層:輸出層在網(wǎng)絡(luò)的最后一層,用來對整個模型結(jié)果作判定,也就是輸出結(jié)果。
本文參考文獻(xiàn)[2]中的卷積模型作為基線模型,在此基礎(chǔ)上進(jìn)行優(yōu)化,模型結(jié)構(gòu)如下,主要使用3*3卷積核,模型總共有8層網(wǎng)絡(luò),分別是輸入層,隱藏層,輸出層。使用聲譜圖作為輸入,調(diào)整聲譜圖大小為512×256,使用BN歸一化[9],激活函數(shù)使用ReLu[8],權(quán)重是使用He初始化[16]的方法進(jìn)行初始化,步長使用2*2,最大池化層為2,最后使用softmax分類器進(jìn)行分類。在前兩層進(jìn)行了不同卷積核的實驗,發(fā)現(xiàn)較大的卷積核對整體的分類性能更好。因此使用7*7和5*5卷積核,模型大小為
254MB。
卷積模型中的大量冗余參數(shù),往往造成了設(shè)備的資源的浪費[3]。隨著物聯(lián)網(wǎng)的發(fā)展,為了實現(xiàn)模型部署在移動設(shè)備或嵌入式設(shè)備上,很多學(xué)者已經(jīng)開始研究模型壓縮的方向,在保證精度的前提下,不斷降低模型的大小,因此本節(jié)將對模型壓縮算法進(jìn)行研究。常見模型壓縮一般分為兩類,第一類是先建立一個收斂的深度復(fù)雜網(wǎng)絡(luò),再利用量化、裁剪等手段進(jìn)行模型壓縮[13],另一類就是在構(gòu)建模型的時候根據(jù)經(jīng)驗,設(shè)計適合嵌入式設(shè)備的網(wǎng)絡(luò)模型結(jié)構(gòu)[1]。
目前網(wǎng)絡(luò)裁剪已經(jīng)被廣泛應(yīng)用于卷積的網(wǎng)絡(luò)模型壓縮,通過刪除一些不必要的節(jié)點,不僅可以降低模型的大小,還可以防止過擬合,因此本節(jié)將重點研究裁剪算法。
在卷積模型中,隱層節(jié)點的數(shù)量有著很大的縮減空間,所以可以預(yù)先訓(xùn)練好一個較復(fù)雜的網(wǎng)絡(luò)模型,然后再進(jìn)行裁剪,通過重復(fù)的訓(xùn)練,確保模型變小的同時保證性能穩(wěn)定。
因為輸入層和輸出層的節(jié)點都有相對應(yīng)的特征或者建模單元,所以本節(jié)提出了一種通過計算節(jié)點輸入輸出權(quán)重之和的裁剪算法。節(jié)點裁剪僅限于對隱藏節(jié)點的裁剪,標(biāo)準(zhǔn)差值[15]可以作為卷積層中濾波器權(quán)重的重要程度,標(biāo)準(zhǔn)差值較小的濾波器,再用作特征提取時作用很小,在裁剪之前需要給出判斷節(jié)點重要性的標(biāo)準(zhǔn)。
輸入權(quán)重標(biāo)準(zhǔn)差值:
對于第i層的節(jié)點m,它的輸入權(quán)值是與其i-1層所有Ni-1個節(jié)點連接,所以它的輸入權(quán)值標(biāo)準(zhǔn)差定義為
輸出權(quán)重標(biāo)準(zhǔn)差值:
對于第i層的節(jié)點m,它的輸出權(quán)值是與其i+1層所有Ni+1個節(jié)點連接,所以它的輸出權(quán)值標(biāo)準(zhǔn)差定義為
在裁剪中,使用輸入和輸出的和作為判斷第i層第m個節(jié)點的重要依據(jù):
對于一個已經(jīng)收斂的卷積模型,現(xiàn)根據(jù)式(11)計算每個隱層中節(jié)點的重要性,然后在每層中,對該層包含節(jié)點進(jìn)行排序,裁剪掉一些相對不重要的節(jié)點。直接裁剪掉一些節(jié)點的話,可能會對性能造成明顯的損失,即使在通過長時間重新訓(xùn)練,與原始模型的性能依然有差距,因此本文采用一種迭代式裁剪方法:
1)首先是訓(xùn)練一個網(wǎng)絡(luò)模型直至收斂。
2)根據(jù)式(11)計算模型每個隱層的節(jié)點的重要性。
3)在每個隱層中,根據(jù)第2)步計算得到的重要性對節(jié)點排序,并將一小部分重要性最低的節(jié)點裁剪。
4)對第3)步裁剪后的模型進(jìn)行重新訓(xùn)練,直到再次收斂。
5)不斷重復(fù)2)~4)步,直到參數(shù)達(dá)到預(yù)先設(shè)定的規(guī)模。
迭代式裁剪依次裁剪隱層中節(jié)點,裁剪后再進(jìn)行重新訓(xùn)練,根據(jù)驗證集上的準(zhǔn)確率來判斷節(jié)點的敏感度,若準(zhǔn)確率下降的較多,則說明裁剪的節(jié)點敏感度較大。本節(jié)的裁剪算法沒有采用根據(jù)閾值大小進(jìn)行直接裁剪節(jié)點,因為如果裁剪該層的節(jié)點都小于閾值,則會對整個網(wǎng)絡(luò)的結(jié)構(gòu)造成破壞,同時在相關(guān)的裁剪算法中很難確定最終的閾值。根據(jù)卷積層中濾波器的敏感程度,分別設(shè)置了不同的裁剪比,確保不會因裁剪過多,而破壞模型結(jié)果。
本文根據(jù)事件的危險程,分別從影視作品、FreeSound、UrbanSound8K等中整理了包括槍聲、玻璃破碎聲、尖叫聲、爆炸聲等四類聲音。每類聲音數(shù)據(jù)樣本分別為1500個,總共包含6000個樣本。
數(shù)據(jù)增強可以改善數(shù)據(jù)資源匱乏的現(xiàn)象,在一定程度上減少泛化誤差,防止由于數(shù)據(jù)集更加多樣化而導(dǎo)致的過度擬合,并且應(yīng)該針對訓(xùn)練數(shù)據(jù)中未充分表示或缺失的測試集屬性。其主要的思想確保在增強前后的實際含義沒有變化,對于譜圖域,必須仔細(xì)選擇數(shù)據(jù)集增強。常見的幾何變換如水平翻轉(zhuǎn)、縮放、裁剪或剪切都不適合,因為它們可能會掩蓋原始信號。本文采用三種增強方法:頻率軸上垂直移動5%距離、時間軸上水平移動50%距離和添加隨機高斯噪聲。垂直或水平滾動輸入圖像將像素值移動到所需的方向,從而在將邊界外像素添加到相反的圖像邊界時保留完整的信息。
為了確定本文提出的異常聲音檢測模型特征,針對不同聲音特征進(jìn)行了實驗,實驗采用本文2.3節(jié)中的模型作為分類器,才采用原始信號、MFCC、聲譜圖,實驗結(jié)果如表2所示。
表2 不同特征對比實驗結(jié)果(%)
從表2中可以看出,使用原始信號作為輸入的特征,識別率明顯低于MFCC與聲譜圖,因為原始信號在時域不能很好地表示聲音的特征。在聲譜圖在計算量與準(zhǔn)確度方面優(yōu)于MFCC,更加適合在嵌入式設(shè)備上使用,因此本文使用聲譜圖作為異常聲音檢測模型的特征。
為了驗證本文卷積模型的有效性,本文采用不同的分類模型進(jìn)行對別實驗,分別用HMM、SVM以及本文的CNN模型進(jìn)行異常聲音檢測實驗。從表3中可以看出,本文使用的模型檢測效果優(yōu)于傳統(tǒng)的模型,實驗結(jié)果如表3所示。
表3 不同模型對比實驗平均結(jié)果(%)
表4 是使用本文提出的裁剪算法進(jìn)行實驗結(jié)果,在裁剪的過程中,通過對比不同的裁剪算法,以及不同的裁剪別,來驗證本文提出算法的有效性。每次迭代都將模型中每個隱層中最低p%個的節(jié)點裁剪掉,其中裁剪量p%分別取{20,40,60},可以看出,當(dāng)裁剪20%的時候,可以使裁剪性能最佳,當(dāng)高于40%的時候,準(zhǔn)確率開始下降,實驗的結(jié)果如表4所示。
表4 不同裁剪算法實驗結(jié)果(%)
本文確定了一種異常聲音檢測模型方案,用于解決傳統(tǒng)方法檢測準(zhǔn)確率不高的問題,針對其中卷積模型參數(shù)較大問題,提出一種模型壓縮算法,可以根據(jù)不同的實際設(shè)備選擇不同的壓縮標(biāo)準(zhǔn),通過實驗結(jié)果表明,本文的壓縮算法可以一定程度上降低模型的大小。本文后續(xù)工作將針對模型壓縮的其他方法進(jìn)一步研究。