王文銳,周 旭,李文康,3,吳憶東,楊先軍*,姚志明
(1.中國科學院合肥物質科學研究院,合肥 230031;2.中國科學技術大學自動化系,合肥 230026;3.安徽大學電子信息工程學院,合肥 230601)
隨著年齡的增長,人體各項組織器官結構及功能也在逐漸退化,健康狀況也發生顯著改變,抵抗力下降,各種慢性疾病患病率增加,日常生活能力逐步喪失,大多都體現在運動機能衰退上。在運動機能的衰退中,手部精細動作控制能力的減弱十分普遍。手部精細動作控制能力主要是指個體憑借手以及手指等部位的小肌或小肌群的運動,在感知覺、注意等心理活動的配合下完成指定任務的能力[1]。如日常自主生活能力中常見的抓握、撿拾、捏合等動作的完成能力。
在對手部精細動作控制能力的評估研究方面,目前大多數還是基于傳統的量表評估、圖像描繪法、手指敲擊試驗等[1]。另外數據手套[2]、指頻測試儀[3]等智能傳感設備也逐步應用于精細動作控制能力評估中。量表的評估主要是通過專業的評估人員指示受試者做特定的任務,然后根據任務的完成情況對受試者的精細動作控制能力進行評估分級。康復治療中的精細運動評價量表根據受試者將形狀各異的物品轉移到指定位置所花費的時間將精細運動能力分為10個級別。
數據手套是一種能夠獲取手指運動軌跡、手指關節活動角度、手指運動力量、指端運動距離的智能傳感設備。數據手套通過獲取測試者在完成精細動作時的運動軌跡、手指活動角度變化、運動速度等信息來對測試者的精細動作控制能力進行定量分析[1-2]。有學者將指頻測試儀應用于評價上肢周圍神經損傷患者的手部功能,實驗表明其與傳統的量表評估之間具有高度的相關性[3]。
綜上所述,量表的評估雖然在一定程度上能夠評估手部精細動作能力,但是該方法受評估者主觀因素較大且評估過程需要專業的人員實施。數據手套等先進的智能設備根據受試者手部的運動信號來測量評估其手部精細動作能力,但數據手套主要用于手部動作識別分析,通過手掌、各手指及手腕部位的彎曲、外展等多部位測量,建立手部姿態模型后進行演算和分析,受個體手部形態差異及多傳感器耦合等影響,不便于實際應用推廣。
在手部精細動作評價中,抓握、撿拾、捏合等動作能力在老年人的日常生活中尤為重要,直接影響吃飯、喝水、刷牙、穿衣等日常起居,為了實現便捷測量,本文選取手指開合動作測試來檢測拇指和食指的靈活性,只需要兩個加速度傳感器,附著物少、易穿戴,可有效降低測評過程對動作本身的影響。
本文提出的一種基于慣性傳感器的手部精細動作能力評估分級方法。該方法首先通過慣性傳感器采集受試者拇指和食指做開合動作時的慣性傳感數據,提取相關特征變量,然后采用機器學習分類方法構建手部精細動作能力評估分級模型,最后通過構建的模型來測試評估手部精細動作能力。
在運動障礙康復評定與康復治療中,一般量表將手部精細動作能力分為10個等級,對于每個級別的患者給出不同的治療方案和康復手段。而在健康養老服務產業領域中對老年人的手部精細動作能力分級過于細化將會給相應的養老服務增加成本,將手部精細動作能力初步分為良好、中等、較差3個等級有利于為每個等級的老年人提供相應的養老服務和日常生活建議。由于采集到的樣本量中,處于中等水平的樣本數量遠遠高于處于較差水平的樣本數量,導致采集到的數據存在不平衡性。傳統的機器學習分類方法在不平衡數據集中的分類會更加偏向于多數類,繼而對少數類的分類精度造成不良的影響[4]。Boosting和Bagging兩類集成算法因通過對訓練數據進行重采樣或改進分類器算法,在不平衡數據集的分類學習中表現出良好的性能而被廣泛應用于不平衡數據集的分類研究中[5]。在Boosting算法族中,RUSBoost算法將數據采樣技術與Boosting算法相結合,較好地改善了單個分類器分類能力較弱的問題,也較好地解決了非平衡數據集分類能力差的問題[6]。因此,本文采用RUSBoost算法來構建手部精細動作能力分級評估模型。
Boosting是一族能夠將弱學習器提升為強學習器的算法。這種類型算法先從初始訓練數據集中訓練出一個基學習器,然后依據基學習器的表現對訓練樣本數據集的分布進行修改,讓之前基學習器分類錯誤的訓練樣本在后續的訓練過程中得到更多的關注,再根據修改之后的樣本分布來訓練下一個基學習器,如此迭代,直到基學習器的數目達到指定的T值,最終將各個基學習器進行加權求和[7]。Boosting的基本思想如圖1所示。

