基于Kinect和表面肌电传感器的数字化运动功能评估系统设计
2022-12-05何东浩王振宇白亚雯
何东浩,王振宇,汪 曦,甘 于,白亚雯
(无锡太湖学院,江苏 无锡 214064)
近年来,随着机器学习及图像处理技术的发展,在医学康复领域的应用越来越广泛,并得到临床医生的认可。为了弥补传统量表式评估方法的缺点,便捷评估使用者健康状况,结合嵌入式、传感器、串口通信、蓝牙模块及动作识别技术等,本文提出一种基于Kinect传感器和表面肌电传感器的上肢运动功能数字化评估系统设计方法,以此满足更便捷地评估自身健康状况、更直观地体会测试结果指数及更有效地消除健康隐患。
1 软件设计
1.1 Kinect姿态识别子程序设计
开启Kinect姿态识别应用,进入到Kinect姿态识别主程序,获取人体深度图数据和骨骼数据,再进入不同的姿态识别程序,当执行完后进入下一种姿态识别程序,直到最后一个动作识别结束。
接下来将介绍不同动作的动作识别程序及原理,姿态识别程序会在运行时每十一帧采集1次人体姿态信息,在每十一帧的第十一帧,程序开始姿态识别,以下为采集程序代码及注释。
1.2 Emg传感器肌电值采样程序设计
Emg单导肌肉电传感器部分,只需把传感器输入的端口配置好ADC初始化,再读取实时信息输出到OLED模块中,以下是Emg肌电ADC值采集程序。
1.3 Stm32遥控器及串口程序设计
遥控器部分较为简单,本设计设置了16个按钮,当检测到某个按钮被按下,执行相关的按钮处理程序。
此时姿态程序识别会读取该D:/ccc.txt文本文档,并根据里面的参数执行不同的姿态识别程序。
2 设计结果与调试
2.1 屈曲共同运动姿态识别
每个姿态动作都有起始动作和结束动作,程序会在每十一帧的第一帧记录起始动作姿态,在第十一帧识别第十一帧及第一帧是否满足动作要求,人体的特定关节是否符合特定特征,以此来准确判断人体姿态动作是否完成。第一个动作,起始动作是左手放在右膝盖上,而结束动作是左手放在左耳旁。
2.2 伸展共同运动姿态识别子程序设计
伸展共同动作和屈曲共同运动类似,左手放在右膝盖上方,再举至头左一段距离,由此采用类似第一个动作的处理。
2.3 Stm32遥控器及OLED调试
Stm32遥控器上电后,可以看见OLED也亮起来,此时可以通过按键输入希望发送的信息,当遥控器检测到按了D键后,把信息发送到电脑串口,其中4×4的按键各对应着数。
可以看到一开始OLED只有“-”符号,此时当输入几个数字后,数字可以成功显示到OLED上,并在程序里记录到待发送的数组里面。
2.4 蓝牙模块及串口应用调试
蓝牙模块选用的是2块HC05蓝牙模块,其中电脑串口的蓝牙模块采用蓝牙模块+TTL转USB方式连接电脑,其中蓝牙模块和TTL的Vcc和GND对应连接,而其rx和tx口交叉连接。2个模块起初是没有相互配置的,首先分别将2个模块上的小按钮按住,再连接至电脑然后放开按钮,此时2个蓝牙模块都进入了AT模式,发送AT指令设置好主从模式及绑定地址,下一次上电后2个模块自动连接起来,可以通过串口程序像普通串口一样收发数据。
此时发送Stm32遥控器中的数据,可以看见蓝牙串口接收到数据并显示于输出串口,保存于ccc.txt中,供Kinect姿态识别程序调用。
2.5 Kinect姿态识别调试与结果
连接好Kinect摄像头,启动程序后可以看见摄像头灯光亮起来,如图1所示。
图1 Kinect摄像头
当打开姿态识别程序,程序会打开一个MFC界面,可以看到此时Kinect摄像头前的人的骨骼图和深度图,并有程序设定的打印显示,如图2所示。
图2 程序启动界面
此时康复训练者跟随打印提示一步步完成每个动作的姿态识别流程,如动作一:屈曲共同运动。
由图3可知,当动作识别成优秀后,可以看到FMA动作计分加了2分,并在窗口打印出下一个动作的提示,此时继续执行动作二。
图3 识别成功:动作一
由图4可知,动作二识别成优秀后,可以看见分数累计成4分,接着依次执行完所有动作。
图4 识别成功:动作二
由图5可知,姿态识别全部结束,可以看见调试流程是符合本设计程序设置的,并能实现姿态识别和累计动作评分的功能。
图5 识别成功:所有动作
3 结论
本文提出一种基于Kinect传感器和表面肌电传感器的上肢运动功能数字化评估系统设计方法,本设计整体包含Kinect、表面肌电传感器、Stm32和蓝牙模块等。经过硬件与软件设计、测试,本系统功能符合预期要求。
(1)Kinect采集人体骨骼信息传送到姿态识别应用里,姿态识别程序可以成功识别出每个动作并对此进行打分。
(2)Stm32上的按键信息输出到OLED上,当按下发送键时,存在数组里的指令信息通过Stm32上的蓝牙模块传送到电脑端的串口软件,串口软件再保存至本地。由Kinect应用再读取本地文本文档的信息,把当前动作识别切换至遥控器指令对应的动作识别并输出到MFC窗口上。