摘要:為了彌補市場上現有產品缺少對乒乓球和羽毛球運動狀態識別的現狀,設計了一個佩戴于持球拍手腕就可以識別這兩種運動中多種狀態的手表。其硬件主要采用STM32F103C8T6單片機、MPU6050傳感器、藍牙串口模塊。運動狀態識別實現方法:由3軸加速度和3軸角速度計算出以大地坐標為參考系的3軸角度,數據經過高通濾波、平滑、數據分窗的預處理后進行特征值提??;再依據隨機森林分類識別算法,識別乒乓球、羽毛球運動過程中的多種狀態。該手表具有硬件成本低、體積小、功耗低等特點,經過測試,其識別率可達90%以上。
0 引言
近年來穿戴式設備是開發的熱點項目,各種品牌的運動手表、手環層出不窮,穿戴式運動狀態識別設備的應用前景可觀?,F在市場上的產品對運動狀態識別集中在識別某個時間段進行的某種運動,如走路、跑步、睡眠,缺少對乒乓球、羽毛球運動識別的設備。而專業的運動識別的設備集中在視頻圖像的分析和不同部位多傳感器裝置檢測分析]兩種方式,兩種方式設備體積大、成本高,只適合在實驗室中使用,不適合向普通大眾推廣。目前運動狀態分類識別算法主要有動態K近鄰、決策樹、隨機森林、支持向量機、神經網絡等。
為了滿足乒乓球和羽毛球業余運動愛好者對運動過程動作狀態識別記錄的要求,本文將介紹一種運動手表的設計。它由簡單硬件構成,利用在時域上分析的隨機森林分類算法就可以識別乒乓球和羽毛球運動的多種狀態。本設計具有體積小、功耗低、成本低的特點,可以嵌入到現在已有的智能手表中,做到功能升級。
1 運動狀態識別總體方案
1.1 運動手表硬件設計
乒乓球/羽毛球運動狀態識別手表的硬件主要由控制處理核心STM32單片機、MPU6050傳感器模塊、BLE 藍牙模塊、按鍵模塊、顯示模塊、電源管理模塊6部分組成。手表系統工作原理為: 控制處理核心STM32F103通過IIC接口讀取MPU6050的加速度計和陀螺儀數據,利用數字運動處理器(DMP)輸出四元數后解算得到3軸歐拉角[7]。經過數據濾波后用相應的識別算法對運動狀態進行識別,將識別的信息用OLED顯示屏顯示并通過藍牙模塊發送到上位機。各個模塊的功能如下。
(1)控制處理核心:選擇意法半導體STM32F103C8T6,它控制整個系統的各個模塊工作狀態、傳感器數據的處理和識別算法的實現。它運算速度快、體積小、功耗低、外設豐富,滿足腕戴式手表對體積、速度、功耗的要求。
(2)傳感器模塊:傳感器采用MEMS數字傳感器MPU6050,它由整合了加速度計、陀螺儀的6軸傳感器和一個可擴展的DMP組成。相比于多傳感器的方案,它避免了時間軸之差的問題,并減小了體積[8]。傳感器通過IIC接口將數據傳輸到單片機中。
(3)BLE藍牙模塊:選用型號為CC2541的BLE藍牙串口模塊,BLE技術具有低成本、低功耗、短距離的特點。該藍牙模塊最高支持2 Mbit/s的傳輸速率,工作電流小于20 mA,滿足系統UART串口設計的115 200 bit/s波特率的通信要求。
(4)按鍵模塊:主要完成模式選擇以及手表的開關機。
(5)顯示模塊:選用0.96英寸OLED顯示屏,顯示單元能夠自發光。全屏點亮時功耗為0.08 W,正常全屏顯示漢字僅需0.06 W,很符合手表低功耗的要求。
(6)電源管理模塊:選用 TD8208升壓芯片將3.7 V鋰電池升壓到5 V,再經過AP2125K-3.3芯片降壓到3.3 V。兩款電源芯片均有輸出使能端,可通過控制使能端實現對其他模塊的電源管理。
手表硬件連接圖如圖1所示。
1.2 運動手表系統狀態設計
系統設計主要有關機狀態、時間顯示狀態、模式選擇狀態、乒乓球模式、羽毛球模式、自識別模式6個狀態,各個狀態通過按鍵選擇進行切換,狀態轉換圖如圖2所示。
由圖2可知,系統初始狀態為關機狀態,通過長按開關機鍵使系統開機并進入時間顯示狀態。如果不進行按鍵選擇,系統將保持在時間顯示狀態。如果按動選擇按鍵,系統將跳轉到模式選擇狀態,再通過按動模式選擇按鍵進入對應的工作模式。如果進入乒乓球模式或羽毛球模式,就對運動中揮臂、揮拍、正反手等動作進行識別。如果選擇自識別模式,系統先識別當前運動是乒乓球運動還是羽毛球運動,識別成功后再自動跳轉到對應的模式下進行運動狀態識別。如果需要重新選擇運動模式,通過返回按鍵使系統返回到時間顯示狀態,重復上述選擇方法進行模式選擇。
2 運動狀態識別算法設計
運動狀態識別主要由數據采集、數據預處理、特征提取、分類識別4部分組成。識別流程及結構如圖3所示。
2.1 數據采集
STM32F103C8T6單片機通過IIC接口讀取MPU6050的加速度、角速度、角度數據,將采集的數據緩沖到各自對應的數組中,完成基本的數據采集。
2.2 數據預處理
數據預處理分3步完成,依次為重力加速度分離、過濾平滑、數據分窗[4]。
(1)重力加速度分離:加速度傳感器輸出的原始數據中包含重力加速度分量,而X、Y、Z軸是固定的,運動手表發生普通旋轉和翻轉時,重力加速度則對3個軸產生加速度分量。為了避免重力加速度分量引進的干擾,本設計對傳感器采集的3軸加速度進行重力加速度分離。重力加速度分離采用高通濾波的方法[5],求解公式如下:
式中G代表各軸重力加速度分量,A代表加速度傳感器原始測量數值。提取出重力加速度分量后,用加速度傳感器原始數值減去重力加速度分量得到實際運動產生的加速度值。
(2)過濾平滑:數據的平滑與過濾是為了過濾噪聲和異常數據,本設計采用連續滑動20點均值做平滑濾波,即設置一個容量為20個數據點的FIFO,把FIFO內的20個數據點的均值作為一個新的采樣點,且濾波后使得提取的特征具有更明顯的區分度。數據平滑處理前后波形圖如圖4所示。
(3)數據分窗:本設計采用動態窗口的方法對數據進行分窗處理,窗口大小的設置是一個不定的參數,通過實驗事先設置好3軸加速度的閾值,當X、Y、Z任一個軸加速度值大于對應的閾值時,觸發開啟窗口,當觸發開啟窗口的那個軸的加速度值小于對應的閾值時就關閉窗口。即系統窗口只顯示加速度大于閾值的這段時間內的數據。因為只有運動時才會產生相對較大的加速度,而系統主要識別運動過程中的不同狀態,所以這樣就無需對非運動狀態下進行識別,減少識別誤差。加速度動態分窗示例圖如圖5所示。
2.3 特征提取
特征提取集中在窗口開啟的這段時間內,主要提取各軸加速度、角速度、角度的最大及最小值和角度的積分面積等主要特征[9]。
以乒乓球橫板握法正反手的一組數據為例,如圖6所示,X軸角速度的最小值在正反手揮拍中有明顯差別,所以將X軸角速度的最小值作為識別正反手的一個重要特征。
本設計只使用了最大值、最小值、積分面積3個統計量作為特征,并沒有使用復雜的時頻特征和頻域特征,主要有兩個原因:
(1)經過試驗發現,最大值、最小值、積分面積這3個特征在運動狀態的識別中區分度較大,已經能夠達到一個較好的識別效果;
(2)本手表是基于STM32單片機平臺設計的,其浮點計算能力有限,不適合提取計算量較大的時頻特征和頻域特征[4]。
所以本設計中沒有使用時頻特征和頻域特征,而把前期的數據處理作為識別的重要前提,并通過基于時間跨度的動態分窗方式,結合隨機森林算法,對不同的運動狀態進行分類識別。
2.4 分類識別
基于本設計自身硬件屬性,對比并試驗了當前普遍使用的識別分類算法,結果發現隨機森林分類算法在本系統上有著計算效率和識別準確率較高的特點,因此選擇隨機森林作為本系統的分類算法。隨機森林算法實現原理圖如圖7所示。
通過大量的測試實驗最終確定本設計選取X軸角速度最大值和最小值、X軸角度最小值和積分面積、Y軸角速度最小值、Y軸角度最大值和最小值、Z軸角速度最大值8個有著明顯區分度的特征值。每次在動態窗口中提取上述8個特征,將提取的特征依次和每個運動狀態的特征樹進行擬合,擬合特征最多的那棵樹就識別為本次運動的狀態。
特征區間的設定上,本設計以專業運動員的訓練數據為參考,如圖6所示的數據,橫板握法的正反手各自特征樹上X軸角速度特征區間分別為[-150 -80],[-70 0]。其他特征區間的參數整定方法同上,這里不再贅述。
3 手表測試
本次測試方法為隨機選取乒乓球和羽毛球業余運動員各一位,使用本手表在相應的運動中進行測試,主要記錄人工識別計數和設備識別計數,并做比對,分析誤差。具體測試數據如表1、表2所示。
從實驗結果可以看出,設備識別計數準確率在90%以上。運動中對正手揮拍識別比實際揮拍數多,而反手揮拍識別計數要實際揮拍數少,分析原因發現,因為系統動態窗口開啟的閾值是預先設定值,反手揮拍中動作幅度比較小時加速度值沒有達到開啟閾值,所以計數要小于實際數。可以通過減小開啟閾值來提升反手揮拍的識別率,但同樣不能使開啟閾值太小,否則手腕部一些非運動狀態也會觸發開啟窗口引起識別誤差,使正手揮拍識別數遠大于實際數。因此窗口開啟閾值的設定也是設計的關鍵。本系統乒乓球模式下閾值為1 m/s2,羽毛球模式下閾值為1.2 m/s2。
4 結論
本文設計的手表采用STM32F103+MPU6050方案,成本低、功耗低、體積小,且對乒乓球和羽毛球運動過程中主要運動特征識別較為準確,效果較好,識別率均在90%以上。該手表滿足普通大眾的應用,可進一步推廣。
-
傳感器
+關注
關注
2551文章
51171瀏覽量
754245 -
神經網絡
+關注
關注
42文章
4772瀏覽量
100851 -
電源芯片
+關注
關注
43文章
1096瀏覽量
77108
原文標題:【學術論文】乒乓球/羽毛球運動狀態識別手表的設計
文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論