圖1 Boosting算法基本思想
在Boosting算法族中使用最廣泛的是AdaBoost算法,該算法根據基分類器分類結果的錯誤率對訓練數據集和基分類器權重進行適應性調整,而后將每個基分類器的分類結果進行加權平均作為最后的分類結果。然而AdaBoost算法只考慮到訓練過程中的全部錯誤分類,這就導致不平衡數據集中占比很小的陽性數據在基分類器的反復訓練過程中沒有得到足夠的重視[8]。RUSBoost算法將隨機欠采樣技術引入AdaBoost算法中,提出一種數據采樣技術和boosting算法相結合的集成學習方法,RUSBoost算法不僅快速高效而且在不平衡數據集的分類中具有十分優異的表現[9]。RUSBoost算法的基本步驟如下:

圖2 RUSBoost算法基本步驟
本次實驗采用的是實驗室自主研發的運動信號采集器,它主要由微處理器、Wi-Fi模塊、兩個慣性傳感器單元、電源模塊等四個部分構成。兩個慣性傳感器單元采用InvenSense MPU6050,包括加速度計和陀螺儀,加速度計可測范圍為±2 g、±4 g、±8 g、±16 g,陀螺儀可測范圍可以設置為±250、±500、±1 000、±2 000 °/s,可準確追蹤快速與慢速動作,能很好的滿足本次實驗的要求。實驗過程中,在受試者的拇指和食指分別綁定一個慣性傳感器單元以檢測受試者在手指運動過程中的三維加速度和三維角速度信息。并將采集的數據通過無線模塊發送到上位機并存儲為txt文件,以便后續分析處理。由于人體運動信號不超過20 Hz[10],故根據采樣定理可知100 Hz的采樣頻率可以很好地滿足實驗要求。在實驗過程中,要求傳感器按指定方向放置,具體如圖3所示。

圖3 慣性傳感器單元敏感軸方向
本次實驗共采集年齡在50~72周歲的160位老年人的樣本數據,其中患有帕金森病的老年人53位(帕金森患者手部功能有不同程度的下降),帕金森患者均來自安徽中醫藥大學神經病研究所附屬醫院。所有受試者均按要求簽署了知情同意書。
在實驗的過程中,由實驗人員將運動信號采集器佩戴在受試者的拇指和食指上并固定,指導受試者用拇指和食指做連續的開合動作,要求動作的速度盡可能快,動作幅度盡可能大,圖4為測試動作示意圖。在受試者熟悉操作流程之后,采集大約20 s的測試數據,在測試的過程中由一名富有經驗的醫師對測試動作進行評估,根據測試動作的優劣將其分為良好、中等、較差三個級別。如表1所示,列出了每個級別所對應的樣本數。

圖4 手指開合動作測試示意圖

級別樣本量良好50中等88較差22
人體的運動信號主要集中于20 Hz以內,因此采用截止頻率為30 Hz的巴特沃茲低通濾波器來對慣性傳感器數據進行濾波用以除去高頻噪聲。
本文基于受試者的拇指和食指的運動靈活性分析受試者的手部精細動作控制能力。在實驗的過程中發現受試者在做手指開合動作的時候,食指的運動幅度和速度明顯比拇指大。因此研究中主要根據食指的運動信號來提取相關特征參數來研究評價受試者的手部精細動作控制能力。
由于信號的來源是固定于食指上的慣性傳感器測量單元,因此研究中只能夠提取加速度和角速度的物理特征來對手部精細動作控制能力的優劣進行評價。信號的物理特征包括能量特征、方差、均方根值、功率等[11]。為了避免單軸方向的加速度和角速度分析時帶來的誤差,提高對不同評估級別之間的辨識度,引入合加速度和合角速度來補充反映手指運動的劇烈程度[12]。本文提取的特征主要有三維加速度(ax,ay,az)和三維角速度(ωx,wy,wz)以及他們的合加速度(at)、合角速度(wt)的均方根值。具體計算公式如下:
合加速度:
(1)
式中:at是合加速度,ax,ay,az分別是每個維度的加速度值。
均方根:

(2)
式中:RMS是均方根值,m為信號序列長度,ai是加速度值。
角速度的合成以及均方根值計算與加速度的計算方法一致,在此不再贅述。
經過對原始信號的觀察和分析,我們發現在傳感器的敏感軸方向上,繞x軸轉動的角速度ωx是食指運動信號的主要分量,因此對ωx信號進行單獨分析,圖5是食指慣性傳感器測量單元原始六軸信號。

