彭子韜+許鵬+沈曉燕+吳芳
摘 要: 為了改善殘疾人生活水平和促進(jìn)醫(yī)療事業(yè)發(fā)展,提出一種基于神經(jīng)網(wǎng)絡(luò)的假肢無(wú)線控制系統(tǒng)設(shè)計(jì)方案。該系統(tǒng)以STM32為核心芯片,通過(guò)采集上肢肱二頭肌、肱三頭肌、指淺屈肌、指伸肌4塊肌肉的肌電信號(hào),使用BP神經(jīng)網(wǎng)絡(luò)與SOFM神經(jīng)網(wǎng)絡(luò)相結(jié)合對(duì)肌電信號(hào)進(jìn)行模式識(shí)別,實(shí)時(shí)控制肌電假肢的完成伸臂、屈臂、腕內(nèi)旋、腕外旋、握拳、張手6種動(dòng)作行為。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)對(duì)6種動(dòng)作的整體識(shí)別率可達(dá)97%,并且采用無(wú)線實(shí)時(shí)的控制方式,能夠更方便地幫助部分肢體殘疾患者完成這些基本的操作行為。
關(guān)鍵詞: 神經(jīng)網(wǎng)絡(luò); 肌電信號(hào); 模式識(shí)別; STM32; 無(wú)線控制; 肌電假肢
中圖分類號(hào): TN711?34; TP27 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2018)02?0063?05
Abstract: To improve the living standard of the disabled and promote the development of medical treatment cause, a design scheme of prosthesis wireless control system based on neural network is proposed. With STM32 as the core chip of the system, BP neural network and SOFM neural network are combined for pattern recognition of electromyography (EMG) signal which are collected from four muscles of biceps, triceps, superficial flexor and extensor. Six motions of arm stretching, arm bending, wrist pronating, wrist supinating, fist clenching and hand opening can be accomplished by means of real?time control of myoelectric prostheses. The experimental results show that the overall recognition rate of the system for the six motions can reach to 97%, and the wireless real?time control pattern can help disabled patients who lose part of their limbs perform these basic operations more conveniently.
Keywords: neural network; EMG signal; pattern recognition; STM32; wireless control; myoelectric prosthesis
0 引 言
近20年來(lái),由于意外事故、先天缺陷、疾病、自然災(zāi)害等原因,我國(guó)肢體殘疾人口增長(zhǎng)迅速。根據(jù)中國(guó)殘疾人聯(lián)合會(huì)在2012年發(fā)布的數(shù)據(jù)顯示,截至2010年末,我國(guó)僅僅肢體殘疾的人數(shù)就已經(jīng)達(dá)到2 472萬(wàn)人,相比1987年的755萬(wàn)人增長(zhǎng)了兩倍多 [1]。為了代替失去肢體的部分功能,使截肢者恢復(fù)一定的生活自理和工作能力,假肢應(yīng)運(yùn)而生。另外,某些特定作業(yè)需要在高溫、嚴(yán)寒或高強(qiáng)度輻射等不適合人類進(jìn)入的特殊環(huán)境中進(jìn)行。為了避免危險(xiǎn)環(huán)境對(duì)人們可能造成的傷害,可以通過(guò)安全區(qū)內(nèi)的操作者以遠(yuǎn)程操控機(jī)械臂的方式,完成危險(xiǎn)區(qū)域內(nèi)的作業(yè)。因此,開(kāi)展假肢無(wú)線控制系統(tǒng)的設(shè)計(jì)研究對(duì)于改善殘疾人的生活水平和促進(jìn)醫(yī)療事業(yè)發(fā)展具有十分重要的意義。
目前肌電假肢大多是基于閾值控制的,識(shí)別率比較低,并且操作靈活性差。針對(duì)這些問(wèn)題,模式識(shí)別分類算法被應(yīng)用到假肢控制中[2],本文提出一種基于神經(jīng)網(wǎng)絡(luò)的假肢無(wú)線控制系統(tǒng)設(shè)計(jì)方案。該系統(tǒng)包括“肌電信號(hào)(Electromyography,EMG)”采集、模式識(shí)別和無(wú)線實(shí)時(shí)遙控系統(tǒng),可對(duì)前臂截肢患者安裝的假肢實(shí)現(xiàn)自主控制的6種動(dòng)作;也可對(duì)高溫、嚴(yán)寒或高輻射環(huán)境中的機(jī)械臂實(shí)現(xiàn)無(wú)線遠(yuǎn)程操控,完成特定任務(wù)。
1 系統(tǒng)總體設(shè)計(jì)方案
基于神經(jīng)網(wǎng)絡(luò)算法的肌電信號(hào)模式識(shí)別假肢無(wú)線控制系統(tǒng)的總體設(shè)計(jì)方案如圖1所示。
使用者在使用肌電假肢之前需要通過(guò)肌電信號(hào)采集模塊對(duì)不同類型的動(dòng)作進(jìn)行訓(xùn)練,相比目前肌電信號(hào)訓(xùn)練都在Matlab中完成,本系統(tǒng)對(duì)于肌電信號(hào)的訓(xùn)練在C語(yǔ)言中直接完成。訓(xùn)練結(jié)束后,系統(tǒng)就會(huì)采用神經(jīng)網(wǎng)絡(luò)算法,對(duì)采集到的肌電信號(hào)進(jìn)行模式識(shí)別分類,從而對(duì)相應(yīng)的動(dòng)作做出區(qū)分。對(duì)不同動(dòng)作進(jìn)行賦予不同的編碼,通過(guò)發(fā)送模塊將編碼發(fā)出。編碼到達(dá)接收模塊,首先進(jìn)行解碼行為,區(qū)分出不同的動(dòng)作,再觸發(fā)假肢驅(qū)動(dòng)電路,完成相應(yīng)的動(dòng)作。
2 肌電假肢硬件設(shè)計(jì)
整個(gè)假肢控制系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)兩個(gè)部分組成,肌電假肢硬件電路部分主要模塊如圖2所示,包括肌電信號(hào)采集模塊、肌電信號(hào)處理模塊、無(wú)線傳輸模塊以及電源供電模塊。
2.1 肌電信號(hào)采集
表面肌電信號(hào)(Surface electromyography,sEMG)是一種微弱的由肌肉收縮伴隨產(chǎn)生的非線性非平穩(wěn)生物電信號(hào),包含著重要的神經(jīng)肌肉運(yùn)動(dòng)信息,廣泛應(yīng)用于運(yùn)動(dòng)意圖識(shí)別領(lǐng)域[3]。肌電信號(hào)采集模塊的功能是將人胳膊上特定肌肉的肌電信號(hào)進(jìn)行采集與處理,通過(guò)A/D轉(zhuǎn)換,得到相應(yīng)的數(shù)字信號(hào)。肌電信號(hào)屬于高噪聲背景下的低頻微弱信號(hào),因此肌電信號(hào)采集模塊要盡可能地濾除噪聲,保留有效信號(hào)[4]。endprint
本文使用EB?muscle Sensor V1.2肌電信號(hào)傳感器完成信號(hào)采集。EB?muscle Sensor V1.2傳感器使用雙電源供電,最高3.5 V,最低-3.5 V,內(nèi)置放大電路和濾波電路。
2.2 肌電信號(hào)處理模塊
肌電信號(hào)處理模塊是整個(gè)系統(tǒng)的核心部分,將整個(gè)系統(tǒng)的各個(gè)模塊整合在一起,完成系統(tǒng)的各個(gè)功能。肌電信號(hào)采集完成后送入處理模塊,在該模塊里對(duì)肌電信號(hào)進(jìn)行訓(xùn)練和識(shí)別,得到相應(yīng)的分類數(shù)據(jù),將這些數(shù)據(jù)編碼通過(guò)無(wú)線發(fā)送模塊輸出,控制假肢完成對(duì)應(yīng)的動(dòng)作。本文采用ST公司的STM32F103ZET6作為系統(tǒng)核心芯片,其是32位基于ARM核心的帶512 kB閃存的微控制器。芯片的選擇基于以下三點(diǎn):
1) 擁有ARM32位的Cortex?M3 CPU,最高工作頻率可達(dá)72 MHz,對(duì)肌電信號(hào)這樣復(fù)雜的數(shù)據(jù)進(jìn)行算法處理提供足夠的速度,完成實(shí)時(shí)控制的效果;
2) 集成了大量的外設(shè),包括USB、CAN、11個(gè)定時(shí)器、3個(gè)ADC、13個(gè)通信接口,能很好地實(shí)現(xiàn)與外部電路通信、電源控制等功能;
3) 低功耗:有睡眠、停機(jī)和待機(jī)模式,延長(zhǎng)工作時(shí)間。
2.3 無(wú)線傳輸模塊
肌電信號(hào)采集后,經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)模式識(shí)別分類算法計(jì)算出動(dòng)作類型,將不同的動(dòng)作進(jìn)行編碼,編碼后通過(guò)無(wú)線發(fā)送模塊發(fā)射出,接收模塊在接收到編碼后,進(jìn)行解碼處理,根據(jù)解碼結(jié)果控制假肢完成相應(yīng)的動(dòng)作。本文使用的編解碼器分別是PT2262和PT2272見(jiàn)圖3。
圖3a)為PT2262芯片,A0~A5作為地址位,A6 ~A11既可以作為地址位也可以作為數(shù)據(jù)位。圖3b)中PT2272解碼芯片分為4路并行數(shù)據(jù)型和6路并行數(shù)據(jù)型。采用6路并行數(shù)據(jù)時(shí),對(duì)應(yīng)的地址編碼則變?yōu)?位。此時(shí),只采用A0~A5引腳作為地址位,而A6~A11作為數(shù)據(jù)位,相應(yīng)的PT2262編碼芯片的地址位和數(shù)據(jù)位也需要與PT2272保持一致。
本文考慮到要識(shí)別6種動(dòng)作,因此設(shè)計(jì)過(guò)程中采用6路并行數(shù)據(jù),使用A6 ~ A11作為數(shù)據(jù)位,通過(guò)高低電位即可對(duì)不同動(dòng)作進(jìn)行編碼,例如(1,0,0,0,0,0)對(duì)應(yīng)屈臂動(dòng)作,(0,1,0,0,0,0)對(duì)應(yīng)伸臂動(dòng)作。
3 肌電假肢軟件設(shè)計(jì)
本文設(shè)計(jì)了一套基于神經(jīng)網(wǎng)絡(luò)算法的軟件程序,協(xié)調(diào)硬件部分實(shí)現(xiàn)對(duì)肌電假肢的無(wú)線控制。軟件可以完成三部分功能:肌電信號(hào)實(shí)時(shí)采集、神經(jīng)網(wǎng)絡(luò)模式識(shí)別以及無(wú)線控制。
3.1 肌電信號(hào)實(shí)時(shí)采集
肌電信號(hào)采集部分控制下位機(jī)采集肌電信號(hào),通過(guò)串口將經(jīng)處理過(guò)的肌電信號(hào)顯示在計(jì)算機(jī)上,方便用戶觀察肌電信號(hào)的數(shù)值,同時(shí)也能對(duì)電極放置的情況進(jìn)行調(diào)整。
3.2 肌電信號(hào)神經(jīng)網(wǎng)絡(luò)模式識(shí)別
由于腕外旋和握拳兩種動(dòng)作的肌電信號(hào)差異不明顯,僅僅使用BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)進(jìn)行模式識(shí)別的識(shí)別率不夠高,因此本文使用BP神經(jīng)網(wǎng)絡(luò)算法[5?7]與自組織特征映射網(wǎng)絡(luò)(SOFM)神經(jīng)網(wǎng)絡(luò)相結(jié)合對(duì)采集到的肌電信號(hào)進(jìn)行分類和模式識(shí)別,使用者首先需要對(duì)6種動(dòng)作進(jìn)行訓(xùn)練,訓(xùn)練過(guò)后會(huì)得到一組修正過(guò)的權(quán)值,將權(quán)值重新寫入識(shí)別程序,從而完成對(duì)于不同動(dòng)作的識(shí)別。
3.2.1 BP神經(jīng)網(wǎng)絡(luò)與SOFM神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),于1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP神經(jīng)網(wǎng)絡(luò)算法的學(xué)習(xí)規(guī)則是使用梯度下降法,通過(guò)反向傳播來(lái)不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小[8]。
自組織特征映射(SOFM)神經(jīng)網(wǎng)絡(luò)是自組織網(wǎng)絡(luò)中的一種,所謂的自組織過(guò)程是指學(xué)習(xí)的結(jié)果總是使聚類區(qū)內(nèi)各神經(jīng)元的權(quán)重向量保持向輸入向量逼近的趨勢(shì),從而使具有相近特性的輸入向量聚集在一起。這種結(jié)構(gòu)的網(wǎng)絡(luò)能夠從輸入信息中找出規(guī)律以及關(guān)系,并且根據(jù)這些規(guī)律來(lái)相應(yīng)地調(diào)整網(wǎng)絡(luò),使得以后的輸出與之相適應(yīng)[9]。
3.2.2 BP?SOFM神經(jīng)網(wǎng)絡(luò)算法的實(shí)現(xiàn)
在訓(xùn)練階段,使用6種動(dòng)作的表面肌電信號(hào)樣本進(jìn)行BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練,并且把腕外旋和握拳兩種動(dòng)作歸類為一種輸出。與此同時(shí),使用腕外旋和握拳兩種動(dòng)作的表面肌電信號(hào)對(duì)SOFM神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
在識(shí)別階段,BP神經(jīng)網(wǎng)絡(luò)判斷識(shí)別結(jié)果為曲臂、伸臂、腕內(nèi)旋或張手四種動(dòng)作中的一種,則直接輸出識(shí)別結(jié)果。如果BP神經(jīng)網(wǎng)絡(luò)的判別結(jié)果為腕外旋和握拳兩種動(dòng)作合并后的這一類動(dòng)作,則將該樣本輸入SOFM神經(jīng)網(wǎng)絡(luò)進(jìn)一步識(shí)別,從而識(shí)別出這個(gè)動(dòng)作是腕外旋還是握拳。
訓(xùn)練和識(shí)別過(guò)程分別如圖4a)和圖4b)所示。
BP神經(jīng)網(wǎng)絡(luò)利用一種激活函數(shù)來(lái)描述層與層輸出之間的關(guān)系,從而模擬各層之間的交互聯(lián)系。一種比較常用的激活函數(shù)稱為S型函數(shù):
當(dāng)求出各層的權(quán)系數(shù)之后,可按照之前設(shè)置的精度參數(shù)或循環(huán)次數(shù)等判別是否滿足要求,若滿足要求,則算法結(jié)束,輸出各層權(quán)值。
SOFM神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)過(guò)程與BP神經(jīng)網(wǎng)絡(luò)相似步驟如下:
1) 隨機(jī)初始化權(quán)值,并輸入樣本矢量x,令t=0;
2) 式(9)計(jì)算x與所有前向權(quán)值矢量之間的距離;
5) 令,重新執(zhí)行步驟2),當(dāng)時(shí),說(shuō)明當(dāng)前樣本學(xué)習(xí)完成,繼續(xù)返回步驟1)進(jìn)行其他樣本的學(xué)習(xí),直到所有樣本學(xué)習(xí)完畢。
4 系統(tǒng)測(cè)試與結(jié)果
系統(tǒng)硬件實(shí)物圖如圖5所示, 發(fā)送模塊和接收模塊硬件電路圖如圖6所示。
4.1 模式識(shí)別結(jié)果
實(shí)驗(yàn)時(shí),在前臂肱二頭肌、肱三頭肌、指淺屈肌、指伸肌這四塊肌肉貼上電極,采集伸臂、屈臂、腕內(nèi)旋、腕外旋、張手、握拳6種動(dòng)作時(shí)四塊肌肉的肌電信號(hào)。重復(fù)實(shí)驗(yàn)200次,得到200組數(shù)據(jù),其中150組作為訓(xùn)練樣本,50組作為識(shí)別試樣樣本。僅僅使用BP神經(jīng)網(wǎng)絡(luò)識(shí)別結(jié)果如表1所示,使用BP?SOFM神經(jīng)網(wǎng)絡(luò)的識(shí)別結(jié)果如表2所示。endprint
對(duì)比表1和表2 可以看出,使用BP神經(jīng)網(wǎng)絡(luò)與SOFM神經(jīng)網(wǎng)絡(luò)相結(jié)合可以大大提高腕外旋和握拳兩種動(dòng)作的識(shí)別率。
4.2 在線識(shí)別結(jié)果
將修正后的權(quán)值送入STM32系統(tǒng)中,實(shí)現(xiàn)在線識(shí)別。在線實(shí)驗(yàn)中,每個(gè)動(dòng)作做30次,觀察串口得到的數(shù)據(jù)以及假肢的實(shí)時(shí)動(dòng)作,結(jié)果如表3所示。
通過(guò)對(duì)表3中數(shù)據(jù)分析計(jì)算可知,利用神經(jīng)網(wǎng)絡(luò)算法的肌電信號(hào)識(shí)別率可達(dá)97%,相對(duì)于傳統(tǒng)的閾值識(shí)別算法86.4%的識(shí)別率[10]高出了10%,大大提高了動(dòng)作識(shí)別率。
5 結(jié) 語(yǔ)
本文設(shè)計(jì)了一套基于神經(jīng)網(wǎng)絡(luò)的肌電假肢無(wú)線控制系統(tǒng),采集上肢4塊肌肉的肌電信號(hào),經(jīng)過(guò)BP?SOFM神經(jīng)網(wǎng)絡(luò)算法模式識(shí)別,通過(guò)無(wú)線傳輸方式,實(shí)現(xiàn)了屈臂、伸臂、腕外旋、腕內(nèi)旋、張手、握拳6種動(dòng)作。整個(gè)系統(tǒng)軟硬件相結(jié)合,對(duì)于肌電信號(hào)的識(shí)別率總體可以達(dá)到97%,并且識(shí)別速度很快,能夠?qū)崿F(xiàn)實(shí)時(shí)控制的目標(biāo)。
參考文獻(xiàn)
[1] 中國(guó)殘疾人聯(lián)合會(huì).2010年末全國(guó)殘疾人總數(shù)及各類、不同殘疾等級(jí)人數(shù)[EB/OL].[2013?01?29].http://www.cdpf.org.cn/sjzx/cjrgk/201206/t20120626_387581.shtml.
China Disabled Persons′ Federation. The total number of the disabled and the number of each level of the disabled in China at the end of 2010 [EB/OL]. [2013?01?29]. http://www.cdpf.org.cn/sjzx/cjrgk/201206/t20120626_387581.shtml.
[2] LI G, SCHULTZ A E, KUIKEN T A. Quantifying pattern recognition?based myoelectric control of multifunctional transradial prostheses [J]. IEEE transactions on neural system and rehabilitation engineering, 2010, 18(2): 185?192.
[3] 丁其川,熊安斌,趙新剛,等.基于表面肌電的運(yùn)動(dòng)意圖識(shí)別方法研究及應(yīng)用綜述[J].自動(dòng)化學(xué)報(bào),2016,42(1):13?25.
DING Qichuan, XIONG Anbin, ZHAO Xingang, et al. Research and application of motion intention recognition method based on surface electromyography [J]. Journal of automation, 2016, 42(1): 13?25.
[4] 田嵐,姜乃夫,李光林.基于微處理器的多功能肌電假肢控制系統(tǒng)[J].集成技術(shù),2013,2(4):14?19.
TIAN Lan, JIANG Naifu, LI Guanglin. Multifunctional myoelectric prosthetic control system based on microprocessor [J]. Integration technology, 2013, 2(4): 14?19.
[5] 孫保峰. 基于神經(jīng)網(wǎng)絡(luò)的表面肌電信號(hào)分類方法研究[D].長(zhǎng)春:吉林大學(xué),2013.
SUN Baofeng. Classification of surface EMG signals based on neural network [D]. Changchun: Jilin University, 2013.
[6] ZHANG Q H, MENG X H, GUO H C, et al. Obstacles based on BP neural network pattern recognition [C]// Proceedings of 2012 International Conference on Mechatronics and Automation (ICMA). Chengdu: IEEE, 2012: 2574?2581.
[7] LI Y, TIAN Y, CHEN W. Multi?pattern recognition of sEMG based on improved BP neural network algorithm [C]// Proceedings of Chinese Control Conference. Beijing: Chinese Academy of Science, 2010(7): 2867?2872.
[8] 朱福珍,吳斌.SOFM網(wǎng)絡(luò)及其在Matlab中的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2005,21(12):163?165.
ZHU Fuzhen, WU Bin. SOFM network and its implementation in MATLAB [J]. Microcomputer information, 2005, 21(12): 163?165.
[9] 李萍,曾令可,稅安澤,等.基于MATLAB的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2008,25(4):149?150.
LI Ping, ZENG Lingke, SHUI Anze, et al. Design of BP neural network prediction system based on MATLAB [J]. Computer application and software, 2008, 25(4): 149?150.
[10] 喻洪流,胡加華.基于動(dòng)態(tài)閾值的肌電假手動(dòng)作控制方法研究[J].現(xiàn)代科學(xué)儀器,2011(3):43?45.
YU Hongliu, HU Jiahua. Research on control method of dynamic threshold based on the action of prosthetic hand [J]. Modern scientific instruments, 2011(3): 43?45.endprint