■张飞宇,兰 扬,朱 伟,宋 玲,王张恒,李 芳,孙德林
(1.中南林业科技大学材料科学与工程学院,湖南长沙 410004;2.中国人民大学信息学院,北京 100089;3.北京金隅天坛家具股份有限公司,北京 100010)
坐姿与健康有着紧密的关系,不良的坐姿会对儿童成长发育期的肌肉、脊柱及腰椎间盘等组织造成不同程度的生理压力,长此以往极易引发脊柱畸形、驼背、颈椎病、近视眼等疾病。6-12岁的儿童正是身体生长发育的黄金时期,但在升学压力日益激烈的大背景下,学生成了新时代的“久坐族”。这段时期的儿童骨骼肌肉与生理各项机能尚未发育完全,不良的坐姿会对儿童的健康产生极大的影响[1-4]。
■图1 基于ST-GCN的儿童坐姿矫正家具方法流程图
研究表明,外界的及时提醒或矫正可以有效帮助儿童养成良好的坐姿习惯[5-6]。运用机器视觉技术识别儿童姿态、帮助儿童实现健康的学习坐姿是一种可行的方式,可为智能趋势下的儿童坐姿矫正家具设计提供有效支撑[7]。目前,坐姿检测的研究方法主要有基于接触式传感器与基于计算机视觉图像识别两种。其中接触式传感器的坐姿检测需要传感器与人体直接接触,不仅设备价格昂贵、采集过程繁杂,且灵敏度受环境因素影响较大降低,易出现信息误差[8-10]。而基于计算机视觉图像的识别技术具有较高的识别率和鲁棒性,可扩展性高、信息丰富且更加灵活,更适合实际应用[11]。机器视觉技术可以利用人体姿态估计开源库(OpenPose)和深度摄像机捕获得实时骨架数据,进而获取动态的人体关键节点。OpenPose的优势在于它可以实时地估计人体姿态,即使在复杂的环境下也能够保持准确性。郭园[12]等将OpenPose与Kinect V2传感器相结合,精准捕捉了小学生动态学习坐姿中的身体关键指标,帮助判断坐姿与桌椅的适应情况;魏华良[13]等使用连通域分析法,实现儿童不当坐姿行为的检测和警报;任宏[14]等提出了以人体工学观测方法作为坐姿行为健康判定模型,探究了不同桌面倾角对儿童脊椎健康的影响;郑佳罄[15]等使用双目摄像头实时采集用户图像,利用简化的OpenPose模型提取人体骨骼关键点并实时检测。在上述研究中,大部分使用成本较高的Kinect传感器,导致这种技术在儿童家具领域难以大规模应用。而利用普通摄像头采集数据的,又因其算法或数理统计的方法的局限存在一定的误差,导致结果精度也差强人意。
本研究从为儿童坐姿矫正学习桌椅的设计提供科学依据的角度出发,提出一种基于图像识别的儿童坐姿矫正家具研究策略。将OpenPose与图卷积神经网络(spatial temporal graph convolutional networks, ST-GCN)相结合,其中,STGCN的核心是将GCN与时间卷积网络(Temporal Convolutional Network,TCN)相融合,将图卷积网络扩展到时空图模型,基于算法对动态人体骨骼序列进行建模,通过保留骨骼关节点之间在时间和空间维度上的相关性信息,使模型具有很强的学习能力和泛化能力[16-17]。以解决传统物理矫正器给儿童带来的束缚和图像识别坐姿部分遮挡及复杂背景等问题,使识别系统拥有判断儿童健康坐姿的能力,实现低成本、无需穿戴且实时的坐姿检测。这可以进行及时坐姿劝导,为智能儿童坐姿矫正家具的设计提供支撑。
基于ST-GCN的儿童坐姿矫正家具研究方法流程如图1所示。首先,自主采集儿童坐姿行为并构建研究数据集,将数据集经过一系列预处理之后输入到OpenPose人体2D姿态估计模型来提取目标的骨骼关节点作为运动特征信息;然后,将获取的数据输入到ST-GCN时空图卷积网络中识别儿童坐姿所属类别,训练SOFTMAX分类器来判断儿童坐姿是否标准,并在识别到非正确坐姿时进行实时语音提醒;最后结合智能座椅对儿童坐姿进行提示或矫正等。在满足坐姿识别率条件下,进一步分析在实际应用中的效果,并进行不断地优化。
从湖南省砂子塘新世界小学自主采集儿童坐姿行为数据集,供模型训练研究。数据集共1800段视频样本,包含正确坐姿和非正确坐姿,其中非正确坐姿为调研相关研究资料确认的七种儿童常见错误坐姿:趴写、含笔、左手托腮、右手托腮、驼背、头往左斜、头往右斜,如图2所示。为了更好地满足后续模型提取目标骨骼关节点的需要,先对采集的视频样本进行预处理:将所有的视频大小都裁剪为340×256的分辨率,并将视频中包含人体的部分裁剪出来,获得更稳定更好的关节点准确率。
OpenPose是经典的基于深度学习的人体姿态估计模型,可以检测图像中单人或多人的人体动作[18]。通过提取视频中人体骨骼关键点的位置坐标,将输出的坐标信息作为动作识别算法的输入,最终实现坐姿行为动作识别的功能,实现了实时检测并保证了识别精度。由于在研究中足部关节点对最终的识别效果没有显著影响[19],故采用18个关节点的输出形式。人体姿态骨架图(Skeleton Graph)用图形格式表示人的动作,如图3所示。
使用OpenPose提取每段视频数据中每帧的18个带置信度的2D骨骼点(x,y,score),然后在时间和空间维度进行归一化,也就是对每一个关节在帧序列中的位置坐标(x,y)和置信度归一化到[0,1],最后生成json文件,添加对应的标签,将数据集转成图神经网络使用的格式,如图4所示。
CNN被广泛应用于图像分类、文本分类、半监督学习等深度学习任务中[20],为了采用ST-GCN模型提取儿童坐姿的嵌入特征,图像经过OpenPose处理后,得到一系列关节点序列,可以构建人体关节点序列的时空图结构,作为图卷积网络的输入。
将上述骨骼关节点时空图输入STGCN模型后提取时空图的高阶特征图,然后使用SoftMax分类器识别视频中儿童坐姿的所属类别。坐姿分类时采用top1准确率,此处模型输出的是概率向量和对应的动作类别标签,top1准确率表示概率向量中,最大概率的预测类别与真实类别一致则为正确,否则是预测错误。最后当模型识别出儿童坐姿为非正确坐姿时,调用第三方接口进行实时语音提醒,如图5所示。
■图5 基于图表示学习的姿态估计架构示意图
实验平台硬件环境配置如下:服务器操作系统Ubuntu 16.04;CPU:英特尔(Intel)12核至强ES-2680,主频为2:40GHz;显卡:4个英伟达(NVIDIA)TITAN V;软件配置:CUDA版本10.0.130,cuDNN版本7.6.4。
ST-GCN模型的输入是(N, C, T, V, M)的张量。首先将输入BN层进行归一化,接着通过9层ST-GCN单元,每个单元包含ResNet结构,经过每个单元后以0.5的概率随机dropout特征,空间维度是关节的特征,开始是3,前三层关节的特征维度是64,中间三层特征维度128,最后三层特征维度256;第四、七层特征维度翻倍将stride设为2;最后使用SoftMax分类器。训练时使用Glorot来初始化模型的参数,并且使用Adam优化器来训练模型,批处理大小设置为16,学习率设为0.01,每经过10个epochs学习率自乘0.1。
本文在节点分类任务上广泛使用的Macro-F1和Micro-F1作为评估指标。对于儿童坐姿识别多分类实验,分类算法的性能可以通过精确率(precision P)、准确率(accuracy,Acc)和召回率(recall,R)来评判,公式如(1)-(3)式所示:
首先,统计各个类别的真正例(TP)、假正例(FP)、假反例(FN)和真反例(TN),加和构成新的TP、FP、FN、TN;然后,计算micro-Precision和micro-Recall;最后,计算得到micro-F1。同理可得统计各个类别的TP、FP、FN、TN,分别计算各个类别的Precision和Recall,得到各个类别的F1值,然后取平均值得到macro-F1。
为了验证所提出的算法有效性,邀请10名6-12周岁的儿童进行准确性测试,对每位儿童的8种坐姿分别测试3次,共测试240次测试。将算法与base01 line进行了对比,结果如表1所示,可以发现引入ST-GCN模型后Macro-F1和Micro-F1评分分别提高了6.8%和7.4%。
表1 儿童数据集上实验结果对比
将模型输出的分类结果按照坐姿的不同类别进行拆分,如表2所示,本文方法识别率高且稳定性好,可以发现正确坐姿、右手托腮、头往左斜、头往右斜、趴写这五种坐姿的识别率相对较高。而左手托腮、含笔、驼背这三种坐姿的识别率相对较低,一种原因是这三种坐姿的动作幅度较小,另一种原因是具有与其他类别相似的关节位置。鉴于OpenPose一共有两种人体骨骼关节点的输出方式,分别为18个关节点和25个关节点,两者主要差别在于足部关节点的多少。而足部关节点的多少对最终的识别效果并没有太大影响。因此,为提高其余三种坐姿识别率,本文采用18个关节点的输出格式,当仅输入上肢的关节点时,减少了冗余信息。
表2 儿童八种坐姿分类结果评价
图6为实验得到的混淆矩阵图,其中横行表示是数据样本的真实标签,竖列表示对应预测类别标签的概率,对角线为各个类别样本标签预测正确的概率。从图6中可以较为直观地看出识别率较低的左手托腮、含笔、驼背这三种坐姿容易被错误识别成其他类别,因此该场景下需要提取更多的特征信息来进行更为准确的分类识别,上述数据集属于自采数据,而为了完成儿童八种坐姿分类精准结果评估,在研究中增加了大量的动作种类和数据样本来进一步完善,以上可以说明本研究提出的模型在目标坐姿具有相似动作的场景中识别准确度仅有较少影响。
为了充分研究模型的稳定性,针对所提出的方法进行了关于参数敏感度的分析实验,研究了节点嵌入维度、学习率和权重衰减三个参数对于坐姿识别准确性的影响,具体的参数选择设置范围如表3所示。
表3 参数敏感度实验设置范围
针对不同参数组合设置的实验结果如图7所示:发现本文提出模型的性能表现比较稳定,最终节点分类的得分只在1%~2%的范围内波动。对于不同节点嵌入维度的设置,模型的性能呈现出在小范围内先上升后下降的趋势。因为模型需要一个合适的维度来编码输入时空图上的结构信息,而更大的维度可能会引入额外的噪声;经过多次实验测试发现,节点嵌入维度按照不同模型层次进行组合时,比如前三层关节的特征维度设置64,中间三层特征维度设置128,最后三层特征维度设置256,模型的性能达到最佳。对于不同学习率和权重衰减的设置,模型的性能同样呈现出小范围先上升后下降的趋势,最优的学习率和权重衰减参数设置值为0.01。
■图8 学龄期儿童坐姿检测识别最终效果图
为了实现本文提出的智能儿童坐姿矫正学习桌椅设计研究的目的,进行健康坐姿行为的引导,进一步提高人机交互性,将上述模型部署到智能儿童座椅上,实验结果如图8所示。当识别到目标出现非正确坐姿时,将调用百度AI开放平台的语音合成接口进行及时提醒,当系统连续3次检测到同一不正确的坐姿时,将语音播报提醒用户。考虑到实际工作学习中不宜过于频繁地提醒用户坐姿,系统每隔60s进行一次检测,引导儿童调整坐姿。
本研究针对学龄期儿童这类特殊人群的需求,基于图卷积网络搭建姿态估计和动作识别的混合模型,借助OpenPose提取人体骨骼关键点坐标并利用ST-GCN进行动作分类和识别,获取儿童学习过程中的行为特征,对读写坐姿行为分类进行定义、训练与验证。通过建立学习坐姿数据集,有效识别出八种坐姿状态,使得坐姿识别准确率和鲁棒性得到大幅提升,并证实了对矫正儿童坐姿的有效性和可行性。实验结果可为具有坐姿提示功能的儿童桌椅的设计提供参考,引导学生培养健康的坐姿习惯。