系统设计=基于表面肌电信号的不同手势识别【MATLAB】
子曰:桃李不言,下自成蹊。
- 基于表面肌電信號的不同手勢識別系統Matlab基于表面肌電信號的不同手勢識別系統^{Matlab}基于表面肌電信號的不同手勢識別系統Matlab
- Part.1信號采集Trigno無線肌電采集系統Part.1 信號采集^{Trigno無線肌電采集系統}Part.1信號采集Trigno無線肌電采集系統
- Part.2信號預處理移動平均法Part.2 信號預處理^{移動平均法}Part.2信號預處理移動平均法
- Part.3特征提取時域、頻域Part.3 特征提取^{時域、頻域}Part.3特征提取時域、頻域
- Part.4模式識別BP、SVM、KNNPart.4 模式識別^{BP、SVM、KNN}Part.4模式識別BP、SVM、KNN
- Part.5友情鏈接僅限于學習交流Part.5 友情鏈接^{僅限于學習交流}Part.5友情鏈接僅限于學習交流
基于表面肌電信號的不同手勢識別系統Matlab基于表面肌電信號的不同手勢識別系統^{Matlab}基于表面肌電信號的不同手勢識別系統Matlab
通過對文獻進行比較分析得出以下兩種可行的解決方案:
方案1:對所采集到的SEMG數據,采用活動段分割的方法探測有效動作,設計出一種融合卷積神經網絡(CNN)和長短時記憶(LSTM)網絡的神經網絡對SEMG數據進行訓練,最終實現SEMG信號的手勢分類與識別,系統流程圖如圖1所示:
方案2:對所采集到的SEMG數據,采用活動段識別的方法探測有效數據,計算合適的特征矢量,進而通過BP神經網絡分類器進行模式識別。系統流程圖如圖2所示。
綜合分析比較兩種解決方案優缺點的基礎上,考慮到疫情及系統調試的需要,經過與指導教師研討確定選擇方案2,即通過Trigno無線肌電采集設備采集手臂的表面肌電信號,由Trigno SDK傳輸信號,由MATLAB的程序來處理計算特征矢量,最終由BP網絡進行模式識別,設計MATLAB-GUI結果界面以顯示不同手勢動作。最終通過調試完成基于表面肌電信號的不同手勢識別系統設計。技術路線如下圖3所示:
在上圖中特征提取是整個系統的核心環節,系統的識別能力與特征矢量的選取有著決定性關系。處理肌電信號的目的在于研究SEMG的時、頻域特征與肌肉結構以及肌肉活動狀態或肢體功能狀態之間的關聯性,進而根據SEMG的變化有效反映肌肉的活動或功能狀態。
基于肌電信號的認知以及系統各功能的改進,將識別系統各個部分的活動端識別、特征提取和模式識別等分別封裝為EMG_Preprocessing.m、EMG_ExtractFeatures.m、myNeuralNetworkFunction6.m三個功能結構。整合各環節并以此完成Matlab GUI界面的設計,系統初始化界面如下圖4-1所示,主要由采集數據”、“導入數據”、“保存數據”、“預處理”、“特征提取”、“模式識別”、“退出系統”七個按鍵和“動作肌電圖”、“原始肌電圖”、“頻譜估計圖”三個圖像顯示窗口組成:
為便于肌電數據分析在界面中添加了兩個額外的功能按鈕:“保存數據”左側的復選框勾選時點擊為快速保存,即把當前數據追加至上次保存文件末尾;若未勾選則另存數據為新文件。預處理左側的滑動條可以調節數據活動段識別的閾值,通過調節滑塊位置,來提升活動段提取的靈活性。其中數據處理界面效果如圖4-2所示。此外通過MATLAB Compiler?將識別系統程序生成了獨立的應用共享程序(GesturesEMG.exe程序)。
Part.1信號采集Trigno無線肌電采集系統Part.1 信號采集^{Trigno無線肌電采集系統}Part.1信號采集Trigno無線肌電采集系統
表面肌電信號由Delsys高性能肌電成像儀器公司生產的Trigno無線肌電采集系統采集,如圖4左所示:該系統具有高16位分辨率、2,000 Hz采樣率、傳感器間延遲低于500ms ,傳感器的粘貼方法如圖4右所示:信號采集前需要對貼放電極和皮膚進行清潔。該設備所采集的肌電信號具有低串擾、穩定以及一致等優點,這為肌電信號的后續處理帶來了很大的便利。
Part.2信號預處理移動平均法Part.2 信號預處理^{移動平均法}Part.2信號預處理移動平均法
預處理方案包括消除工頻干擾、直流偏置以及提取活動信號,其中預處理的核心環節是提取出有效數據的起始和終止時刻。基于系統的實時性要求,采用短時能量的移動平均法,結合閾值比較來進行活動段檢測。如圖5該方法采用固定長度的滑動窗逐一推進并計算活動窗內數據的平均能量值來反映信號的當前變化的趨勢。
在活動端識別實現過程中,閾值的選擇對肌電動作數據的采集裝置、周圍環境以及被采集對象具有很強的依賴性,當閾值設置偏大時無法識別出幅值較小的動作信號,為此減少閾值時其識別效果便會降低,進而失去其活動端識別的意義。針對不同采集條件獲取的多組肌電數據很難獲取統一的閾值這一技術難點,觀察肌電數據時域圖中動作數據對應波形變化較手腕靜息時大很多,于是嘗試變平均能量法為計算方差法,即選取窗口數據內的標準差差作為判別的標準量。計算動作數據段中窗口內數據的標準差為0.01數量級和靜息數據段相差不大,且不同的通道、個體的肌電數據標準差特征差異顯著,還是無法解決閾值問題。通過對問題本質的思考,結合專業課程中所學知識,想到可以采用變能量閾值的方法來識別活動端,即給定動作數據預期長度,根據同類動作數據的相似性原理,采用循環降閾值的平均能量法來進行活動端提取。
Part.3特征提取時域、頻域Part.3 特征提取^{時域、頻域}Part.3特征提取時域、頻域
用于遴選的 Surface electromyography (sEMG)特征矢量的計算公式如下。除以下七項特征矢量外,有待觀察的特征矢量還有頻率范圍、最高波峰頻率、最高波峰幅值。
Part.4模式識別BP、SVM、KNNPart.4 模式識別^{BP、SVM、KNN}Part.4模式識別BP、SVM、KNN
為了完成基于表面肌電信號的不同手勢識別系統設計,需要正確地區分人為選取的特征量,而分類算法的本質就是將不同動作所產生的肌電特征與對應動作的模式形成映射關系,一個高效的分類器通常表現為更高的精度、更短的計算時間以及更少的存儲空間。目前除廣為人知的神經網絡外,常用的分類算法及其典型特征如下表 3-1 所示:表格中提供了模型的一般參考指南,其識別效果取決于輸入數據和硬件處理速度。
Part.5友情鏈接僅限于學習交流Part.5 友情鏈接^{僅限于學習交流}Part.5友情鏈接僅限于學習交流
備用地址:
References
可以肯定的是學海無涯,這篇文章也存在一些不足的地方,
歡迎各位在評論區留言進行探討交流。
總結
以上是生活随笔為你收集整理的系统设计=基于表面肌电信号的不同手势识别【MATLAB】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql非主键索引_主键索引和非主键索
- 下一篇: 表面肌电信号降噪