姚 瑤,李圣辰,邵 曦
(1.南京郵電大學 通信與信息工程學院,江蘇 南京 210003;2.西交利物浦大學 智能工程學院,江蘇 蘇州 215123)
近些年來,科學技術(shù)水平不斷提高,各種高科技產(chǎn)品也越來越智能化,其中就包括很多監(jiān)控設備.異常音頻事件檢測(Anomalous Sound Detection,ASD)成為了一個熱點問題,尤其是在視頻監(jiān)控難以到達的領(lǐng)域,如結(jié)構(gòu)復雜的機器內(nèi)部或者需要監(jiān)護的老人家里.這就需要一款既能實現(xiàn)實時監(jiān)測,又能保障顧客隱私的異常事件檢測系統(tǒng).音頻異常事件檢測系統(tǒng)就可以代替或者結(jié)合視頻監(jiān)控,雙管齊下,解決視覺盲區(qū)問題,緩解監(jiān)控人員的壓力,起到幾全其美的作用.
隨著工業(yè)技術(shù)的快速發(fā)展,機械化生產(chǎn)已經(jīng)成為主流,極大地提高了產(chǎn)品生產(chǎn)的效率,保障了產(chǎn)品生產(chǎn)的質(zhì)量.機器系統(tǒng)的穩(wěn)定運行對機器生產(chǎn)的效率、質(zhì)量,乃至安全都有重要的作用,所以在機器運行過程中做好監(jiān)測和及時警報具有重大意義.在大部分時間里,機器都處于穩(wěn)定運行階段,這段時間機器發(fā)生的故障很少,但故障種類較多[1],難以收集到機器的所有故障聲進行有監(jiān)督地訓練.無監(jiān)督學習的機器異常聲檢測系統(tǒng)在異常音頻樣本數(shù)據(jù)集很少的情況下可以發(fā)揮巨大的作用.通過比對訓練集正常樣本庫里的特征和新出現(xiàn)的異常樣本特征,可以檢測到異常的音頻事件.
在信號處理領(lǐng)域,稀疏表示和字典學習被廣泛應用.字典學習最初起源于壓縮感知(Compressive Sensing,CS)領(lǐng)域,其主要思想是創(chuàng)建聲事件表或者特征詞典對場景建模,其中字典中的事件和特征不一定是先驗的,因此可以從數(shù)據(jù)中以無監(jiān)督的方式學習字典[2].目前構(gòu)建字典有兩種方法:一是解析法;二是學習法.解析法一般通過信號的某種數(shù)學變換來構(gòu)造,其構(gòu)造簡單,計算復雜度低,但是原子形態(tài)固定,不夠豐富,難以達到最優(yōu)表示的目的.而通過學習法來獲得過完備字典的方法被廣泛應用,它的字典原子更豐富,能更好地匹配信號本身,可以獲得更稀疏的表示[3],這也是本文采用的方法.在稀疏表示領(lǐng)域,總是希望表示系數(shù)越簡單越稀疏越好.良好的稀疏度和較小的重構(gòu)誤差可以讓特征區(qū)分得更加明顯,以簡化分類過程.這一方法在人臉識別領(lǐng)域已經(jīng)取得了非常好的效果[4-5].對于無監(jiān)督學習的分類,常用的方法有局部異常因子(Local Outlier Factor,LOF)檢測[6]、孤立森林(Isolation Forest,iForest)[7]、自編碼器(Auto-Encoder,AE)等.我們選擇了單分類算法里的單類支持向量機(One-Class Support Vector Machine,OCSVM)[8],它具有計算時間短,適用于只有較少樣本的訓練集,對噪聲的魯棒性強等特點.它通過正常聲音的數(shù)據(jù)建立異常聲檢測模型,該模型將訓練數(shù)據(jù)樣本通過核函數(shù)映射到高維特征空間,以獲得更好的聚集性,并且在特征空間中求解一個最優(yōu)超平面使得盡可能多的正常數(shù)據(jù)落入決策邊界內(nèi).
本次使用的音頻為采樣頻率為16 kHz的單聲道機器聲,在進行特征提取之前,我們對原始音頻信號進行分幀加窗,以得到更多更加準確的信息.根據(jù)音頻長度,在時域上將每10 s分為311幀.將窗口的長度設置為1 024個點,單跳大小設置為512個點,然后對每一幀進行傳統(tǒng)特征計算,并在字典學習之前進行歸一化處理.
在特征選擇方面,由于本研究面對的是帶有故障的機器聲,信噪比很低,且具有機器特性,如振動特性、旋轉(zhuǎn)特性、摩擦性等,所以我們選擇了16個傳統(tǒng)信號參數(shù)組成的特征集.傳統(tǒng)的特征包含故障信息,更有利于學習異常音頻的相關(guān)分布,從而提高分類精度.下面我們介紹一下所用的特征.
首先是時域特征.時域特征表征的是信號在時間和空間中的變化規(guī)律及其內(nèi)在特性.通常機器信號的時域統(tǒng)計特征主要分為兩大類型:有量綱特征參數(shù)與無量綱特征參數(shù).其中,有量綱特征參數(shù)表征機器的運行狀態(tài),并且會隨負荷、轉(zhuǎn)速的變化而產(chǎn)生相應的變化;無量綱特征參數(shù)是相同量綱參數(shù)的比值,它能夠反映機器運行過程中的故障情況.本研究用到的機器振動信號的時域特征參數(shù)分別如表1,表2所示.
表1 時域有量綱特征參數(shù)Tab.1 Dimensional characteristic parameters in time domain
表2 時域無量綱特征參數(shù)Tab.2 Dimensionless characteristic parameters in time domain
表中,Xabs代表信號絕對值,N代表采樣點數(shù).以上特征參數(shù)中,峰值指標、脈沖指標和峭度可以用來檢測信號有無沖擊;歪度指標可以反映數(shù)據(jù)分布情況;裕度指標、峰值和波形指標等都可以反映設備的磨損情況.我們通常用敏感性和穩(wěn)定性來衡量指標的性能,并且由于穩(wěn)定性和敏感性往往不會同時最優(yōu),所以這些參數(shù)常常會被組合起來運用,來兼顧這兩方面的性能.例如脈沖指標、峰值指標和峭度可以很好地檢測出早期故障.在沖擊故障發(fā)生早期,它們的值會明顯增大,敏感性好,但是上升到一定程度后反而會下降,穩(wěn)定性差[9].有效值雖然對早期故障信號不敏感,但是穩(wěn)定性好,所以它們經(jīng)常被一起運用以獲得更好的效果.
機器信號的頻域特征參數(shù)可以反映出機器信號的能量隨頻率分布的情況.當機器出現(xiàn)故障時,機器設備的振動幅值會保持較高的值,這時時域特征參數(shù)僅可以表示機器設備發(fā)生了故障,而頻域特征參數(shù)可以幫助分析設備發(fā)生故障的具體位置和原因.本次我們選用的頻域特征如表3所示.其中:f=(1∶N/2)×fs/N;fs表示采樣頻率;S(f)表示信號頻譜.這樣,我們就獲得了所需要的16維特征,包括了5個有量綱的時域特征,5個無量綱的時域特征和6個頻域特征.
表3 頻域特征參數(shù)Tab.3 Frequency domain characteristic parameters
字典學習模型在過去幾十年中備受關(guān)注,并已經(jīng)運用到了包括圖像處理、信號還原和模式識別等領(lǐng)域.對于輸入的音頻特征,當用一組過完備基對它進行表示時,在滿足一定稀疏度或者重構(gòu)誤差的條件下,可以得到對原始音頻片段的近似表示,即Y≈DX.Y是輸入的需要得到稀疏表示的原始幀特征參數(shù),維度為特征維數(shù)×樣本數(shù),D代表稀疏矩陣,它的每一列稱為一個“原子”,X是得到的Y關(guān)于D的稀疏表示系數(shù),維度為字典原子數(shù)×樣本數(shù).其優(yōu)化目標是在給定的過完備字典中用盡量少的原子來表示信號,得到稀疏的X的問題.此問題可以用以下公式來描述:
(1)
我們需要盡量減小還原后的誤差,并使得X盡量稀疏以獲得信號更為簡潔的表示,降低模型的復雜度.稀疏字典學習包括兩個階段:一是字典構(gòu)建階段;二是利用構(gòu)建好的字典表示樣本階段.字典作為信號的稀疏表示的有效工具,為提取信號隱藏的本質(zhì)特征提供了更有意義的方式.因此,獲得合適的字典是稀疏表示算法成功的關(guān)鍵.在本次實驗中,我們選擇學習字典法來初始化一個16×256維的離散余弦變換(Discrete Cosine Transform,DCT)過完備字典D,其中16是樣本中特征的維數(shù),256為字典原子的個數(shù).然后對原始音頻幀特征數(shù)據(jù)使用正交匹配追蹤(Orthogonal Matching Pursuit,OMP)算法進行稀疏表示,得到對應字典的系數(shù)矩陣X,接著依據(jù)得到的系數(shù)矩陣X,利用K奇異值分解(K-Singular Value Decomposition,K-SVD)算法對字典D逐列快速進行更新[10],同時也對系數(shù)矩陣X進行更新,并計算重構(gòu)誤差;經(jīng)過K次迭代或收斂到指定誤差內(nèi),完成字典D和系數(shù)矩陣X的聯(lián)合優(yōu)化.
通常情況下,稀疏編碼用于異常檢測的時候,對于正常的事件樣本可以以很小的代價并且以很少的原子構(gòu)建,而異常事件和任何字典中的基原子都不相似,所以不能以很小的代價構(gòu)建或者構(gòu)建后表示系數(shù)的稀疏性很差[11].我們正是利用稀疏編碼的這一特性,將稀疏系數(shù)作為中間步驟輸入到OCSVM分類器中,與直接輸入原始特征的方法相比,對正負樣本的特征區(qū)分度更大,可以更好地實現(xiàn)異常事件的檢測.
在字典學習和稀疏表示階段結(jié)束后,我們利用訓練集中正樣本Y的稀疏系數(shù)矩陣X來訓練一個OCSVM分類器.
OCSVM是一種用途廣泛的分類器,是一種特殊的二分類器,其訓練數(shù)據(jù)集只包含一種數(shù)據(jù)集[12].OCSVM分類器可以根據(jù)輸入的正樣本數(shù)據(jù)點的特征,建立一個正樣本模型,并在測試階段作為判別器使用.對于沒有類別標簽的數(shù)據(jù)集,我們可以通過支持向量數(shù)據(jù)描述(Support Vector Data Description,SVDD)來找到劃分的超平面和支持向量機[14].SVDD認為所有不是正常的樣本都是異常的,并且在特征空間中劃分一個超球體,獲得數(shù)據(jù)周圍的球形邊界,超球體的體積要求盡量小以最小化異常點數(shù)據(jù)的影響.OCSVM將輸出劃分后的標簽,如果輸入樣本在判決邊界以內(nèi),則輸出標簽1,否則輸出標簽-1.整個系統(tǒng)的模型如圖1(見 第306頁)所示.
圖1 系統(tǒng)模型的框圖Fig.1 Block diagram of system model
在后處理階段,我們建立了兩種不同的評分方法來獲得異常分數(shù):一種是異常幀百分比制;另一種是異常幀連續(xù)積分制.
在第1種方法中,分類器對音頻的每一幀進行預測,得到1或-1的標簽.通過計算所有幀中-1標簽的比例來確定最終得分.對于第2種方法,我們遍歷這些連續(xù)-1標簽的幀來計算得分.當計分器第1次遇到-1,就會積1分,如果第2個標簽仍然是-1,那么它的得分是2,如果第3個標簽也為-1,那么它的分數(shù)為4.
以此類推,每一個連續(xù)的第i個標簽為-1的幀得分為2i-1,最后將這些連續(xù)標簽為-1的幀的得分疊加求和.直到遇到標簽1,前述計分器停止計分,當再次遇到標簽-1時,重復前面的過程.計分器公式見式(2)~(4).由此,我們可以得到每一段音頻的異常分數(shù)Sanomaly,分數(shù)越高,這段音頻是異常的可能性就越大.
(2)
(3)
(4)
本文采用DCASE2020 Challenge Task2提供的兩個數(shù)據(jù)集,分別是微型機器數(shù)據(jù)集ToyADMOS[15]和工業(yè)機器聲數(shù)據(jù)集MIMII Dataset[16].ToyADMOS數(shù)據(jù)集包含了toycar和toyconveyor兩個微型機器的操作聲,作者通過故意損壞微型機器來收集它們的異常操作的聲音;MIMII Dataset包含了pump,valve,slider和fan這4個真實工業(yè)類型的機器聲.在訓練集中除了toyconveyor只有3個機器ID以外,其他5類機器聲都有4個機器ID,每個機器ID下都有幾百個音頻片段,每個音頻片段時長大約10 s,包含了機器聲和其他環(huán)境噪聲.訓練集的所有音頻片段都只包含正常機器聲,不包含異常機器聲;而在測試集中,每個機器ID的音頻既包含了正常音頻也包含了異常音頻.
為了評判系統(tǒng)的性能,我們將上述每段音頻的異常得分轉(zhuǎn)化為受測者工作特性曲線下面積(Area Under Curve,AUC).AUC是一種傳統(tǒng)的異常檢測性能指標,它表示隨機給定一個正樣本和一個負樣本,模型預測正樣本為正的概率預測大于負樣本為正的概率的可能性,我們將它記為ηAUC.ηAUC的值越大,系統(tǒng)性能越好,檢測異常的能力越強,其表達式如下:
(5)
我們通過對不同機型的百分率計分法和連續(xù)計分法的比較,選出最優(yōu)方法,并且對比了本文系統(tǒng)和DCASE2020 Challenge Task2官方提供的使用AE的基線系統(tǒng)(Baseline system),結(jié)果如表4所示.
表4 本系統(tǒng)和Baseline系統(tǒng)的結(jié)果對比Tab.4 The comparison of results between the proposed system and Baseline system
實驗結(jié)果表明,基于字典學習的OCSVM系統(tǒng)對fan,pump,valve這幾個機器種類上的部分機型的識別效果是明顯優(yōu)于基線系統(tǒng)的,比如機器fan04的AUC從61.61%提升到了82.24%,性能提高了21%左右,機器pump00的AUC從67.15%提高到82.90%,性能提高了15%左右,機器valve02的AUC從68.18%提升到87.90%,性能提高了近20%;但是在兩類toy機器和slider上,只有個別機器的效果優(yōu)于基線系統(tǒng),大部分的效果比基線系統(tǒng)的要差.
由此可以得出結(jié)論:該系統(tǒng)對fan,pump,valve這3類機器上的異常聲檢測效果較好,可以很好地實現(xiàn)機器異常聲檢測任務;對于toycar,toyconveyor和slider這3類機器,檢測效果不理想,還需要繼續(xù)改進.
本文針對無監(jiān)督的機器異常聲檢測問題,提出了基于字典學習的無監(jiān)督機器異常聲事件檢測系統(tǒng).對于異常機器聲數(shù)據(jù)集少,訓練集只有正常樣本的問題,使用了異常檢測算法中的OCSVM分類器對數(shù)據(jù)進行分類,并采用字典學習和稀疏表示算法來加大特征之間的區(qū)別度,簡化分類過程.同時采用更適用于機器聲的傳統(tǒng)特征參數(shù)作為特征集.實驗結(jié)果表明,對于數(shù)據(jù)集的一部分機器,如fan,pump,valve這3類機器,該方法有一定的提升作用,對于另外一部分機器,如toy和slider兩類機器,效果反而變差.通過觀察比較,我們發(fā)現(xiàn)數(shù)據(jù)集中的這幾類音頻的異常聲和正常聲的特征分布差別很小,故而在字典學習后的稀疏域上區(qū)分不明顯,導致OCSVM分類器不能很好地確定區(qū)分邊界.后續(xù)工作將在這方面繼續(xù)改進,研究可以更易區(qū)分正常聲和異常聲的方法.