曹立波 赵俊杰 陈凯 戴丽华 朱李平 陶强
(1.湖南大学,汽车车身先进设计制造国家重点实验室,长沙 410082;
2.长沙立中汽车设计开发股份有限公司,长沙 410205)
为降低儿童独自长时间留在密闭的车内发生危险的可能性,中国新车评价规程(China-New Car Assessment Program,C-NCAP)将在2025 年版管理规则中加入儿童存在检测测试项目,为安装该装置的车辆提供加分项。
检测车内是否滞留儿童需要借助传感器来实现,现有技术大多使用红外热传感器、电容传感器等。杨波等[1]通过红外热传感器检测车内是否存在儿童,但在车内温度高于50 ℃时传感器会出现“高温致盲”现象;
王润民等[2]利用电容传感器,将人体等效为电容,根据电容的改变判断是否有人滞留在座位上,但难以特异性地区别人体和其他物体。Levi[3]提出了一种神经网络结构用于进行年龄段分类,检测速度较快,但当车内遗留人员的面部所在平面与相机所在平面的夹角大于40°时,无法检测到人脸,也无法提取面部特征。
基于深度传感器中深度信息的肢体尺寸测量技术可以排除上述情况的干扰,检测准确率较高,有较强的实用价值,故本文提出基于肢体尺寸的车内遗留儿童检测方法。首先通过OpenPose 算法检测车内遗留人员身体的9 个骨骼点,得到每个骨骼点在红外图上的像素坐标,再利用相机内参和骨骼点的深度信息求得每个骨骼点在深度相机坐标系下的空间坐标值,通过求得所需肢体两端骨骼点间的欧氏距离获得肢体尺寸,最后利用最小二乘法拟合出肢体尺寸与人体体积的关系,利用人体体积与设定的阈值的关系判断其为成人或儿童。
考虑到乘员的自救能力,本文将13 岁及以下年龄段的乘员划分为儿童,其余年龄乘员划分为成人。
2.1 数据采集
本文采用TOFIR 深度相机进行图像深度数据的采集。TOFIR 深度相机通过红外发射器向目标连续发射红外脉冲,由传感器接收返回的脉冲信号,通过测量红外脉冲发射及被接收的时间差,计算得到相机与被拍摄物体的距离以产生深度信息,从而得到RGB 图片、红外图片及深度图片。
本文数据采集对象为20 位成人和20 位儿童,采集的数据集为视频数据集,每个视频的录制时长为5 min 左右,视频帧速率为15 帧/s。在视频录制过程中,儿童和成人单独或两两一组坐在汽车的后排座椅上,为了确保视频数据集的真实性,要求试验对象在车内自由动作,数据采集示例如图1 所示。
图1 视频数据采集示例
为使试验结果具有可比对性,在录制数据集前采集了每个试验对象的真实肢体尺寸。具体采集方法为在一面干净的墙上水平和垂直方向分别粘贴最小刻度为1 mm的标尺,测量时要求试验对象背靠且紧贴墙壁,如图2所示。
图2 测量试验对象的肢体尺寸
2.2 人体骨架识别原理
本文采用OpenPose算法进行人体骨架的识别[4]。OpenPose算法采用自下而上的人体骨骼算法,分为2个步骤,先通过卷积姿态机(Convolutional Pose Machines,CPM)检测图片中所有的人体骨骼点,再通过骨骼点亲和域(Part Affinity Fields,PAFs)算法将同一试验对象的所有骨骼点聚类在一起并进行连接。
本文使用的训练数据集是COCO 数据集,共有18 个骨骼关键点,如图3 所示。OpenPose 算法由2个分支组成,算法模型结构如图4 所示。模型的输入为RGB 彩色图片,通过特征提取主干网络VGG-19 提取输入图片的特征并输入到2 个平行的分支结构中。第1个分支用来训练骨骼点的坐标位置和置信度,输出包含人体骨骼点位置信息的热力图和置信度;
第2 个分支用于训练人体骨骼点的亲和度,输出为每2个骨骼点间的亲和度,进一步连接亲和度最高的骨骼点,形成肢体。在训练阶段,每个特征图都利用损失函数计算损失值,再根据损失结果对前面的网络结构进行反馈,不断更新网络参数,网络一直进行循环,直至收敛。
图3 人体18个骨骼点
图4 OpenPose算法结构
2.3 人体肢体尺寸测量算法
本文试验的数据采集使用由相机输出的3 种类型图片,分别为尺寸为640×480 的RGB 图片、尺寸为240×240 的红外图片及尺寸为240×240 的深度图片。考虑到RGB 图的成像质量受光照条件影响较大,在过亮或过暗条件下,OpenPose 算法在RGB 图上的骨骼点检测效果很差。但红外图的成像质量不受外界光照条件的干扰,OpenPose算法在该类图上检测效果良好,因此,本文骨骼点检测算法的输入数据为尺寸为240×240 的红外图。
以红外图片作为输入,经过OpenPose 神经网络,输出18 个骨骼点的像素坐标。在红外图和深度图尺寸一致的情况下,将红外图片上骨骼点的像素坐标投影到深度图上,即可获得该像素点在该相机坐标下的深度信息。进一步获取相机内参fx、fy、cx、cy,其中fx为相机的水平焦距,fy为相机的垂直焦距,cx为相机在水平方向上的偏移量,cy为相机在垂直方向上的偏移量。将所需骨骼点的像素坐标(x′,y′)转化为相机坐标系下的空间坐标(x,y,z):
式中,z为骨骼点与相机平面的距离,通过相机直接测得。
利用欧氏距离公式即可求得任意两骨骼点之间的空间距离,即人体的肢体尺寸。
本文利用Python 语言书写代码,获取了视频数据集中试验对象每一帧各肢体的测量长度,并将其记录在表格中,绘制试验对象每一视频帧的肩宽测量结果散点图,如图5 所示。由图5 可知,测得的该试验对象的真实肩宽为0.31 m,允许误差范围为0.26~0.36 m。
图5 帧数-肩宽散点图
从图5 中可以看出,由于车内人员的自由活动以及相机自身存在的误差,相机测量值与实际值不完全一致,且当试验对象身体被部分遮挡或相对于相机有较大偏角时,肩宽的测量结果与真实值的差值较大。因此,需剔除不合理的肢体尺寸数据以确保试验结果的准确性。
3.1 剔除深度值缺失的骨骼点
在将图片中骨骼点的像素坐标转化为相机坐标系下的空间坐标过程中,发现某些骨骼点的深度为0 mm,如图6 所示。出现上述现象的原因是某些骨骼点映射到了车内座椅上,而试验车辆的座椅为黑色,TOFIR 深度相机发射的红外光到达黑色座椅上时被吸收导致红外光无法反射,因此黑色座椅上所有点的深度值均为0 mm。
图6 骨骼点深度值为0 mm的情况示例
考虑到实际情况下,人体骨骼点与相机的距离为0 mm的概率可以忽略不计,故可直接剔除此类数据。
3.2 剔除被遮挡的骨骼点
试验过程中发现,当试验对象某个骨骼点被遮挡且遮挡面积不大时,该骨骼点仍会被识别,如图7所示。在该情景中,试验对象左手遮挡了右肘关节点,但右肘关节点仍被骨骼点检测算法推理获得。根据红外相机的特性,该肘关节点测量的深度结果为左手手背的深度,会造成该骨骼点在相机坐标系下的坐标位置与真实的坐标位置不一致,从而进一步影响与该骨骼点相关的肢体尺寸的计算。
图7 骨骼点被遮挡情况举例
针对此类情况,本文将试验对象的肢体均视为一个向量a,向量两端的2 个骨骼点分别为A(x1,y1)、B(x2,y2),在向量中心取一点C(x3,y3),将向量a均分为2个向量b、c,二者的夹角为:
在骨骼点A、B均无遮挡的情况下,向量b、c之间的夹角较小;
而A、B中至少有一个被遮挡时,向量b、c之间的夹角较大,如图8所示。通过大量数据分析,本文选取向量b、c夹角的阈值为20°,即夹角大于20°时,认定该肢体两端的2个骨骼点中至少有一个被遮挡。
图8 向量夹角的计算
3.3 剔除定位错误的骨骼点
当试验对象处于相机视角边缘位置且仅部分肢体在视图内时,OpenPose 算法会将视图内的部分肢体视为完整肢体,仍然推理出了该肢体上的所有骨骼点,如图9 所示。从图9 中可以看出,该试验对象的左手只有部分在视图中,该情况下算法推理出的左手腕骨骼点位置错误,因此,该情况下求得的错误肢体尺寸也需剔除。
图9 骨骼点定位错误情况举例
本研究选取9 段肢体作为研究对象,如图10 所示。由于鼻子骨骼点是非固定的,鼻子和颈部间的肢体尺寸也是可变的,故该肢体尺寸不用于计算与其他肢体尺寸的比值。
图10 人体骨架信息
考虑到人体的形态和体态虽各不相同,但每个人相同的2 个肢体间的比值是相似的,人体尺寸数据相关性的研究[5]验证了这一观点。通过查阅中国成年人人体尺寸[6]和中国未成年人人体尺寸[7]的相关文献,选择其中的4 个年龄段,并采用每个年龄段的肢体的平均值作为该年龄段的标准,如表1 所示。
表1 各年龄段肢体尺寸平均值
计算不同年龄段各肢体间的比值,然后选择需要的肢体比值并赋予其阈值范围,如表2 所示。首先,将每一帧中肢体3作为第一置信度的肢体,计算肢体3与其他肢体的尺寸比值,如果超过1/3的比值处于正常阈值范围,则认定该视频帧下测得的肢体3 的长度合理,同时,与肢体3 的比值在合理阈值范围内的肢体也认定为合理,输出该视频帧下所有合理的肢体尺寸。如果肢体3与其他肢体的比值在设定阈值范围内的数量少于比值总数量的1/3,则认为肢体3 的测量尺寸不合理并将其舍弃,进一步选择肢体4 作为第一置信度的肢体,重复上述操作判断该视频帧下测量得到的肢体4 的尺寸是否合理,若合理,输出肢体4 的尺寸及与肢体4 的比值在合理阈值范围内的所有肢体尺寸,否则舍弃肢体4 的测量尺寸,进一步选择肢体6作为第一置信度的肢体,重复上述操作,若肢体6 的尺寸仍然被判断为不合理,则舍弃该视频帧下的所有肢体尺寸,进入视频下一帧重复上述操作。
表2 肢体比值的合理区间
在经过上述3类后处理后,由合理边界构成的合理区间内的数据量与总数据量的占比由89.00%提升到97.91%,标准差由0.110 8 m 降低到0.036 3 m,如图11所示,该试验对象肩宽测量值的准确性大幅提高。
图11 不同视频帧肩宽散点图处理前、后对比
在判断车内遗留乘员是成人或儿童的过程中,如果仅利用人体上的某一个肢体,判断结果受该肢体的影响较大,即鲁棒性不强。本文先对每一帧所需的9 段肢体进行前文中的后处理操作,剔除测量结果准确性低的肢体,利用剩余的所有肢体数据拟合出车内乘员的体积,根据体积的阈值判断车内被遗留的乘员中是否存在儿童。
在进行肢体和体积的拟合时,本文首先在HumanShape 网站上下载人体模型共285个,如图12所示。模型的身高范围为1 000~1 900 mm,身体质量指数(Body Mass Index,BMI)范围为16~28 kg/m2。每个模型的肢体尺寸可以从HumanShape 网站上直接获取,体积可以通过代码求得,进一步通过最小二乘法拟合出人体模型的肢体尺寸与体积之间的关系。
图12 标准人体模型
人体的体积与身高存在线性相关关系[8],因此本文以肢体尺寸作为自变量,人体体积V作为因变量,建立多元一次回归方程,利用最小二乘法进行拟合,考虑到肢体的对称性,取对称肢体的平均值进行计算,结果为:
式中,t1为肢体2(半肩)的尺寸;
t2为肢体3(上臂)的尺寸;
t3为肢体4(前臂)的尺寸;
t4为肢体9(颈部到髋)的尺寸。
本文选取体积0.04 m3作为区分成人和儿童的阈值,即将通过本文算法测得的体积不大于该阈值的乘员认定为儿童,大于该阈值的乘员认定为成人。
本文提出了一种基于TOFIR 深度相机的人体骨骼尺寸校正算法,并以人体骨骼尺寸为自变量,人体体积为因变量建立人体多元线性回归模型,最后将其应用于车内遗留儿童的检测。试验结果表明:带有深度信息的红外图片相比于普通红外图片更能还原真实情况。基于带有深度信息的红外图片和OpenPose 算法测量出的肢体尺寸,在经过本文提出的后处理方法剔除误差较大的尺寸后,可以根据乘员体积准确识别出车内是否存在儿童,且测量结果不受到光照条件及车内乘员行为动作的影响,具有较强的鲁棒性。
由于骨骼尺寸校正算法设计得较为复杂,算法处理时间较长,目前该算法的运行速度还有待提升,后续可以进一步简化骨骼尺寸校正算法,在略降低算法准确率的情况下提高其推理速度,以满足实时性要求。
猜你喜欢骨骼红外肢体网红外卖环球时报(2022-05-23)2022-05-23做家务的女性骨骼更强壮中老年保健(2021年5期)2021-12-02三减三健全民行动——健康骨骼中老年保健(2021年5期)2021-08-24闪亮的中国红外『芯』金桥(2021年4期)2021-05-21肢体语言第一财经(2019年6期)2019-06-25TS系列红外传感器在嵌入式控制系统中的应用电子制作(2019年7期)2019-04-25肢体写作漫谈天津诗人(2017年2期)2017-11-29骨骼和肌肉小布老虎(2017年1期)2017-07-18基于快速递推模糊2-划分熵图割的红外图像分割光学精密工程(2016年3期)2016-11-07VSD在创伤后肢体软组织缺损中的应用西南医科大学学报(2016年4期)2016-01-03