
















摘要:針對目前坐姿識別方案存在的監(jiān)測數(shù)據(jù)單一、實時性差等問題,設計了一款預防頸椎病的智能監(jiān)測系統(tǒng).該系統(tǒng)以STM32F103C8T6芯片為核心,通過MPU6050加速度傳感器與HC-SR04超聲波測距傳感器相結合的方式實現(xiàn)頭頸部信息的采集,利用藍牙模塊將數(shù)據(jù)信息傳送給手機移動終端,手機端使用基于全連接神經(jīng)網(wǎng)絡的坐姿分類模型對用戶坐姿的數(shù)量及持續(xù)時間進行識別統(tǒng)計.經(jīng)測試,該系統(tǒng)對坐姿識別的準確率達到98.24%,可以滿足坐姿快速精確識別的需求,可適用于頸椎、近視等疾病的早期預防.
關鍵詞:MPU6050;卷積神經(jīng)網(wǎng)絡;坐姿監(jiān)測
中圖分類號:TP315 文獻標志碼:A
Design of Cervical Spondylosis Prevention System Based
on MPU6050 and Neural Network
HOU Jing-yun, ZHAO Jing, CHEN Lei, PENG Fei
(School of Computer Science, Huainan Normal University, Huainan 232038, Anhui, China)
Abstract:Aiming at the problems of single monitoring data and poor real-time performance in the current sitting posture recognition scheme, an intelligent monitoring system for preventing cervical spondylosis is designed. The system takes STM32F103C8T6 chip as the core, realizes the collection of head and neck information through the combination of MPU6050 acceleration sensor and HC-SR04 ultrasonic ranging sensor. The bluetooth module is used to transmit the data information to the mobile terminal of the mobile phone. The mobile terminal uses the sitting posture classification model based on the fully connected neural network to identify and count the number and duration of the user’s sitting posture. After testing, the accuracy of the system for sitting posture recognition can reach 98.24%, which can meet the needs of fast and accurate recognition of sitting posture, and is suitable for the early prevention of diseases such as lumbar disease and myopia.
Key words:MPU6050; convolutional neural network; sitting posture monitoring
隨著現(xiàn)代化社會的發(fā)展,人們伏案工作和學習的時間越來越長,如此高強度的伏案工作,很容易出現(xiàn)各種不良坐姿,包括身體斜傾、距離書桌過近和偏頭等.因此,對坐姿進行實時監(jiān)測并及時提醒糾正成為當下急需且非常實用的技術.目前,有關坐姿監(jiān)測的方法主要分為兩大類,第一類是基于視頻圖像的識別技術[1-2].韓曉明等[3]利用背景差分法對采集到的靜態(tài)坐姿圖像進行分析以獲取正確坐姿下頭部的坐標范圍,然后將其與實時檢測的頭部坐標進行比較,最終達到對當前學生坐姿的識別,但是其對所處環(huán)境的光照強度要求高,一旦光線變化較大,監(jiān)測將不再可靠.王春陽[4]利用電腦自帶的攝像頭獲取標準坐姿圖像,通過將其與攝像頭視頻流中獲取的二幀圖像進行比對,提取出人體輪廓并計算人體輪廓的占有率,從而確定坐姿,但是其對不同姿態(tài)識別的平均準確率僅為87.86%.第二類是基于傳感器的人體坐姿識別技術,該研究領域隨著傳感器技術的不斷發(fā)展得到了越來越多學者的關注.高鵬等[5]利用九軸加速度傳感器設計了一款結構簡單、便于攜帶的頸椎病預防設備,該設備能夠實現(xiàn)對頭頸部0~90度內(nèi)不同角度的測量.張思寬等[6]基于STM32單片機、柔性壓敏傳感器陣列和紅外測距傳感器設計出一種坐姿檢測系統(tǒng),該系統(tǒng)利用MATLAB軟件對采集的坐姿壓力數(shù)據(jù)和背部傾斜角度數(shù)據(jù)進行分析并判斷坐姿.上述通過傳感器對坐姿進行檢測的方案雖然測量數(shù)據(jù)準確度高[7],但基本都需要用戶根據(jù)數(shù)據(jù)自行推斷出頸部運動的狀態(tài),存在專業(yè)性強、坐姿識別率低等缺點,不適合直接應用于日常生活中坐姿的監(jiān)測.因此,本文通過多傳感器與卷積神經(jīng)網(wǎng)絡的結合設計了一款頸椎病預防系統(tǒng).該系統(tǒng)通過加速度傳感器與超聲波測距傳感器相結合的方式實現(xiàn)頭頸部信息的采集,使采集的數(shù)據(jù)更為全面;同時利用卷積神經(jīng)網(wǎng)絡將采集的數(shù)據(jù)與5種坐姿聯(lián)系起來進行學習和分類判斷,用戶通過手機移動端獲取實時坐姿狀態(tài),從而達到日常監(jiān)測和預防頸椎病的目的.
1 系統(tǒng)總體設計
本文設計的頸椎病預防系統(tǒng)結構如圖1所示.
該系統(tǒng)利用STM32F103C8T6芯片對傳感器采集的頭頸部信息進行處理和存儲,并通過CC2541藍牙模塊將采集的信息發(fā)送到手機移動終端,手機端利用在PC機上已訓練完畢的分類模型對坐姿(正坐、低頭、后仰、左傾、右傾)的數(shù)量及持續(xù)時間進行統(tǒng)計,當某種姿態(tài)已保持30分鐘時,系統(tǒng)通過手機震動方式提醒,此時,使用者可手動打開震動馬達模塊以緩解頸部疲勞,或按照App提醒的運動方案進行運動調整以預防頸椎病的產(chǎn)生.
2 系統(tǒng)硬件設計
頸椎病預防系統(tǒng)的硬件部分主要由單片機主控模塊、頭頸部信息采集模塊、震動馬達模塊、電源模塊和藍牙模塊5部分組成,硬件實物如圖2所示.
2.1 單片機主控模塊
主控模塊選用STM32F103C8T6芯片作為核心處理器.該芯片內(nèi)部擁有20 KB SRAM、64 KB FLASH及4個16位的定時器/計數(shù)器,能夠利用IIC總線與傳感器、藍牙模塊實現(xiàn)多通道雙向數(shù)據(jù)傳輸功能,不僅價格低廉、性能強大且具有豐富的外設支持,在節(jié)約硬件成本的同時滿足了系統(tǒng)的硬件需求,STM32F103C8T6主控芯片的外圍電路圖如圖3所示.
2.2 頭頸部信息采集模塊
針對目前坐姿識別方案存在監(jiān)測數(shù)據(jù)單一的問題,本文頭頸部信息采集模塊采用加速度傳感器MPU6050與超聲波測距傳感器HC-SR04相結合模式.MPU6050是一款6軸傳感器模塊,其內(nèi)部集成了三軸MEMS陀螺儀、三軸MEMS加速度計,能夠同時檢測x、y、z3個方向對應加速度和角速度的運動數(shù)據(jù)[8],其電路圖如圖4所示.此外,MPU-6050內(nèi)置的數(shù)字運動處理器DMP可對運動數(shù)據(jù)進行姿態(tài)解算以獲取Pitch,Roll,Yaw角數(shù)據(jù),無需MCU計算處理,不僅簡化代碼設計,而且降低了MCU的負擔,提高了系統(tǒng)的實時性.
HC-SR04超聲波測距傳感器利用超聲波可實現(xiàn)2 cm~4 m范圍內(nèi)的距離測量,具有體積小、精度高(達3 mm)且對人體無害的特點,包含VCC、GND、TRIG和ECHO 4個端口.該傳感器是利用TRIG端口發(fā)送高電平的觸發(fā)信號實現(xiàn)距離測量,如果信號在發(fā)送過程中遇到障礙物就會被反射回來,此時ECHO輸出一個高電平回響信號,則頭離桌面的距離=(回響信號持續(xù)時間×340 m/s)/2,其中,340 m/s為超聲波在空氣中的傳播速度.
2.3 藍牙模塊
藍牙模塊選用TI公司推出的CC2541芯片.該芯片將增強型8051 MCU、射頻收發(fā)器、可編程閃存、8 KB RAM以及豐富的外設集成在一起,支持250/500/1 M/2 Mbps數(shù)據(jù)速率,在設計電路時,只需極少的外部組件,其電路圖如圖5所示.本文設計的系統(tǒng)可利用CC2541支持的BLE 4.0低功耗藍牙協(xié)議實現(xiàn)與Android設備的數(shù)據(jù)傳輸.此外,還提供了多種低功耗的休眠模式適合本設計對低功耗的要求.
3 系統(tǒng)軟件設計
頸椎病預防系統(tǒng)的軟件設計主要分為兩部分:一是采用神經(jīng)網(wǎng)絡實現(xiàn)坐姿的識別與分類,在PC機上進行訓練構建坐姿識別模型,并將模型移植到手機移動終端進行識別與提示;二是利用Android操作系統(tǒng)實現(xiàn)用戶終端App的設計,該App能夠實現(xiàn)用戶注冊登錄、藍牙連接、頭頸部運動監(jiān)測等功能.
3.1 基于全連接神經(jīng)網(wǎng)絡的坐姿識別模型設計
3.1.1 數(shù)據(jù)預處理
(1)數(shù)據(jù)濾波.硬件系統(tǒng)在采集數(shù)據(jù)的過程中往往會受到很多干擾源的干擾,不利于后續(xù)坐姿分類識別.因此,本文利用滑動均值濾波對采集的數(shù)據(jù)進行處理,其公式為:
式中,N=5表示滑動均值濾波器的階數(shù).
(2)數(shù)據(jù)分隔.文中傳感器采集的數(shù)據(jù)為一段時間內(nèi)三軸加速度數(shù)據(jù),數(shù)據(jù)長度較長,不適合特征提取和分類,因此利用滑動窗口對數(shù)據(jù)進行分隔.為減少坐姿改變時產(chǎn)生的信號干擾,將采樣頻率設置為50 Hz,窗口長度設為2.56 s.
3.1.2 模型訓練
基于Python的pytorch框架構建全連接神經(jīng)網(wǎng)絡模型,對x、y、z軸加速度值進行5種坐姿狀態(tài)(正坐、低頭、后仰、左傾、右傾)的分類識別,類型標簽分別為yi={0,1,2,3,4}.模型采用經(jīng)典的三層網(wǎng)絡結構,利用反向傳播算法和自適應梯度函數(shù)Adagrad不斷優(yōu)化權值和閾值來提高頭頸部動作識別的準確度,模型參數(shù)如表1所列.
(1)激活函數(shù)
該模型第一層輸入層神經(jīng)元的個數(shù)為512,第二層隱藏層將第一層的神經(jīng)元的個數(shù)經(jīng)綜合、降維后變?yōu)?2,每個神經(jīng)元均選用ReLU作為激活函數(shù),即:
其中,x表示輸入值.
由于本文設計的系統(tǒng)最終需要對5種坐姿進行分類,因此,將最后一層輸出層的神經(jīng)元個數(shù)定為5,并使用 Softmax 分類器輸出分類結果,其公式為:
其中Zi、Zj為第i、j個節(jié)點的輸出值.
(2)損失函數(shù)
損失函數(shù)反映了預測數(shù)據(jù)與真實數(shù)據(jù)之間的誤差,是衡量模型在一定權重下好壞的依據(jù).文中損失函數(shù)選用CrossEntropyLoss函數(shù),其公式為:
其中:n為樣本總數(shù),yi為第i 個真實值,y⌒i為第i 個預測值.
應用坐姿識別模型,經(jīng)過20次迭代以后,可以得到該模型的損失值和正確率如圖6和圖7所示,且損失值和正確率隨迭代次數(shù)的增長呈相反趨勢變化,且準確率可達到98.24%.
從圖6和圖7可以看出,損失值和正確率隨迭代次數(shù)的增長呈相反趨勢變化,經(jīng)過20次迭代以后,基于全連接神經(jīng)網(wǎng)絡的坐姿識別模型準確率可達到98.24%.
3.2 用戶終端App
本文設計的頸椎病預防系統(tǒng)App是基于Android Studio軟件進行編程設計,分別實現(xiàn)了用戶注冊登錄、藍牙連接、頭頸部運動監(jiān)測等功能.
用戶首次打開終端App需要注冊賬號,非首次用戶可直接輸入賬號、密碼進行登錄,其界面如圖8所示.正式進入系統(tǒng)后,用戶打開手機藍牙設備,進行藍牙連接配對,其界面如圖9所示.藍牙配對成功后,進入頸椎病預防系統(tǒng)主頁,在界面右上角的下拉菜單中,用戶可以查看自身頭頸部的前后屈和左右傾的實時狀態(tài),其界面如圖10所示.
4 系統(tǒng)測試
本實驗將加速度傳感器置于測試者背部,超聲波測距傳感器置于頭部,對5種坐姿下的數(shù)據(jù)進行了采集,每種坐姿以每隔30 s的速度連續(xù)采集40次共獲得200組數(shù)據(jù),數(shù)據(jù)的識別結果如表2所列.由表2可以看出,正坐、左傾、右傾和低頭的準確率相對于后仰來說較高,這主要是由于人體在后仰的過程中傾斜幅度較小,傳感器未能進行較好識別從而導致系統(tǒng)的錯誤識別.但就整體而言,本文所設計的頸椎病預防系統(tǒng)平均正確率能達到97.5%,其識別效果符合設計預期.
將上述獲取的200組數(shù)據(jù)應用于傳統(tǒng)的機器學習分類器中,其準確率和錯誤率如表3所列。由表3可見,相較于傳統(tǒng)算法,本文所采用的基于全連接神經(jīng)網(wǎng)絡識別算法具有較高的準確率。
5 結語
本文通過多傳感器與卷積神經(jīng)網(wǎng)絡的結合設計了一款頸椎病預防系統(tǒng).相較于傳統(tǒng)識別方法,利用多傳感器融合的方案能夠使采集的數(shù)據(jù)更為全面,同時通過卷積神經(jīng)網(wǎng)絡對坐姿實現(xiàn)更為快速、準確的監(jiān)測.此外,用戶還可實時獲取來自手機移動端的提醒,從而有效預防頸椎病,有利于向家庭和社區(qū)推廣.
參考文獻:
[1] 張宇.基于人臉檢測與膚色統(tǒng)計的坐姿行為監(jiān)測[J].計算機與網(wǎng)絡,2017,43(7):72-75.
[2] 袁迪波,戴永,陳統(tǒng)乾.不規(guī)范書寫坐姿的多類特征融合與識別[J].計算機工程與設計,2017,38(2):528-533.
[3] 韓曉明,冉春風,侯雪峰,等.基于視頻的學生坐姿檢測與糾正系統(tǒng)研究[J].首都師范大學學報(自然科學版),2009,30(Sup.1):11-14.
[4] 王春陽.基于圖像技術的人體坐姿監(jiān)測研究[D].西安:西安電子科技大學,2013.
[5] 高鵬,楊雪晨,李明昕,等.基于九軸重力加速度傳感器設計的頸椎疾病預防設備[J].價值工程,2017,36(8):151-152.
[6] 張思寬,鄭文雄,徐怡飛.基于多種傳感器組合的坐姿檢測系統(tǒng)設計[J].科學技術創(chuàng)新,2021(7):52-54.
[7] 李思雨.基于加速度傳感器的頸椎病預防動作識別研究[D].南京:東南大學,2020.
[8] 鄧開連,周志鵬,楊義錦,等.預防頸椎疾病的姿態(tài)監(jiān)測智能設備設計[J].單片機與嵌入式系統(tǒng)應用,2017,17(6):67-69.
[責任編輯:李 嵐]