行业动作训练中人体姿态数据库的建立与评估
2020-10-12刘丰袁海峰张小琪彭婕
刘丰 袁海峰 张小琪 彭婕
1 传感器简述
人体运动学评估可通过如惯性动作捕捉系统(INS)之类的接触技术或通过非接触系统估算时间推移的身体部位(BP)位置来实现。与接触式传感器不同,非接触式传感器不用佩戴在用户身体上即可获得用户身体数据。常见的非接触式传感器有电磁技术、超声波技术、可见光技术、红外雷达技术。微软Kinect V2是一种结合了可见光技术与红外技术的非接触式人体传感器。
Kinect V2传感器(Kinect的第二代)具有更精确的25关节跟踪功能。目前仍然是人体追踪领域精度较高的识别设备硬件。选择Kinect V2来研究姿势控制与识别,得出的结论通常与基于标记的系统所获得的结果相当。Kinect V2传感器能够实时提供较高姿态估计精度,而无需进行校准。有关研究表明使用Kinect V2传感器作为评估运动的生物特征输入设备具有较好的效果。Kinect V2精度对于室内应用或上肢运动表现的评估是可以接受的。作为评估生物特征的工具, Kinect V2通过提供人体动作的连贯评估适合行业动作训练与评估。
微軟的数据表明,Kinect V2具有改进的身体跟踪功能,改进的深度感应。硬件参数为:1080p彩色摄像机(30 Hz),新的主动红外(IR)功能512×424 30 Hz。
2 铁路行业动作特点
铁路行业发展迅猛,各类工作人员规模不断扩大,行业对从业人员的动作要求更加规范。但实际工作与培训中,人员动作训练一直没有形成有效的数字化方法。铁路行业动作的特点为很多专业工种如车站值班员、客运员、机车乘务员都有专属工作动作。这些动作上肢动作要求多,下肢动作要求少;静态动作要求多,连贯动作要求少;语言与肢体动作组合标准多,单一动作要求少。为了形成科学的训练体系与规范化的评估方法。本文探讨动作训练的数字化输入与评分系统构建。
3 Kinect的骨骼跟踪技术
Kinect中将人体静态动作称为离散手势,其静态采集后得到的验证值为布尔值,通过置信区间来验证动作的相似度。而连续手势则提供了进度值,并允许你选择通过多个离散手势来跟踪进度。
Kinect中将25个骨骼节点组成JointType集合,在Kinect SDK 2.0中对骨骼节点定义了能够进行跟踪(Tracked)、不能够进行跟踪(Not Tracked)、通过运动状态进行推断跟踪(Infered)三种状态。
4 Kinect语音识别技术
Kinect的麦克风阵列在Kinect设备的下方。这一阵列由4个独立的水平分布麦克风组成。可以探测到声音的来源方向。麦克风阵列捕获的音频数据流经过复杂的音频增强效果算法处理来移除不相关的背景噪音。所有这些复杂操作在Kinect硬件和Kinect SDK之间进行处理,这使得能够在一个大的空间范围内,也能够进行语音命令的识别。
语音识别可以分为两类:对特定命令的识别(recognition of command)和对自由形式的语音的识别(recognition of free-form dictation)。自由形式的语音识别需要训练软件来识别特定的声音以提高识别精度。
命令识别(Command recognition)则应用了不同的策略来提高识别精度。和必须识别说话人声音不同,命令识别限制了说话人所讲的词汇的范围。基于这一有限的范围,命令识别可以不需要熟悉讲话人的语音模式就可以推断出说话人想要说的内容。
本文采用命令识别的训练方法,将行业标准“口呼”识别为语音命令。再结合识别指令和骨骼追踪系统产生一个复合的姿势判断,最终作为行业动作的评判模型并给出评分。
5 建立动作姿态样本库
本文在建立手势样本库过程中主要分为行业姿态整理与标准化、制作样本库、调用与验证样本三个步骤,具体步骤的工具和如图1所示:
图1:行业动作训练数据库建立流程图
5.1姿态特征与骨骼节点提取
Kinect将侦测到的3D深度图像,转换到骨架追踪系统。该系统最多可同时侦测到6个人,包含同时辨识2个人的动作;每个人共可记录20组关节。Kinect骨骼跟踪采用红外信息不受周围光照的影响。骨骼信息的获取为了便于神经网络的训练,更为了提取高层信息,比较函数使用 25组的关节点之间的曼哈顿距离(二范数):为了数据更加明显起见,我们为每一个数据都乘以权重w=1000。
神经网络是用Pytorch实现的,因为是分类问题,我们使用全连接神经网络,层数在最开始设计的是四层,输入数据是25维度的,输出是每个工种的标准动作数量。如机车司机动作有21个,则输出是[0,20]。神经网络的第一层隐藏层的单元数一共设计了四十个,第二层隐藏层单元数是五十个。 输入数据x的格式是二维数组。x[0] 的维度是25 维,代表了所采集的 25个骨骼位置。
5.2音频数据处理与语音识别
Speech类库的语音识别功能是通过SpeechRecognitionEngine对象提供的。该类是语音识别的核心,它负责从Kinect传感器获取处理后的音频数据流,然后分析和解译这些数据流,然后匹配出最合适的语音命令。引擎给基本发声单元一定的权重,如果判断出发声包含特定待识别的命令,就通过事件进行进一步处理,如果不包含,直接丢掉这部分音频数据流。
当安装了Kinect for Windows运行时语音库时,ID为Server Speech Recognition Language-Kinect(zh-CN)的语音库可以使用。最后,语音识别引擎需要进行配置,以接收来自Kinect对象的音频数据流。
语音识别引擎使用LoadGrammar方法将Grammars对象加载进来。启动引擎有几种模式,可以使用同步或者异步模式启动。另外也可以识别一次或者继续识别从Kinect传来的多条语音命令。
本文采用异步语音识别的方法对启动引擎后的语音进行多次连续识别。在识别中开启多线程技术减少系统占用,提高系统识别体验。
5.3建立合成行业数据库
铁路行业动作讲究“手比”、“口呼”,其要求不折不扣地执行标准动作。铁路行业采用“现场作业标准化”、“过程控制常态化”,处处贯彻“让标准成为习惯,让习惯符合标准”的理念。本文从动作与语音指令两方面出发,通过数字化的方法建立了完整的行业动作数据分类方法。其具体工作流程如下:
图2:动作库建立、训练、验证过程
6 動作训练模型的评估与评分标准
评分系统的评估以静态动作的置信值为依据,将行业技能训练中需要反复训练的标准化动作进行捕捉,再通过机器学习对计算机进行训练,让计算机“记住”这些行业动作的基础特征。其标准统一、验证可靠、训练可重复。对辅助动作训练的规范效果明显。考核时还可以利用这套设备识别出考生的动作是否规范,并根据标准程度进行打分。其打分标准由机器学习的置信度为依据(0-1),乘以100得到一个百分制的评分系统。结合语音库的指令识别,形成一个多维的行业动作判断库。其具有规范化、标准统一的优点。将大大提升训练与考核的标准性与公正性。其后验识别率在静态动作识别较高,在连续动作识别方面略低,均达到了初期设计需求。
下表为3个常见机车司机动作校验识别率:
动作行业 姿势 语音 实验次数 误检 识别率
确认进站信号黄灯正线停车 伸右手45度,四指并拢,大拇指伸出 司机:进站信号
副司机:正线停车 100 3 97%
确认进站信号绿灯通过 伸右手45度,三指并拢,向上伸出食指和中指 司机:进站信号
副司机:绿灯通过 100 1 99%
确认进站信号红灯机外停车 伸右手45度单臂拢拳急剧晃动 司机:进站信号
副司机:机外停车 100 5 95%
7 总结
本文将最新计算机技术与铁路标准化作业流程训练的结合应用。用最新的计算机体感识别设备Kinect V2结合图像识别、语音识别领域最新成果应用到对肢体动作标准化有要求的训练场合,实现了一套跨学科的动作训练与考核软硬件结合方案。从数据库的结构设置及建立方面阐述了该方案的工作模式与建立过程。对生产生活中的其他动作识别、音频类训练库具有借鉴和指导意义。
参考文献
[1]梁修容,杨正益.基于聚类和SVM的数据分类方法与实验研究[J].西南师范大学学报(自然科学版),2018, 43(3): 91-96.
[2]李红波,李双生,孙舶源.基于Kinect骨骼数据的人体动作姿势识别方法[J].计算机工程与设计,2016, 37(4): 969-975.
[3]郑中华.基于肢体动作的人体姿态识别研究[D]:[硕士学位论文].西安: 西安工业大学, 2015.
基金项目
新疆维吾尔自治区职业教育科研课题(课题编号:XJZJKT-2019Y20)。