顏佟佟, 魯征浩, 徐大誠(chéng)
(蘇州大學(xué) 微納傳感技術(shù)研究中心,江蘇 蘇州 215006)
環(huán)境振動(dòng)狀態(tài)的識(shí)別對(duì)于現(xiàn)場(chǎng)感知、偵查和信息研判顯得尤為重要。例如,在石油管線、公路圍欄和要地目標(biāo)的監(jiān)控中,快速識(shí)別出監(jiān)測(cè)目標(biāo)的振動(dòng)類型(對(duì)石油管線、圍欄等的敲擊破壞)對(duì)于安全運(yùn)行具有重要的意義。目前,大多數(shù)振動(dòng)模式識(shí)別系統(tǒng)都采用加速度計(jì)作為檢測(cè)傳感器[1,2],但加速度計(jì)需要電源才能獲得相關(guān)數(shù)據(jù),壓電能量采集器實(shí)現(xiàn)了振動(dòng)能轉(zhuǎn)換為電能的自供電,并能獲取環(huán)境振動(dòng)信息,如果能對(duì)信息識(shí)別出環(huán)境振動(dòng)模式,便可以達(dá)到無(wú)源自感知和智能識(shí)別的目的。
Khalifa S等人[3]從壓電能量采集器輸出電壓中提取均值和標(biāo)準(zhǔn)差特征,再通過(guò)機(jī)器學(xué)習(xí)K近鄰法識(shí)別出了行人站立、行走、跑步等運(yùn)動(dòng)狀態(tài)。Ma D等人[4]從壓電能量采集器電壓信號(hào)中提取平均值、標(biāo)準(zhǔn)差等22個(gè)特征,采用支持向量機(jī)等算法識(shí)別步態(tài)引起的振動(dòng)模式。Hassan M等人[5]從壓電能量采集器輸出的交流電壓中提取最大值、頻域最高幅值與所有幅值之和的比值等特征,采用決策樹(shù)分類器識(shí)別熱詞引起的振動(dòng)類型。由此可見(jiàn),目前基于壓電能量采集器的信息感知主要應(yīng)用于行走等人類運(yùn)動(dòng)狀態(tài)識(shí)別,且多采用傳統(tǒng)的機(jī)器學(xué)習(xí)方法。對(duì)于許多重要目標(biāo)如石油管線、防護(hù)圍欄等安全監(jiān)測(cè),特別是識(shí)別具有破壞行為(如人為搖晃、重物敲擊)的振動(dòng)類型意義重大,而此類振動(dòng)模式的識(shí)別鮮有文獻(xiàn)報(bào)道。
本文提出了一種環(huán)境振動(dòng)狀態(tài)識(shí)別方法。通過(guò)壓電能量采集器獲取振動(dòng)狀態(tài)信息,利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)算法處理壓電能量采集器輸出電壓信號(hào),實(shí)現(xiàn)在能量采集器發(fā)電的同時(shí),識(shí)別出敲擊或搖晃等振動(dòng)模式。同時(shí),設(shè)計(jì)了基于FPGA的驗(yàn)證系統(tǒng),通過(guò)算法運(yùn)行完成實(shí)時(shí)識(shí)別的功能驗(yàn)證。
振動(dòng)閾值觸發(fā)壓電能量采集器結(jié)構(gòu)如圖1(a),(b)所示。該能量采集器采用兩級(jí)振子結(jié)構(gòu),其中,外框耦合環(huán)境振動(dòng)狀態(tài),通過(guò)磁能耦合激勵(lì)內(nèi)框發(fā)電諧振子產(chǎn)生諧振,進(jìn)而產(chǎn)生電能和感知信息。當(dāng)振動(dòng)強(qiáng)度小于磁能耦合閾值時(shí),兩級(jí)之間無(wú)法克服磁排斥力,只能在平衡位置小幅振動(dòng);當(dāng)振動(dòng)強(qiáng)度大于閾值時(shí),磁能耦合克服磁屏障力,進(jìn)而觸發(fā)發(fā)電振子諧振發(fā)電。
圖1 振動(dòng)閾值觸發(fā)壓電能量采集器結(jié)構(gòu)
在振動(dòng)閾值觸發(fā)壓電能量采集器發(fā)電的同時(shí),其輸出信號(hào)可以用于振動(dòng)狀態(tài)識(shí)別。當(dāng)振動(dòng)強(qiáng)度低于閾值時(shí),認(rèn)為沒(méi)有振動(dòng)事件發(fā)生;當(dāng)振動(dòng)強(qiáng)度高于閾值時(shí),采集器觸發(fā)且不同振動(dòng)模式(敲擊、搖晃)下輸出電壓模式不同,因此可以通過(guò)電壓信號(hào)識(shí)別不同的振動(dòng)模式。
傳統(tǒng)機(jī)器學(xué)習(xí)方法需要人為提取特征,深度學(xué)習(xí)是一種端到端的方法,無(wú)需額外的特征提取過(guò)程,通過(guò)網(wǎng)絡(luò)自身學(xué)習(xí)分類任務(wù)中最具判別力的有用特征[6]。CNN是深度學(xué)習(xí)算法中的基本結(jié)構(gòu)之一,一般包含卷積層、池化層和全連接層。
1)卷積層
卷積層利用多個(gè)卷積核對(duì)輸入數(shù)據(jù)進(jìn)行卷積處理提取特征,輸入輸出均稱為特征圖。相比于全連接層,卷積層具有網(wǎng)絡(luò)局部連接和卷積核參數(shù)共享的特點(diǎn),能夠在參數(shù)較少的情況下提取特征。卷積層可以定義為
ai=f(ai-1*Wi+bi)
(1)
式中ai-1為第i層的輸入特征圖,ai為第i層的輸出,Wi為第i層的卷積核,bi為卷積核的偏置,*為卷積操作,f為激活函數(shù),通常選取ReLU函數(shù),進(jìn)行非線性變換。其運(yùn)算式為
f(x)=max(0,x)
(2)
2)池化層
池化層作用是對(duì)輸入特征圖進(jìn)行降采樣,在實(shí)現(xiàn)數(shù)據(jù)降維的同時(shí)進(jìn)一步提取主要特征信息。常用池化操作為最大池化和平均池化。池化層可以定義為
ai=g(down(ai-1))
(3)
式中down為下采樣函數(shù),g為池化函數(shù)。
3)全連接層
池化層得到的特征圖需要轉(zhuǎn)換成1維向量,再輸入全連接層實(shí)現(xiàn)分類。全連接層可以定義為
ai=σ(Wiai-1+bi)
(4)
式中Wi和bi分別為第i層的權(quán)重和偏置,σ為激活函數(shù)。
為了獲取訓(xùn)練數(shù)據(jù),將能量采集器放置在激振器(JZK—10)上,利用激振器模擬搖晃和敲擊兩種振動(dòng)模式,其中,搖晃理想化為正弦振動(dòng),敲擊近似為半正弦脈沖振動(dòng),通過(guò)存儲(chǔ)記錄儀(MR8880—21)記錄能量采集器的輸出電壓,采樣率為1 kHz。在不同頻率(1~7 Hz)和不同振動(dòng)強(qiáng)度(2~6.5 g)下分別獲取搖晃和敲擊兩種振動(dòng)模式下能量采集器的輸出,記錄為兩個(gè)長(zhǎng)時(shí)間序列。由于能量采集器自身具有閾值觸發(fā)特點(diǎn),因此當(dāng)能量采集器觸發(fā)時(shí),再判斷振動(dòng)模式。能量采集器未觸發(fā)時(shí),輸出電壓不會(huì)超過(guò)0.5 V。因此對(duì)于采集到的兩個(gè)長(zhǎng)時(shí)間序列,分別從第一個(gè)數(shù)據(jù)開(kāi)始遍歷,當(dāng)該點(diǎn)電壓大于0.5 V時(shí),以該點(diǎn)為起點(diǎn)取連續(xù)的500個(gè)數(shù)據(jù)作為一個(gè)樣本并打上標(biāo)簽(搖晃為0,敲擊為1),如圖2所示。最終獲得7 000個(gè)樣本,包含3 500個(gè)搖晃樣本和3 500個(gè)敲擊樣本。
圖2 樣本構(gòu)造示意
Lecun Y等人[7]指出一維CNN適用于序列數(shù)據(jù),二維CNN適用于圖像數(shù)據(jù),三維CNN適用于視頻數(shù)據(jù)。能量采集器輸出電壓信號(hào)為一維數(shù)據(jù),因此卷積核采用一維結(jié)構(gòu)。在傳統(tǒng)CNN結(jié)構(gòu)的基礎(chǔ)上針對(duì)參數(shù)量和計(jì)算量做改進(jìn),降低模型對(duì)FPGA硬件實(shí)現(xiàn)的資源需求。由于能量采集器輸出電壓數(shù)據(jù)變化較為緩慢,因此,模型的第一層為最大池化層S1,池化窗口寬度為5,在提取特征的同時(shí)減少后續(xù)運(yùn)算量。第二層和第三層分別為卷積層C1,C2,用來(lái)提取特征。借鑒輕量化網(wǎng)絡(luò)模型SqueezeNet[8]中用1×1卷積核代替3×3卷積核的思路,并結(jié)合一維卷積特點(diǎn),卷積層C2濾波器長(zhǎng)度設(shè)為1,有效降低了參數(shù)量。第四層為全局最大池化層S2,降低進(jìn)入全連接層的數(shù)據(jù)維度。第五層全連接層實(shí)現(xiàn)最終的分類,為了防止過(guò)擬合全局最大池化層后使用Dropout[9]方法。最終模型結(jié)構(gòu)如圖3所示。
圖3 CNN模型結(jié)構(gòu)
構(gòu)建的CNN模型進(jìn)行算法驗(yàn)證的軟件環(huán)境為:Python語(yǔ)言和Tensorflow深度學(xué)習(xí)框架。模型的目標(biāo)函數(shù)為交叉熵?fù)p失函數(shù),優(yōu)化算法為Adam[10]。模型的評(píng)價(jià)指標(biāo)為準(zhǔn)確率,即模型正確分類的樣本個(gè)數(shù)占總個(gè)數(shù)的比例。對(duì)于7 000個(gè)樣本數(shù)據(jù),通過(guò)分層抽樣取出4 900個(gè)樣本用于訓(xùn)練,2 100個(gè)樣本用于測(cè)試。神經(jīng)網(wǎng)絡(luò)的參數(shù)一般根據(jù)人為經(jīng)驗(yàn)設(shè)定,往往難以確定。通過(guò)不同超參數(shù)模型的測(cè)試準(zhǔn)確率對(duì)比,尋找模型的相對(duì)最優(yōu)結(jié)果。表1所示為模型在不同超參數(shù)下的測(cè)試準(zhǔn)確率,綜合對(duì)比后選取實(shí)驗(yàn)3作為CNN的超參數(shù)配置。
表1 不同超參數(shù)下測(cè)試集準(zhǔn)確率
將構(gòu)建的CNN模型與機(jī)器學(xué)習(xí)算法邏輯回歸(logistic regression,LR)、K最近鄰(K-nearest neighbor,KNN)法、支持向量機(jī)(support vector machine,SVM)進(jìn)行對(duì)比。傳統(tǒng)機(jī)器學(xué)習(xí)算法需要人為提取特征,本文從時(shí)域和頻域共提取8個(gè)常用特征,時(shí)域特征為最大值、最小值、均值、標(biāo)準(zhǔn)差、均方根;頻域特征為幅度譜最大值、0~100 Hz頻段幅值的和、400~500 Hz頻段幅值的和。表2所示為幾種算法識(shí)別準(zhǔn)確率對(duì)比,在人為提取的特征下KNN法和SVM準(zhǔn)確率均達(dá)到了89 %左右,相比之下CNN模型識(shí)別準(zhǔn)確率最高,達(dá)到96.7 %。
表2 不同算法準(zhǔn)確率
通過(guò)FPGA搭建了振動(dòng)模式實(shí)時(shí)識(shí)別系統(tǒng),系統(tǒng)框圖如圖4所示。其中FPGA芯片為Zynq 7020,AD芯片為AD7606。系統(tǒng)工作時(shí)首先通過(guò)FPGA控制AD以1 kHz采樣率采集一個(gè)數(shù),如果該數(shù)大于0.5,則AD連續(xù)采集500個(gè)數(shù)據(jù)送入FPGA運(yùn)行CNN算法輸出識(shí)別結(jié)果;否則AD繼續(xù)采集下一個(gè)數(shù)。系統(tǒng)測(cè)試現(xiàn)場(chǎng)如圖5所示。
圖4 識(shí)別系統(tǒng)框圖
圖5 系統(tǒng)測(cè)試現(xiàn)場(chǎng)
通過(guò)激振器模擬5 Hz敲擊和搖晃,圖6所示為FPGA的輸出。當(dāng)沒(méi)有振動(dòng)事件發(fā)生時(shí),輸出電壓接近0 V,F(xiàn)PGA輸出識(shí)別結(jié)果00;當(dāng)發(fā)生敲擊事件時(shí),能量采集器觸發(fā)且輸出電壓經(jīng)分壓后峰值達(dá)到2 V左右,F(xiàn)PGA在0.6 s內(nèi)輸出01;當(dāng)發(fā)生搖晃事件時(shí),輸出電壓經(jīng)分壓后峰值同樣達(dá)到2 V左右,F(xiàn)PGA在0.6 s內(nèi)輸出10。對(duì)1~7 Hz的敲擊和搖晃分別進(jìn)行多次測(cè)試,在35次搖晃測(cè)試中FPGA全部識(shí)別成功,在35次敲擊測(cè)試中FPGA識(shí)別錯(cuò)誤3次,測(cè)試準(zhǔn)確率達(dá)到95.7 %。
圖6 識(shí)別結(jié)果
基于振動(dòng)閾值觸發(fā)壓電能量采集器,采用CNN算法,通過(guò)FPGA驗(yàn)證系統(tǒng),實(shí)現(xiàn)了搖晃和敲擊兩種振動(dòng)模式的識(shí)別,實(shí)際測(cè)試準(zhǔn)確率可達(dá)96.7 %。實(shí)驗(yàn)結(jié)果驗(yàn)證了識(shí)別方法的有效性和正確性,使得壓電能量采集器在發(fā)電的同時(shí)實(shí)現(xiàn)了信息感知以及狀態(tài)識(shí)別的智能自感知目的。