基于三维深度数据的书桌近视监测器
2022-09-07冯昌利
李 鑫,冯昌利
(泰山学院信息科学技术学院 山东 泰安 271000)
0 引言
近年来,中小学学生近视情况越来越严重,2018年教育部联合七部门印发了《综合预防儿童青少年近视实施方案》。另外,办公室人员尤其是文字工作者、开发人员也出现了越来越多的颈椎病症状。分析可知,长在书桌前时间长、坐姿不正确是造成该问题的原因之一。针对于此,本项目结合视觉分析和三维深度数据制作一款针对书桌的坐姿监测器,该设备能实时监测坐姿,当坐姿有问题及时提醒调整至正确姿势,从而起到预防儿童近视和成人颈椎病的作用。本项目拟采用深度相机采集书桌前人员的三维深度信息,采用摄像头采集人体侧面躯干、头部的位置信息,通过设计算法判别当前姿势的正确性继而提示儿童调整坐姿。本设备实时性好、对于各类环境条件不敏感、鲁棒性好,能充分起到预防儿童近视的效果。依据坐姿数据的采集方式不同,坐姿识别方法分为两大类:一类是基于传感器的方法和另外一类是基于图像的方法。最传统的方法是基于传感器的方法,通过不同种类的传感器,例如红外传感器、压力传感器、加速度传感器、超声波传感器等采集不同种类的数据对坐姿进行检测。国内的相关研究主要集中于两个方面,一种是从基于压力分布监测,另一种是基于视频监控的检测。其中,秦美超等[1]从人类坐姿生理学特征出发分析了坐姿与压力分布之间的关系,详细阐明了汽车座椅设计需求以及座椅设计时的曲线标准。白世琪等[2]开发了一套座椅压力检测系统,用以收集座椅接触面与人体臀部压力分布信息,并发送给PC端进行二维重构。郭玉喜等[3]运用英特尔Realsense摄像机加PC机的方式从拍摄的视频数据中识别人脸,寻找特征数据判断用户倾斜的欧拉角和同一坐姿保持的时间等数据来判断被测试者的坐姿标准度和时间是否过长。王春阳等[4]利用计算机视觉技术,通过深入分析实时监控的人体正面坐姿图像信息,间隔性地截取一次视频流数据中的若干帧图像从而识别被测试者的眼睛、嘴巴、额头、鼻子、肩膀等位置信息,与数据库中存储好的标准坐姿图像进行对比来识别坐姿的正确与否。周钰等[5]将薄膜压力传感器配置在被测试者座椅上以获取人体施加在座椅上的压力分布数据,利用压力数据对坐姿进行判断。这种坐姿识别方式应用场景比较广泛,可以大大减少用户的工作量,方便快捷。在该系统中,使用大面积阵列分布电阻式薄膜压力传感器为数据采集基础,以及STM32单片机、解耦电路、采集电路等组成信号采集部分。并使用机器学习技术进行坐姿识别和分类,并实现了该技术在安卓移动端的移植和功能实现。
相比于一般的彩色图像,三维深度图像[6-8]具有受光照变化小和不受复杂环境影响的优点,而且很容易获取实物的三维深度信息。此外,RGB颜色信息对坐姿识别的作用基本可以忽略。与现有已知的方法比较,本文中提出的方法具有以下优点:(1)对常见坐姿进行识别,识别信息丰富;(2)针对不同的坐姿设计了比较高效的前景提取方法;(3)根据不同坐姿的三维深度图像信息,提取出三维深度图像的投影特征与HOG特征来对不同的坐姿进行识别,识别精度高,且对光照和背景的影响小;(4)通过这种方法设计出的书桌检测器具有很好的实用性与鲁棒性。本文所提出的书桌检测器的技术路线流程图见图1。
(1)基于Kinect 深度相机和侧面RGB摄像头的硬件搭建。本项目中各子项目,特别是两个信息采集配件的配置方式见图1。在该设置中书桌平面上也就是当前人物的对面设置一台Kinect 深度相机[9-11],以采集当前人物的三维深度数据。另外,在人物的侧面设置一台RBG相机,以采集书桌前当前人物的侧面坐立二维图像。
(2)三维信息处理获取当前人物头部和胸部的基本三维位置信息。设计信息处理算法分别识别当前人物头部和胸部的基本范围,然后对这些范围内的深度数据进行计算获取头部的基本姿态以及胸部的基本姿态。
(3)二维图像处理以提取当前人物的轮廓,提取侧面形状。针对RGB摄像头提取到的二维图像,使用基于阈值或者基于模型的算法获取侧面的基本轮廓。并在基本轮廓的基础上,对头部和躯干部位进行识别,从而用拟合算法得到当前人物头部和躯干部位(背部)形成的曲线形状。
(4)对数据进行保存以有效管理坐姿数据。为了丰富当前坐姿信息,邀请多位测试者参与坐姿信号的采集。并对这些原始数据处理后,创建数据库保存这些处理后的坐姿数据,以实现丰富坐姿数据的同时能够对这些数据有效管理的效果。
(5)以坐姿数据为参数建立能对坐姿正确性进行判别的数学模型。参考相关文献中的视觉信号坐姿检测函数,结合本项目采集的二维和三维数据进行数学建模,该模型能够在满足一定的物理意义下判定当前人物的坐姿是否属于正确坐姿,若不正确则提供简单建议。
(6)对当前坐姿进行有效反馈。对上述判定函数提供的正确性建议使用声音输出设备提供给当前坐立者有效的声音提示,以起到提醒错误坐姿并及时修改的作用。
1 Kinect深度相机概述
本系统主要采用RGBD深度摄像头获取具有立体视觉的深度图像信息。获取三维图像的深度信息,指的是获取同一场景的若干张不同视角的图像,利用图像的匹配技术和三维重建方法来测算出场景对象的深度信息。Kinect深度相机参数[12-14]见图2。图3给出了Kinect深度相机采集到的RGB图像与对应的深度图像。本项目的设备设置图见图4。
2 Kinect V2面部处理方法getFaces介绍
Kinect V2[15]提供两种级别的面部处理。在第1个层面,我们可以检测和跟踪面部并识别列出的8个面部特征。getFaces方法执行C++代码来提取它的信息,并生成一个带有面部数据的矢量,其中每个向量的200个元素对应于每一个体。getFaces方法,此方法返回一个结构数组,其中包含每个检测到的面部的以下字段:
face box:包含用户面部的矩形。
face rotation:用欧拉角表示的面部方向:俯仰,偏航,翻滚。
head pivot:头部的中心,面部可以围绕其旋转。原点位于Kinect的光学中心,Z轴指向朝向用户,Y轴指向上方,X轴指向228右边。
动画单位:17个动画单位(AUs),用数字表示权重在0和1之间变化。
face model:具有1347个网格顶点的高清人脸模型。
第2层次的人脸处理[16-18],称为高清人脸提供了3个惊人的人脸处理能力:(1)人脸捕捉:构建个人人脸相对于平均值由94个形状变形单元描述的内置人脸模型。(2)人脸跟踪:用户可以进行人脸跟踪17个动画单位(AUs)中的214个,表示为在以下范围内变化的数字权重0和1。如果建立了个人模型,跟踪质量会提高。这使得面部追踪器能够使用面部的精确几何形状来代替内置平均几何形状,导致更准确地表征面部运动。(3)人脸模型:实时三维人脸模型219个网格顶点。Kin2通过提供对这些高清人脸功能的访问getHDFaces方法。此方法返回一个结构数组,其中包含每个检测到的面部的以下字段。
3 基于规则的判别方法
(1)骨骼旋转角计算。由于从Kinect V2获取的坐标都是点数据,很难对坐姿进行较为全面的描述,故而需通过角度特征来对姿态进行描述。因此利用获取到的骨骼关节点来计算每个关节的关节旋转角度,通过这些角度来定义我们的不良坐姿。根据从Kinect V2获取的三维坐标,进行关节旋转角度的换算。如图4所示,点A、点B、点C分别代表3个不同的骨骼关节点,我们通过3个关节点的坐标,需要求出关节点B的夹角θ来作为特征。
首先3个关节,利用两两之间的距离为计算:a=|BC|、b=|AC|、c=|AB|,接下来通过余弦函数求得夹角,即关节旋转角θ,公式见图5。
(2)基于规则的判别方法的算法[19-20],描述与核心代码见图6。
4 实验与讨论
Kinect V2所能获取的骨骼关节点一共有20个,而其中我们所要采用的关节点一共有8个,它们分别是:头部、脖子、脊柱、臀部、左肩、右肩、左肘和右肘。通过旋转角度算法,分别求得以下7个所需要的旋转角度作为判定坐姿的依据,它们分别是:头部和脊柱与脖子的夹角定义为颈部夹角(N);头部和左肩与脖子的夹角定义为左颈夹角(LN);左肩和右肩与脖子的夹角定义为颈肩夹角(NS);头部和右肩与脖子的夹角定义为右颈夹角(RN);脖子和臀部与脊柱的夹角定义为脊柱夹角(S);脖子和左肘于左肩的夹角定义为左肩夹角(LS);脖子和右肘与右肩的夹角定义为右肩夹角(RS)。
对30名男女志愿者进行坐姿信息采集,坐姿为志愿者坐立时常见的6种姿态,每种坐姿采集了随机提取10个深度图像。运用基于规则的方法进行判别,识别正确率可达98.72%,见图7。
本系统针对不良坐姿给青少年带来的危害进行总结,设计了基于Kinect V2的坐姿识别系统。该系统通过Kinect V2深度传感器对人体的骨骼关节点进行追踪和获取,将获取到的关节点数据进行关节旋转角的计算,设计基于规则的算法对坐姿进行识别。通过测试结果可知,本系统能够对人体的常见几种坐姿进行有效检测和对不良坐姿进行识别并及时提醒。除此之外,本系统还具有较好的鲁棒性、高效性等优点。