張朝柱,顧曉婷,張藝漫
(哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱150001)
人體運(yùn)動(dòng)過(guò)程中,肌肉表面會(huì)產(chǎn)生一種電生理信號(hào),通過(guò)表面電極可以得到這種電信號(hào),所采集到的電信號(hào)就是表面肌電信號(hào)(surface Electromyography,sEMG)。所有肢體動(dòng)作的完成都是通過(guò)肌肉收縮來(lái)實(shí)現(xiàn)的,通過(guò)對(duì)表面肌電信號(hào)處理分析可以得到不同運(yùn)動(dòng)的信息[1],進(jìn)而可以控制假肢的動(dòng)作,這對(duì)截肢者來(lái)說(shuō)是一個(gè)福音。隨著21世紀(jì)的到來(lái),智能化假肢成為核心[2],手勢(shì)動(dòng)作識(shí)別更是其中的關(guān)鍵一步。同時(shí),手勢(shì)動(dòng)作識(shí)別為人機(jī)交互提供了一種更快速、更簡(jiǎn)潔、更方便、更有效且更自然的方式,使其受到廣泛關(guān)注并在現(xiàn)實(shí)生活中發(fā)揮了重要作用。文獻(xiàn)[3]介紹了一些傳統(tǒng)的例如支持向量機(jī)、人工神經(jīng)網(wǎng)絡(luò)等基于表面肌電信號(hào)的手勢(shì)識(shí)別算法。但這些傳統(tǒng)的手勢(shì)識(shí)別需要的人工特征提取方法既費(fèi)時(shí)又費(fèi)力,而且為了提高識(shí)別的準(zhǔn)確率,所需要提取的特征數(shù)量和質(zhì)量要求很高,這對(duì)于傳統(tǒng)的手勢(shì)識(shí)別來(lái)說(shuō)是一個(gè)瓶頸。針對(duì)此問(wèn)題,提出了一種基于深度CNN的表面肌電信號(hào)的手勢(shì)識(shí)別算法[4]。
CNN是神經(jīng)網(wǎng)絡(luò)的一種,它屬于一種多層感知器(MLP)。近年來(lái)CNN以驚人的速度迅猛發(fā)展,是時(shí)下一項(xiàng)研究的熱點(diǎn)。在20世紀(jì)60年代,Hubel和Wiesel在研究貓腦皮層中用于局部敏感和方向選擇的神經(jīng)元時(shí),發(fā)現(xiàn)其獨(dú)特的網(wǎng)絡(luò)結(jié)構(gòu)可以有效地降低反饋神經(jīng)網(wǎng)絡(luò)的復(fù)雜性,繼而提出了CNN[5]。如今,CNN廣泛地應(yīng)用在圖像識(shí)別[6]、視頻識(shí)別[7]和語(yǔ)音識(shí)別[8]等方面。對(duì)于肌電信號(hào)或者腦電信號(hào)等生物電信號(hào)的分類來(lái)說(shuō),很少有人用CNN去代替?zhèn)鹘y(tǒng)的識(shí)別分類方法。CNN的權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)和局部感受野使其更類似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量[9]。當(dāng)網(wǎng)絡(luò)的輸入樣本多維時(shí),CNN可以將其原始的特征空間直接作為輸入,這樣就避免了傳統(tǒng)識(shí)別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過(guò)程。因此,相比較于手工提取生物電信號(hào)的特征來(lái)說(shuō),CNN更加省時(shí)省力,而且在很大程度上解決了人工特征提取方法經(jīng)驗(yàn)的問(wèn)題。
CNN主要結(jié)構(gòu)包含3層:輸入層、隱藏層和輸出層。其中,隱藏層又是由多層神經(jīng)網(wǎng)絡(luò)組成,主要包括卷積層和降采樣層2種網(wǎng)絡(luò)類型,卷積層和降采樣層相互配合,逐層對(duì)特征進(jìn)行提取,最后再通過(guò)全連接層進(jìn)行分類。
卷積層又被稱為特征提取層,是CNN的核心部分。卷積層是通過(guò)卷積核以固定規(guī)則移動(dòng)對(duì)輸入的樣本進(jìn)行局部特征提取,局部連接是指卷積層上的每個(gè)神經(jīng)元和前一層的局部區(qū)域的神經(jīng)元進(jìn)行連接,這個(gè)局部區(qū)域稱為局部感受野。同一特征的神經(jīng)元使用一組相同的權(quán)值與上一層進(jìn)行局部連接,這樣網(wǎng)絡(luò)所訓(xùn)練的參數(shù)就會(huì)大量減少,這就是權(quán)值共享。卷積層每個(gè)神經(jīng)元的輸入來(lái)自前一層特征圖中固定區(qū)域的神經(jīng)元,區(qū)域的大小由卷積核大小決定。一個(gè)CNN,其卷積核的大小一般是固定的,但是卷積核的參數(shù)是通過(guò)訓(xùn)練樣本訓(xùn)練得到的。
卷積核是卷積層的重要組成部分,它就像一個(gè)特征矩陣,在進(jìn)行卷積時(shí),卷積核在輸入上一固定的步長(zhǎng)進(jìn)行移動(dòng),然后與局部感受野上的元素進(jìn)行卷積運(yùn)算,這樣就得到了感受野的卷積值,移動(dòng)完成后,得到了輸入樣本的特征矩陣,即特征圖。卷積層主要參數(shù)包括卷積核的個(gè)數(shù)、大小以及偏置數(shù)。實(shí)際應(yīng)用的卷積網(wǎng)絡(luò)之中,一般采用多個(gè)卷積核,這樣就可以獲得多個(gè)特征。卷積層的數(shù)學(xué)表達(dá)式為:
(1)
式中,f(x)是激活函數(shù);b是偏置;ωn,m是卷積核(n,m)位置對(duì)應(yīng)的權(quán)值;N,M是卷積核的長(zhǎng)和寬;u是上一層輸出的特征。
激活函數(shù)就是對(duì)卷積層的輸出進(jìn)行非線性操作,來(lái)提取更多特征信息。在此,選用ReLU函數(shù)作為激活函數(shù)。ReLU函數(shù)數(shù)學(xué)表達(dá)式為:
f(x)=max(0,x)。
(2)
輸入樣本在經(jīng)過(guò)卷積層后得到的特征維數(shù)較大,若直接使用這些特征值進(jìn)行分類,會(huì)造成計(jì)算量大、過(guò)于復(fù)雜等后果。因此,在利用所提取的特征訓(xùn)練分類器之前,需要對(duì)卷積層得到的特征進(jìn)行降維。這時(shí)就需要降采樣層進(jìn)行處理,降采樣層又稱為特征映射層或池化層。它通過(guò)對(duì)上一層輸出的特征圖上的不重疊部分進(jìn)行函數(shù)變換來(lái)得到不變特征[10]。降采樣層是對(duì)卷積層輸出的特征圖進(jìn)行聚合,降低特征維度,同時(shí),它還對(duì)比例縮放、傾斜、平移或其他變形形式有高度不變性。一般來(lái)說(shuō),常用的降采樣的方法包括最大池化法(Max Pooling)和平均池化法(Mean Pooling)2種。
通常,卷積層會(huì)使用多種卷積核,相應(yīng)的輸出就會(huì)有多個(gè)相同的并列特征圖,全連接層的存在就是為了把這些特征圖融合起來(lái)分類,這樣也可以增強(qiáng)網(wǎng)絡(luò)的非線性映射能力。全連接層一般連接在最后一層降采樣層和分類器之間,可以感知全局的信息,將經(jīng)過(guò)卷積層和降采樣層學(xué)習(xí)得到的局部特征進(jìn)行整合,得到全局特征。全連接層的每一個(gè)神經(jīng)元都與前一層的所有神經(jīng)元進(jìn)行連接,同一層的神經(jīng)元互不連接。全連接層的表達(dá)式為:
y=σ(Wh+b1),
(3)
式中,σ(·)表示分類函數(shù);W表示連接權(quán)值;h表示隱藏輸出;b1表示偏置。分類函數(shù)選擇Softmax函數(shù),Softmax分類器屬于邏輯回歸推廣的多分類器的一種,經(jīng)過(guò)Softmax分類后得到在(0,1)區(qū)間的輸出值,這些值加起來(lái)和是1。輸出值代表每個(gè)輸入樣本所對(duì)應(yīng)的類別標(biāo)簽,于是網(wǎng)絡(luò)的輸出就是最大輸出值所對(duì)應(yīng)的類別標(biāo)簽。它應(yīng)用在全連接層之后,會(huì)得到屬于每一類別樣本的概率分布[11]。Softmax分類器表達(dá)式為:
(4)
式中,N為矢量x的長(zhǎng)度。
一個(gè)CNN計(jì)算過(guò)程包括預(yù)測(cè)和訓(xùn)練2部分。第1部分預(yù)測(cè)過(guò)程是通過(guò)前向計(jì)算得到網(wǎng)絡(luò)的輸出值;第2部分訓(xùn)練過(guò)程是通過(guò)反向傳播計(jì)算對(duì)權(quán)值系數(shù)進(jìn)行調(diào)整及更新,損失函數(shù)指此時(shí)模型的輸出值與真實(shí)目標(biāo)值的差距[12],當(dāng)損失函數(shù)達(dá)到極小值時(shí),網(wǎng)絡(luò)的權(quán)值系數(shù)停止更新。
在此選用的訓(xùn)練方法為Adam算法,一種學(xué)習(xí)率自適應(yīng)的梯度下降算法[13],具體操作步驟是:
Require:步長(zhǎng)ε
Require:矩估計(jì)的指數(shù)衰減率,ρ1和ρ2在區(qū)間[0,1)內(nèi)
Require:用于數(shù)值穩(wěn)定的小常數(shù)δ
Require:初始參數(shù)θ
初始化一階和二階矩變量s=0,r=0
初始化時(shí)間步t=0
while 沒(méi)有達(dá)到停止時(shí)間準(zhǔn)則 do
從訓(xùn)練樣本集中采包含m個(gè)樣本{x(1),…,x(m)}的小批量,對(duì)應(yīng)目標(biāo)為y(i)
L(·)為損失函數(shù)
t←t+1
更新有偏一階矩估計(jì):s←ρ1s+(1-ρ1)g
更新有偏二階矩估計(jì):r←ρ2r+(1-ρ2)g⊙g,⊙表示對(duì)應(yīng)元素乘積
應(yīng)用更新:θ←θ+Δθ
end while
批次歸一化[15](Batch Normalization)是指將數(shù)據(jù)按一定批次進(jìn)行歸一化處理。使用批次歸一化可以讓網(wǎng)絡(luò)模型訓(xùn)練速度加快,提高網(wǎng)絡(luò)精準(zhǔn)度和模型的泛華能力。批次歸一化的具體操作過(guò)程如下:
輸入:批處理(mini-batch)輸入x:B={x1,…,m}
輸出:規(guī)范化后的網(wǎng)絡(luò)響應(yīng){yi=BNγ,β(xi)}
⑤ 返回學(xué)習(xí)參數(shù)γ和β
本文所使用的數(shù)據(jù)來(lái)源于Ninapro數(shù)據(jù)庫(kù)[16],該數(shù)據(jù)庫(kù)中有7個(gè)數(shù)據(jù)集,本文選取了DB2健康個(gè)體數(shù)據(jù)集。DB2數(shù)據(jù)集使用其中9個(gè)個(gè)體,數(shù)據(jù)集包含50種手勢(shì)動(dòng)作,其中一種為休息動(dòng)作,17種基礎(chǔ)手勢(shì)動(dòng)作,23種手腕部動(dòng)作以及9種手指動(dòng)作。本文分別對(duì)9種手指動(dòng)作以及所有49種手勢(shì)動(dòng)作進(jìn)行識(shí)別。數(shù)據(jù)集中每種動(dòng)作的采樣頻率是2 kHz,采用12通道表面電極進(jìn)行采集,其中8個(gè)電極均勻地分布在前臂肱骨關(guān)節(jié),2個(gè)電極置于指淺屈肌和指淺伸肌的主要活動(dòng)點(diǎn)上,最后2個(gè)電極放置在肱二頭肌和肱三頭肌主要活動(dòng)點(diǎn),每種動(dòng)作重復(fù)6次,完成一次動(dòng)作需要5 s,休息3 s,而且利用Hampel濾波器去除了所收集到的表面肌電信號(hào)的50 Hz工頻干擾。
對(duì)DB2數(shù)據(jù)集的樣本數(shù)據(jù)提取均方根值特征,均方根值廣泛應(yīng)用在EMG信號(hào)的特征提取之中,起初是用來(lái)計(jì)算正弦信號(hào)的電壓值及功率,應(yīng)用在EMG信號(hào)上反映信號(hào)功率,衡量信號(hào)能量,可以體現(xiàn)各組織在肢體運(yùn)動(dòng)過(guò)程中的貢獻(xiàn)值。
假設(shè)一個(gè)采樣點(diǎn)數(shù)是n的EMG信號(hào)樣本xi(i=0,1,2,…,n-1),均方根值RMS的具體計(jì)算公式為:
(5)
針對(duì)手勢(shì)動(dòng)作識(shí)別設(shè)計(jì)了一種CNN架構(gòu),如圖1所示。網(wǎng)絡(luò)輸入的是經(jīng)過(guò)時(shí)域特征均方根值提取后的信號(hào),得到12*30的輸入矩陣,也就是網(wǎng)絡(luò)的輸入層。接下來(lái)是2層卷積層,第1個(gè)卷積層的卷積核大小1*12,卷積核個(gè)數(shù)32,步長(zhǎng)為1;第2個(gè)卷積層的卷積核大小3*3,卷積核個(gè)數(shù)32,步長(zhǎng)也為1,2層卷積層可以提取底層特征。第2層卷積層經(jīng)過(guò)步長(zhǎng)為1,3*3的最大池化層。第3層卷積核大小5*5,輸出維度64,其他同第2層一樣。第4層和第5層為2個(gè)卷積層,卷積核大小分別為2*1和1*1,步長(zhǎng)均為1。第6層為全連接層。最后一層為輸出層,利用Softmax函數(shù)對(duì)手勢(shì)動(dòng)作進(jìn)行分類,得到每種手勢(shì)動(dòng)作的識(shí)別概率。此外,每個(gè)隱藏層均包含一個(gè)批次歸一化以及ReLU激活函數(shù),并且在全連接層包含一個(gè)概率為0.5的Dropout,并且卷積層以及池化層均進(jìn)行補(bǔ)零操作。
圖1 本文提出的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)框架
首先對(duì)DB2數(shù)據(jù)集的每一種類別的手勢(shì)動(dòng)作進(jìn)行均方根值提取,然后將處理后的數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)組、驗(yàn)證數(shù)據(jù)組以及測(cè)試數(shù)據(jù)組,它們的比例為7∶1∶2。本文CNN使用的學(xué)習(xí)率(Learning Rate)設(shè)置為0.001,訓(xùn)練20 000次。CNN模型選擇交叉熵?fù)p失函數(shù)作為優(yōu)化目標(biāo)。對(duì)9種手勢(shì)和49種手勢(shì)動(dòng)作的訓(xùn)練結(jié)果如圖2所示。
圖2 9種手勢(shì)和49種手勢(shì)動(dòng)作訓(xùn)練識(shí)別率曲線
由圖2可知,該CNN模型對(duì)9種動(dòng)作的識(shí)別準(zhǔn)確度要高于49種手勢(shì)動(dòng)作識(shí)別準(zhǔn)確度。在訓(xùn)練6 000步之前,訓(xùn)練9種手勢(shì)動(dòng)作數(shù)據(jù)的識(shí)別準(zhǔn)確度上升速度要高于訓(xùn)練49種手勢(shì)動(dòng)作數(shù)據(jù)的識(shí)別準(zhǔn)確度上升速度,但都達(dá)到了90%以上,在這之后,識(shí)別準(zhǔn)確度緩慢地增加并逐漸趨于穩(wěn)定。訓(xùn)練過(guò)程中的損失曲線圖如圖3所示,隨著步長(zhǎng)的逐漸增加,損失逐漸降低并趨于穩(wěn)定。
圖3 9種手勢(shì)和49種手勢(shì)動(dòng)作測(cè)試識(shí)別率曲線
對(duì)9種手勢(shì)和49種手勢(shì)動(dòng)作測(cè)試識(shí)別率曲線如圖4所示。通過(guò)深度CNN模型對(duì)9種手勢(shì)和49種手勢(shì)動(dòng)作識(shí)別結(jié)果如表1所示。
圖4 9種手勢(shì)和49種手勢(shì)動(dòng)作訓(xùn)練損失函數(shù)
表1 9種及49種手勢(shì)動(dòng)作識(shí)別結(jié)果
手勢(shì)動(dòng)作類別CNN算法識(shí)別結(jié)果/%999.104964.58
由圖4可知,對(duì)9種手勢(shì)的識(shí)別準(zhǔn)確度要遠(yuǎn)遠(yuǎn)高于49種手勢(shì)動(dòng)作識(shí)別準(zhǔn)確度。在訓(xùn)練2 000步之前,訓(xùn)練9種手勢(shì)動(dòng)作數(shù)據(jù)的識(shí)別準(zhǔn)確度上升速度要高于訓(xùn)練49種手勢(shì)動(dòng)作數(shù)據(jù)的識(shí)別準(zhǔn)確度上升速度,由表1可知,對(duì)于DB2健康個(gè)體數(shù)據(jù)集9種手勢(shì)識(shí)別率是99.10%,對(duì)49種手勢(shì)動(dòng)作進(jìn)行識(shí)別得到的準(zhǔn)確率為64.58%,比9種手勢(shì)識(shí)別率低了34.52%,這是由于手勢(shì)動(dòng)作類別的成倍增加,難免會(huì)有一些相似的動(dòng)作,使得相似的手勢(shì)動(dòng)作所提取的特征相近,使用深度CNN識(shí)別時(shí),較難分辨,因此實(shí)驗(yàn)結(jié)果較差。
近年來(lái),不論是人機(jī)交互的提供方式還是康復(fù)醫(yī)學(xué)或臨床醫(yī)學(xué)等領(lǐng)域,手勢(shì)識(shí)別成為研究焦點(diǎn)。于是,針對(duì)健康個(gè)體的9種手勢(shì)和49種手勢(shì)動(dòng)作,采用深度CNN模型進(jìn)行識(shí)別。該模型結(jié)構(gòu)使用不同尺寸卷積核對(duì)輸入的表面肌電信號(hào)進(jìn)行特征提取,來(lái)獲取信息,經(jīng)過(guò)降采樣及全連接層處理后得到更深的識(shí)別信息,根據(jù)仿真測(cè)試結(jié)果可知,隨著手勢(shì)動(dòng)作數(shù)量的增加,不同手勢(shì)動(dòng)作的特征相似性變大,識(shí)別率會(huì)有較明顯的下降。在今后,為了提高49種手勢(shì)動(dòng)作識(shí)別率,對(duì)更多的個(gè)體進(jìn)行測(cè)試,對(duì)深度CNN進(jìn)一步優(yōu)化。同時(shí),本文主要針對(duì)的是健康個(gè)體,接下來(lái)可以對(duì)殘疾個(gè)體進(jìn)行手勢(shì)動(dòng)作測(cè)試,離實(shí)現(xiàn)智能假肢的控制更進(jìn)一步。