基于手势识别的手部康复智能评估算法研究
2022-01-18刘志诚涂鑫涛周轩阳费敏锐
徐 胜,刘志诚,涂鑫涛,周轩阳,费敏锐,张 堃,5
(1.南通职业大学电子信息工程学院,江苏 南通 226007;2.华东理工常熟研究院有限公司,江苏 常熟 215500;3.南通大学电气工程学院,江苏 南通 226019;4.上海大学机电工程与自动化学院,上海 200444;5.南通市智能计算与智能控制重点试验室,江苏 南通 226019)
0 引言
手部康复评估对于手部中风和肌肉衰退的患者是必不可少的。现有的X光、磁共振等方式,一方面依赖于大型设备,造价昂贵,另一方面依赖医生的经验、水平,无法标准化。而基于数据手套的虚拟康复系统,在佩戴手套时容易对手部有创伤的患者造成二次伤害。本文针对现有手部康复评估手段存在的不足,将计算机视觉技术用于手部康复评估。
近年来,随着卷积神经网络(convolutional neural networks,CNN)[1]、递归神经网络、深度信念网络等技术的发展,研究人员基于计算机视觉技术开展了手势识别研究。Alam[2]等采用深度视角传感获取手势图像数据集,用于解决手势图像样本多视角的提取问题。但是,深度视角传感受光线干扰影响较大,只能在一些特定的场景下使用,不利于普及。Cao[3]等提出的OpenPose模型,采用自低向上的检测方法,与局部亲和算法相结合,可以检测出关键点并把关键点连接起来,检测速度和检测精度都较传统模型都有大幅度提高。但是,OpenPose模型规模太大,不适用于实际场景。王珩[4]采用了卷积神经网络的方法,使用迁移学习的训练方式训练YOLOv3网络。但是,该模型检测速度较慢,并且只能在GPU上运行,对硬件要求比较高。
因此,本文对YOLOv4算法进行改进,提出Hand-YOLOv4算法。经过Hand-YOLOv4算法识别出手部区域,基于RexNet网络进行深度学习,检测出手部21个关键点。通过动态时间规整(dynamic time warping,DTW)算法作动态时间规整,比较患者动作与标准动作的关节角度变化轨迹的相似度,进行康复评估。本文以自主手势识别技术为核心,结合DTW算法,设计了基于手势识别的手部康复智能评估算法。该算法架构轻量化,具有检测速度快、检测精度高的优势。
1 Hand-YOLOv4算法
本文对YOLOv4算法进行改进,提出了针对手部康复的Hand-YOLOv4算法。Hand-YOLOv4算法结构如图1所示。
图 1 Hand-YOLOv4算法结构
深度卷积神经网络通常由大量卷积组成,规模大,计算成本高。因此,减少计算成本一直是网络模型优化的一个方向。例如,在MobileNet网络中引入深度卷积、ShuffleNet混洗操作,使用较小的卷积核(浮点运算)构建有效的CNN。但是1×1卷积层仍将占用大量内存,需要较高的每秒浮点运算次数(floating-point operations per second,FLOPs),降低计算量的效果不理想。
因此,本文参考GhostNet[5]网络中的堆叠Ghost模块的原理,结合注意力机制,原创性地设计了轻量化的网络模块Lwblock(light weight block),用于替换YOLOv4算法中的模块Resblock。利用Ghost模块生成与普通卷积层相同数量的特征图,以Ghost模块替换卷积层,并集成到现有的神经网络结构中,可减少计算成本。Lwblock网络模块结构如图2所示。
图2 Lwblock网络模块结构
2 基于DTW算法的康复评估方法
患者在康复训练过程中,由于动作快慢等因素,导致患者动作与标准动作在时间轴上存在一定的差异,不能形成帧与帧对应的关系。直接使用欧式距离、相关性系数等方法无法正确地评估运动数据流的相似度[6]。采用DTW算法可以找到2个时间序列的最佳对齐方式[7],尤其适用于不同长度、不同节奏的时间序列。DTW算法将自动扭曲时间序列,即在时间轴上进行局部的缩放,使得两个序列的形态尽可能一致,得到最大相似度[8],从而确定患者动作与标准动作之间的差异性。差异性越大,就意味着患者的肢体运动能力越差。
由于Hand-YOLOv4算法采集的关键点的坐标时间序列受个体影响比较大,所以先将各关键点的坐标时间序列转换为关节的角度时间序列,再比较患者动作与标准动作的关节角度变化轨迹的相似度,从而进行康复评估,判断患者的恢复情况。
下面以大拇指角度变化为例,描述DTW算法在动作数据流相似度评估中的应用。
首先,将坐标信息转换为角度信息,如式(1)所示。
(1)
根据DTW算法计算出其相似度,如式(2)所示:
(2)
式中:D为DTW距离;K为路径长度。
选取阈值λ。当SDTW≤λ时,说明拇指弯曲动作完成度较高,大拇指运动能力较好,康复情况较好。反之,则说明拇指弯曲动作完成度较低,拇指运动能力差,康复情况不好。
3 基于手势识别的手部康复智能评估算法设计
为了验证所提出的基于手势识别的手部康复智能评估算法,本文设计了1个非穿戴式的手部康复评估模型。
3.1 智能康复评估流程
智能康复评估算法的第一步就是采用Hand-YOLOv4算法框选出手部区域。此算法分为两种模式:一种是标准动作流录入模式,另外一种是康复评估模式。
在标准动作流录入模式下,标准动作流数据库的建立流程如下。
①3名健康人员进行动作流录入。基于Hand-YOLOv4算法采集他们的动作流,每人每个动作重复5遍,共15组数据。
②读取15组数据,将第1组数据作为初始动作流模板。
③计算下一组数据与模板的DTW距离。若DTW超过阈值,则丢弃。若距离未超过阈值,则将2组动作流按照DTW匹配路径重新映射,并给模板数据分配0.8的权重,给下一组数据分配0.2的权重,计算对应序列点的加权值,作为新的动作流模板。
智能康复评估算法流程如图3所示。
图3 智能康复评估算法流程图
④重复步骤③,直到遍历完15组数据。
在康复评估模式下,患者做相应的手部康复动作,由单目相机采集信息,通过Hand-YOLOv4算法进行检测。基于DTW算法比较患者动作与标准动作的关节角度变化轨迹的相似度,进行康复评估,判断患者的恢复情况。
3.2 智能康复评估过程
具体评估步骤如下。
①对摄像头采集到的图像数据进行预处理,并对图像作归一化和标准化处理。
②基于Hand-YOLOv4算法,识别出手部矩形区域,并建立坐标系。
③用RexNet对手部关键点进行预测,识别出手部的21个关键点,并根据手部关键点进行连接,构成对应的向量。手部关键点对应序号如表1所示。
表1 手部关键点对应序号
④使用DTW算法进行康复评估,判断患者的恢复情况。
实际场景模拟如图4所示。
图4 实际场景模拟
4 试验分析
4.1 试验环境与评价指标
本检测平台由S-YUE晟悦1080P摄像头和1台计算机组成。摄像头用于采集手势信息,通过USB接口与计算机连接。
试验所用的训练数据集是微软公司制作的COCO数据集。它是一个集训练、验证、测试于一体的用于图像识别的数据集,有超过 200 000 张图片、80种物体类别。所有的物体实例都用详细的分割mask进行了标注,共标注了超过 500 000 个物体实体。
试验中所检测的手部关键部位共21个。所用的精度评价标准为平均精度均值(mean average precision,mAP)。分别使用50%、75%和90%作为每类关键点的检测精度阈值,然后计算其平均值并作为模型的平均检测精度。所用的速度评价指标是帧率,单位为每秒传输帧数(frame per second,FPS)。
4.2 Hand-YOLOv4算法测试
为了验证Hand-YOLOv4算法的性能,分别使用Resnet50、Darknet53和Hand-YOLOv4的主干网络这3种模型进行分类预测[9]。3种模型参数指标如表2所示。在输入尺寸均是416×416时,Hand-YOLOv4的主干网络所需参数量最少,只有20.4 MB,同时帧率也均高于Resnet50和Darknet53。试验结果表明,本文提出的Hand-YOLOv4的主干网络是最优的。
3种主干模型的检测精度对比如图5所示。在COCO数据集上采用AP、AP50、AP75 3种不同的评价指标进行检测。由图5可知,在主干网络方面,Darknet53比Resnet50效果更好,但是Hand-YOLOv4的主干网络效果最优。
图5 检测精度对比图
不同改进方法在COCO数据集上的消融试验结果如表3所示。
方法一仅使用YOLOv4的主干网络Darknet,不作任何改进。
方法二尝试优化提取底层特征的方式,在Darknet的基础上引入注意力机制(self-attention mechanism,SE),模型的mAP会增加到41.4%,而效率没有任何损失。
方法三使用网络模块Lwblock替换Darknet中的模块Resblock,可以提高性能。从表3可以看到,mAP提高了0.24%,FPS提高了近14%,而计算量下降到原来的一半左右,总的计算时间减少了。
方法四将SE引入网络模块Lwblock,整体替换Darknet中的模块Resblock。模型的mAP会增加到41.6%,计算量较方法一下降了一半,FPS较方法一提高了近14%。
总的来说,采用方法四的检测效果最优[10]。
4.3 智能康复评估算法测试
试验分别采用OpenPose、YOLOv4+RexNet、Hand-YOLOv4+RexNet作为手部关键点识别算法开展算法性能对比测试。
首先,采用标准动作流录入模式,录入6个动作,作为标准模板。每个动作采集5次,完成标准数据库的建立。
然后,在康复评估模式下,选取10名健康受试者按照随机顺序、不同程度地做出标准数据库中的6个动作。每个动作做10次,共计600次试验,得出600组对应的康复评估结果。同时,针对系统所录制的受试者测试过程,进行人工评估,将算法评估结果与人工评估结果进行对比。
经过统计,OpenPose+DTW的模型检测精度为75.9%,YOLOv4+RexNet+DTW的模型检测精度为89.54%,本文提出的Hand-YOLOv4+RexNet+DTW的模型检测精度高达93.45%,效果最佳。
5 结论
本文提出将计算机视觉检测技术用于手部康复评估,创新性地提出非穿戴式的基于手势识别的手部康复智能评估算法。该算法能够避免对手部有创伤的患者造成二次伤害。在YOLOv4算法的基础上加以改进,提出Hand-YOLOv4算法,测量精度达到41.6%,帧率提高了14%,计算量降低了一半左右;结合DTW设计了手部康复智能评估算法,可以找到2个时间序列最佳的对齐方式,进而确定患者动作与标准动作之间的差异性。测试表明,该智能康复评估算法的检测精度可达到93.45%,能够胜任手部康复评估的工作,将有效推动手部医疗康复领域向舒适化、便捷化方向发展。