溫益凱, 陳 樂, 富雅瓊
(中國計(jì)量大學(xué) 機(jī)電工程學(xué)院, 杭州 浙江 310018)
電子產(chǎn)品通常使用電子蜂鳴音作為報(bào)警提示功能。蜂鳴器憑借其結(jié)構(gòu)簡單,造價(jià)低廉等特點(diǎn)被廣泛應(yīng)用于電子表、電子玩具、電子體溫計(jì)等多種電子產(chǎn)品中作為報(bào)警通知模塊。電子產(chǎn)品在出廠前通常會進(jìn)行質(zhì)量檢測,蜂鳴提示音檢測也是檢測內(nèi)容之一。以電子體溫計(jì)為例,對蜂鳴提示功能的檢測方式一般為在工廠現(xiàn)場環(huán)境下進(jìn)行人工耳聽檢測,該方式易受背景噪聲與人為主觀影響,亟需改善。
聲音識別技術(shù)主要是針對不同聲音的特征進(jìn)行特征提取,對提出的特征通過數(shù)學(xué)模型算法進(jìn)行模式匹配識別的技術(shù)[1]。蜂鳴器通常是在電路設(shè)計(jì)時(shí)就預(yù)先設(shè)定好固定的頻率范圍與相對響度[2]。音頻信號分析可以分為時(shí)域、頻域、倒譜域等分析方法,其中快速傅里葉變換(FFT)是最常用的時(shí)域分析方法。
將目標(biāo)蜂鳴音信號進(jìn)行FFT分析后,只需要在對應(yīng)的頻譜圖中查看目標(biāo)頻率是否出現(xiàn)波峰即可識別。但是單純的FFT方法僅能適用于不存在環(huán)境噪音或者目標(biāo)聲音特征大于環(huán)境噪音的情況。然而引文中提到蜂鳴音是在工廠環(huán)境下進(jìn)行檢測的,但工廠現(xiàn)場存在著各類設(shè)備與人工作業(yè)時(shí)所發(fā)出的噪聲,該噪聲分貝為70~90 dB,頻圍在0~10 kHz,具有頻帶寬、響度大等特點(diǎn),影響蜂鳴音的檢測結(jié)果。
工廠環(huán)境下電子產(chǎn)品出廠前質(zhì)量檢測環(huán)節(jié)中為了檢測蜂鳴提示功能是否合格,采用小波降噪結(jié)合ResNet網(wǎng)絡(luò)分類技術(shù)進(jìn)行蜂鳴音檢測。小波變換是一種信號的時(shí)頻域分析方法,具備多分辨率分析特點(diǎn),并且可以很好地表征信號在時(shí)頻兩域地局部特征[3,4]。利用小波變換可以得到蜂鳴音信號的時(shí)頻特征圖,再將時(shí)頻圖交由訓(xùn)練好的ResNet網(wǎng)絡(luò)模型進(jìn)行模式匹配識別,從而完成對蜂鳴音信號的在線檢測。
如圖1是蜂鳴音檢測系統(tǒng)流程圖,圖2是檢測系統(tǒng)界面圖。
圖1 蜂鳴音檢測流程圖Fig.1 Flow chart of beep detection
圖2 蜂鳴音檢測系統(tǒng)界面Fig.2 Ui interfacem of beep detection system
小波(wavelet),是指在有限間隔內(nèi)且平均值為零的一種函數(shù)。設(shè)Ψ(t)∈L2(R),其傅里葉變換為Ψ(ω),當(dāng)滿足條件式(1)時(shí),則Ψ(t)被稱為基本小波或母小波[5]。
(1)
母小波Ψ(t)經(jīng)過平移和伸縮,就可以得到一個(gè)小波序列,式(2)為連續(xù)情況的小波序列。
(2)
式中:Ψa,b(t)為小波基函數(shù);a為伸縮因子;b為位移因子。針對信號?f(t)∈L2(R)的連續(xù)小波變換[6]為:
Wf(a,b)=〈f(t),Ψ(a,b)(t)〉
(3)
小波降噪中最常見的方式為閾值降噪,其原理主要是將帶噪信號進(jìn)行小波分解得到一系列小波系數(shù),小波系數(shù)中包含信號的特征信息,通常有效信號的小波系數(shù)大于噪聲的小波系數(shù),此時(shí)選擇適合的閾值,保留大于閾值的小波系數(shù)而拋棄小于閾值的,再將保留的系數(shù)進(jìn)行小波重構(gòu),最終得到降噪后的信號[7,8]。降噪流程如圖3所示。
圖3 小波降噪流程圖Fig.3 Flow chart of wavelet denoising
小波變換只對信號的低頻部分做分解,而小波包不僅對信號的低頻部分做分解,同樣也分解高頻部分。因此小波包具有更好的時(shí)頻局部化特性。
針對蜂鳴音信號f(t),進(jìn)行n層小波包分解,得到2n個(gè)子信號。假設(shè)小波包分解的低通、高通濾波系數(shù)分別為ak-2l,bk-2l,則n層小波包分解算法為:
(4)
(5)
圖4 f1,f2信號小波系數(shù)方差值及二者方差偏差值Fig.4 Variance value of wavelet coefficients of f1,f2 signals and variance deviation value between f1,f2
已知某公司生產(chǎn)的DT-01B電子體溫計(jì)蜂鳴音頻率為6.1 kHz左右。將低噪聲(50 dB左右)環(huán)境標(biāo)記為H,設(shè)H背景音信號為f1,H下的蜂鳴音信號為f2。設(shè)置聲卡采樣頻率為44.1 kHz,對f1與f2分別以demy小波基進(jìn)行5層小波包分解,計(jì)算二者的小波系數(shù)方差,經(jīng)過對比得知第43號節(jié)點(diǎn)的方差偏值最大,說明蜂鳴音信號特征主要集中在第43號節(jié)點(diǎn)系數(shù)中(圖4),則結(jié)合該節(jié)點(diǎn)進(jìn)行小波包重構(gòu)得到降噪后的信號f3。
對信號f3進(jìn)行小波變換得到信號時(shí)頻特征圖p(圖5)。
圖5 小波包尺度比對法降噪后信號時(shí)頻圖Fig.5 Time-frequency diagram of signal which denoised by wavelet packet scale comparison method
Kaiming He提出的深度殘差網(wǎng)絡(luò)(deep residual networks,ResNet),首次在網(wǎng)絡(luò)結(jié)構(gòu)中引入了殘差單元,優(yōu)化了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)深層堆疊所造成的梯度爆炸與退化問題[10,11]。如圖6所示為殘差單元示意圖(圖中右側(cè)分支稱為shortcut連接)。
圖6 殘差單元示意圖Fig.6 Schematic diagram of residual block
ResNet網(wǎng)絡(luò)將殘差單元映射的每組網(wǎng)絡(luò)設(shè)為一個(gè)構(gòu)造塊,構(gòu)造塊的定義如下:
y=F(x,{Wi})+x
(6)
式中:x,y分別為當(dāng)前構(gòu)造塊的輸入、輸出向量;F(x,{Wi})是需要訓(xùn)練的殘差映射,并且式(6)中的x與F維度需相同[12,13]。如果維度不同則需要在shortcut連接中增加線性映射來實(shí)現(xiàn)維度匹配:
y=F(x,{Wi})+Wsx
(7)
本文采用的ResNet34結(jié)構(gòu)為常見的ResNet網(wǎng)絡(luò)結(jié)構(gòu)之一,由33個(gè)卷積層與1個(gè)全連接層構(gòu)成。其網(wǎng)絡(luò)參數(shù)如表1所示。
前面提到,將預(yù)處理后的蜂鳴音信號進(jìn)行小波變換從而得到其時(shí)頻圖,則該圖即為ResNet34網(wǎng)絡(luò)的輸入向量。以5 s采樣時(shí)間,5個(gè)采樣對象的混合信號(蜂鳴音與噪音)為例,進(jìn)行信號降噪與小波變換處理,信號處理過程如圖7。
表1 ResNet34網(wǎng)絡(luò)參數(shù)Tab.1 Network parameters of ResNet34
圖7 信號處理Fig.7 Signal process
由小波特性可知,信號攜帶的能量與其小波系數(shù)成正比關(guān)系,映射至?xí)r頻圖中則決定相關(guān)區(qū)域顏色深淺。此外,結(jié)合目標(biāo)蜂鳴音的時(shí)頻區(qū)間便可以判斷該蜂鳴音是否合格。結(jié)果分類共有25=32種,例如“00100”為第3號蜂鳴音合格,其余不合格(從左到右1~5號排序,0為不合格,1為合格)。
深度學(xué)習(xí)模型若要具備良好的分類能力,往往需經(jīng)大量的數(shù)據(jù)集訓(xùn)練,這個(gè)過程需要耗費(fèi)大量的時(shí)間與內(nèi)存資源,遷移學(xué)習(xí)(transfer learing)概念的提出正是為了解決這個(gè)問題[14]。遷移學(xué)習(xí)流程通常是將模型置于包含足夠數(shù)據(jù)量的源域中預(yù)訓(xùn)練,然后在數(shù)據(jù)量較少的目標(biāo)域中微調(diào)參數(shù),從而達(dá)到降低訓(xùn)練量、提高模型泛化能力的目的[15]。
本文在windows10操作系統(tǒng)下使用Pycharm開發(fā)平臺,采用Pytorch深度學(xué)習(xí)框架訓(xùn)練模型,并利用GPU模塊優(yōu)化模型訓(xùn)練效率。共采集3 200組蜂鳴音數(shù)據(jù)作為數(shù)據(jù)集,每種分類情況為100組數(shù)據(jù),其中采用隨機(jī)采樣方式分割數(shù)據(jù)集,比例為70%作為訓(xùn)練集,30%作為驗(yàn)證集。另外采集不同工廠噪音背景下的蜂鳴音數(shù)據(jù)共640組,每種分類情況20組,作為測試集。選擇ImageNet數(shù)據(jù)集下的ResNet34模型實(shí)現(xiàn)遷移學(xué)習(xí)訓(xùn)練,將預(yù)訓(xùn)練模型載入,利用上文所述數(shù)據(jù)集進(jìn)行訓(xùn)練,選擇凍結(jié)全連接層前的網(wǎng)絡(luò)層參數(shù)權(quán)重,僅訓(xùn)練全連接層參數(shù),將全連接層輸出維度修改為32通道并通過Softmax層,設(shè)置交叉熵(cross entropy)損失函數(shù)以及Adam梯度優(yōu)化方式訓(xùn)練模型,并設(shè)置學(xué)習(xí)率為0.0001,batchSize為32,epoch為200,模型訓(xùn)練如圖8所示。
圖8 ResNet34模型訓(xùn)練損失函數(shù)與準(zhǔn)確率Fig.8 The loss function and accuracy of ResNet34 model training
由圖8可知,準(zhǔn)確率最終僅收斂在0.3左右,而損失函數(shù)收斂在1.7左右,說明模型訓(xùn)練效果十分差。進(jìn)一步分析發(fā)現(xiàn)32種分類太多,并且每種分類非常類似,且每種分類僅100張?jiān)斐蓴?shù)據(jù)集不足,因此模型在訓(xùn)練中受到的干擾非常大。其實(shí)可以發(fā)現(xiàn),32種分類實(shí)質(zhì)上是每個(gè)時(shí)間區(qū)域的二分類即合格或不合格,那么可以選擇將5 s的時(shí)頻圖進(jìn)行圖像分割,得到5份1 s的時(shí)頻圖,再將分割后的圖輸入模型,這樣訓(xùn)練過程中的干擾項(xiàng)則會大大降低。此外,針對二分類來說,ResNet34的模型深度過大,容易造成訓(xùn)練過擬合,因此將模型改為ResNet18網(wǎng)絡(luò),網(wǎng)絡(luò)參數(shù)如表2。
設(shè)置學(xué)習(xí)率0.0001,batchSize為4,epoch為100,訓(xùn)練過程如圖9,可以發(fā)現(xiàn)隨著epoch次數(shù)的增加,模型的損失函數(shù)在下降,準(zhǔn)確率在上升,最終驗(yàn)證集準(zhǔn)確率收斂于93.91%。
表2 ResNet18網(wǎng)絡(luò)參數(shù)Tab.2 Network parameters of ResNet18
圖9 ResNet18模型訓(xùn)練損失函數(shù)與準(zhǔn)確率Fig.9 The loss function and accuracy of ResNet18 model training
PyQt是Qt專門為Python提供的GUI拓展,由一系列Python模塊組成。本文選擇在Pycharm開發(fā)平臺基礎(chǔ)上,輔以QtDesig-ner、PyUIC拓展工具完成整套檢測系統(tǒng)的開發(fā)設(shè)計(jì)[16]。分別使用PyWavelet模塊實(shí)現(xiàn)信號的小波變換預(yù)處理,torch及torchvision模塊實(shí)現(xiàn)深度學(xué)習(xí),matplotlib模塊實(shí)現(xiàn)信號特征的顯示。本系統(tǒng)其他功能如下。
3.3.1 數(shù)據(jù)通訊與信號采集設(shè)置
上下位機(jī)間的數(shù)據(jù)通訊采用的是串口通信方式,其中波特率、停止位、數(shù)據(jù)位等串口參數(shù)皆可從QcomBox(組合框)中選擇預(yù)設(shè)值進(jìn)行設(shè)置。數(shù)據(jù)傳輸間的通信協(xié)議采用自定義協(xié)議,當(dāng)且僅當(dāng)每次傳輸?shù)臄?shù)據(jù)滿足如下格式才記為正確數(shù)據(jù)。自定義協(xié)議格式為:幀頭+傳輸數(shù)據(jù)+crc校驗(yàn)碼+幀尾。
聲音的采集是基于PC聲卡與收音麥克風(fēng)實(shí)現(xiàn)。聲音采集參數(shù)設(shè)置包含采樣頻率、采樣通道、采樣時(shí)間等。
檢測流程的開啟可以選擇人工點(diǎn)擊“開始采樣”按鈕,或者當(dāng)串口接收到正確的啟動指令實(shí)現(xiàn)自動檢測。
3.3.2 結(jié)果顯示與數(shù)據(jù)持久化
當(dāng)獲取到聲音信號識別結(jié)果后,首先會在結(jié)果顯示區(qū)域顯示當(dāng)前識別對象的檢測批次以及各對象的識別結(jié)果。其次會進(jìn)行檢測結(jié)果持久化操作即檢測結(jié)果會寫入本地MySql數(shù)據(jù)庫,所存信息包含該對象的編號、批次、檢測結(jié)果、檢測時(shí)間。此外,本系統(tǒng)可以查詢識別對象的合格率(當(dāng)日開始檢測時(shí)間至查詢時(shí)間),也可以根據(jù)批次號查詢結(jié)果并列表顯示,并具備數(shù)據(jù)(今日數(shù)據(jù)或全部數(shù)據(jù))導(dǎo)出excel功能。
在測試集中通過式(8)、式(9)、式(10)分別計(jì)算每種分類結(jié)果的召回率DRecall、精確率DPrecision與準(zhǔn)確率DAccuracy:
(8)
(9)
(10)
式中:TP為真正例(TruePositive);FN為假反例(FalseNegative);FP為假正例(FalsePositive);TN為真反例(TrueNegative)。經(jīng)計(jì)算測試集召回率為95.2%,精確率為95.2%,準(zhǔn)確率為97.5%,說明模型分類效果良好。
針對工廠背景噪聲環(huán)境下的蜂鳴音檢測問題,提出一種基于小波降噪和ResNet18網(wǎng)絡(luò)分類模型的檢測識別方法,該方法效果良好,準(zhǔn)確率達(dá)97.5%;并且采用PyQt5編寫檢測平臺Ui,該平臺操作簡單、功能豐富,具有良好的人機(jī)交互體驗(yàn)。