圖5 食指傳感器的六軸信號
在測試過程中,我們將受試者拇指和食指接觸一次所花費的時間定義為手指開合動作的周期T1。從圖5可以看出在每次手指開合動作中ωx信號都會有一個明顯的波峰(代表正向最大角速度)和一個波谷(代表反向最大角速度)。本文提取每個開合動作周期內ωx信號的峰值(ωx_peak)組建一個新的信號序列,然后計算峰值的均值、峰值的變異系數、開合動作的周期均值和標準差作為4項特征參數。
具體計算公式如下:
ωx信號的峰值均值:
(3)
式中:n為ωx信號中提取到的峰值點的數目,ωx_peaki為在第i個動作周期內ωx信號的峰值。
ωx信號峰值的變異系數:
(4)
式中:ωx_peak_avg為峰值序列的均值大小,ωx_peak_std為峰值序列的標準差。

圖6 ωx信號的功率譜
在現代信號分析中,功率譜估計是一種常見且有效的信號分析方法,可根據功率譜分析信號在頻域能量隨頻率變化的情況,由功率譜密度計算的峰值功率能夠較好的反映信號所蘊含的能量等信息[13-14]。圖6展示的為ωx信號的功率譜。本文根據ωx信號的功率譜提取功率譜的峰值功率(wx_pp)、峰值頻率(ωx_fpp)和信號的總功率(ωx_pt)作為ωx信號在頻域內的3項特征參數。本文選取的時域和頻域內的15維特征參數如表2所示。

表2 特征參數列表
手部精細動作控制能力分級評估模型的構建主要由訓練階段和評估階段兩階段構成。訓練階段是利用訓練數據集來產生分級評估模型,評估階段則是利用另外獨立的數據集對分級評估模型進行性能評估。在模型訓練之前,根據以上提取的15項特征參數,我們可以得到一個160×15的數據集,按照傳統機器學習中測試集-訓練集劃分方法,在數據集中隨機抽取80%的數據作為訓練集,余下的20%作為測試集。
常見的機器學習分類算法有SVM、決策樹、KNN、BP神經網絡、樸素貝葉斯、集成學習等方法[15]。對于同一個數據集,每種分類方法都有不同的性能。本文采用KNN分類器、SVM分類器、BP分類器、RUSBoost分類器等4種常見的分類算法進行對比驗證,對比不同分類算法構建的評估分級模型在測試集上的識別準確率。
為了探究不同分類器算法對模型構建的影響,采取混淆矩陣、準確率和kappa系數來對比分析不同算法所構建模型在測試集上表現的優劣[16-17]。圖7~圖10分別是通過 KNN分類算法、SVM支持向量機、BP神經網絡算法和RUSBoost算法進行分類的混淆矩陣,縱坐標為實際類別,橫坐標為預測類別。表3是不同算法分類效果評價指標對比結果。

圖7 KNN分類算法混淆矩陣

圖8 SVM分類算法混淆矩陣

圖9 BP分類算法混淆矩陣

圖10 RUSBoost分類算法混淆矩陣

算法KNNSVMBPRUSBoost準確率/%68.7571.8856.2590.63F1值0.5940.6150.5350.924Kappa系數0.4430.5220.2700.838
從表3可以看出:利用RUSBoost算法訓練的分類器模型對測試集的總體精度達到了90.63%,F1值為0.924,kappa系數為0.838,其分類效果較其他分類算法構建的模型具有明顯的優勢。使用BP算法分類的模型識別率極低,僅有56.25%,kappa系數僅為0.270,基本不具有分辨能力,這可能是因為數據集過小導致對數據的過擬合,影響了模型的泛化能力。經過對原始訓練數據集中不同分級之間數據占比的分析發現,良好、中等、較差分別占比31.25%、55%、13.75%,不同分級類別之間數據量分布不平衡。然而傳統的機器學習算法大多都假設數據分布是均勻的,數據分布的不平衡會在一定程度上影響分類器的性能[8],這很可能是前幾類算法分類效果不佳的原因。而RUSBoost算法通過將欠采樣技術與Boosting相結合,欠采樣技術通過減少多數類的樣本來平衡原始數據集,雖然會丟失一定的信息量,但是由于Boosting算法會構建不同的弱分類器,在一個弱分類器中丟失的信息量很有可能會在其他弱分類器中被包含[9]。因此RUSBoost算法在對不平衡數據的分類中具有很大的優勢,本文的實驗也證明了這一點。
本文提出一種基于慣性傳感器的精細動作能力評估分級方法,通過采集一定量樣本數據來建立精細動作能力評估分級模型,然后采用驗證集驗證了分級評估模型的優劣。實驗證明,RUSBoost算法構建的分級評估模型分類準確度達到90.63%,可以很好地滿足預期,在一定程度上能夠代替臨床評估量表來對手部精細動作控制能力進行評價。
由于人體手部精細動作控制能力的相關原理機制十分復雜,僅僅依據手指開合動作的速度、幅度等物理指標可能無法全面評估手部精細動作控制能力。后期將主要圍繞手部震顫、手部抓握力、手指捏力等方面展開研究來更加全面地評估手部精細動作控制能力。