测试系统方案设计
——景点人体身高快速测试系统

2018-06-04 03:42王静雯张慧玲沈阳工学院机械与运载学院
数码世界 2018年5期
关键词:头骨骨骼人体

王静雯 张慧玲* 沈阳工学院机械与运载学院

机场和旅游景点的门票信息往往有着成人票和儿童票之分。而儿童票的规定则有未满1.2m的儿童半价,未满1m的儿童免票的分别。然而在机场和景点的人流量十分密集,使用人工的方式进行人体身高判别会费时费力。因此设计一套自动身高识别的测试方案具有十分重要的意义。

1 测试系统及方法

1.1 测试系统参数

(1)测试范围:0~3m

(2)身高测试精度:±10cm(0~2m)

(3) 身高测试人体数量:1人

1.2 测试系统的要求

(1)能够快速的进行精度范围内的人体身高识别,提高系统的运行速度,能够使系统在人流量大的情况下快速运行。在人体呈现不同姿势时,都能够精确的测量身高值。

(2)具有良好的稳定性和自检功能,能够及时提醒用户设备的目前情况。

1.3 基于kinect传感器的快速测试方法

基于kinect传感器的快速测试共有三种方案使用kinect的人体骨骼信息来测量人体身高。其中第一种方案为头骨趾骨测量方案,第二种为臂长等效测量方案,第三种为骨骼映射深度信息测量方案。

其中前两中方案使用kinect API中关于骨骼的函数库,而后者则不仅使用骨骼信息函数,还使用了深度信息函数,同时使用了骨骼坐标与深度坐标的映射函数。

方案一:头骨趾骨测量

通过kinect提供的来自SkeletonStream的骨骼数据,捕获当前用户的头骨和趾骨的骨骼信息。得到头骨与趾骨的空间位置坐标分别为(x1,y1,z1),(x2,y2,z2)。因为得到的坐标信息在 kinect中已经换算算成了以单位为m的坐标,所以只需要得到两点的距离便可以求得人体的身高。

这样得到D之后便可以通过软件界面显示人体当前身高。

方案二:臂长测量

由于人体的头骨趾骨的距离与实际人体身高的误差十分大,所以使用间接的测量方案便可有效的避免骨头与真实轮廓对应不想符的问题。测试用户在坐姿的过程中仍然可以进行身高的估计计算。使用户在kinect前保持双手平举,测量用户的臂长,利用臂长与身高的相似关系来进行身高的测量。

方案三:头趾骨深度映射

本方案使用的是骨骼信息与深度信息的映射来解决精度问题的。首先kinect提供的数据包括彩色RGB信息,场景深度信息,以及进行运算处理过之后的人体骨骼信息。同时这三中信息一共包含四种坐标,分别为RGB坐标,深度信息的坐标,骨骼提取之后的场景坐标,以及在屏幕上显示出这些信息的显示坐标。

于是利用kinect对这四种坐标的准确映射函数,可以良好的进行人体骨骼坐标与深度信息坐标的映射。

在人体站直时,捕捉到用户的头骨和趾骨的骨骼坐标点,并将这两个点映射到深度信息的坐标中,得到映射之后的两个像素点,同时针对每一个像素点进行上下邻域判定,当邻域点的深度信息突变时,便找到了人体的轮廓处,同时记录下此时这个人体轮廓的最高点的像素坐标,得到了一个头顶最高处的像素位置。

人体的实际高度表示便可以用公式来表示

即:D=(D1+D2)/D1*d

D——骨骼坐标中的头骨与趾骨的实际距离,单位为m

D1——骨骼坐标映射到深度图中的像素距离,单位为pix

D2——通过寻找头骨邻域得到人体高度增加的像素值,单位为pix

D——人体的实际高度,

2 测试系统的性能评价

由于测试系统中采用了kinect的骨骼技术,解决了其他测量系统中无法消除的人体弯曲干扰,和实时性差的问题。与传统的只能定性的测量人高的阈值进行的判断相比,本系统的可调节行强,维护更新方便,硬件安装简单。测试速度和测试精度能够达到良好的要求,可以完成预定的测试任务。

本文共设计了三种人体身高的测量方案。

第一种方案适合站立的人进行身高测量,但在测量结果得到之后需要加上9~11cm来保证人体的身高偏差不是很大。虽然代码简单,但是精度低。

第二种方案适合坐姿的人进行身高的测量,运用臂长身高的近似关系来进行身高的估算,这种方案与第一种有异曲同工的妙处,都是使用骨骼提取的距离关系来进行测量,相比与第一种方案,此方案的精确度有所提高但是并没有本质提升。

第三种方案是精确的人体身高测量方案,运用骨骼映射到深度图形中的方法,在骨骼点附近进行邻域判断,寻找突变邻域,得到用户的头顶最高点深度坐标。然后利用最高点与趾骨的坐标进行还原为原来用户的真实身高。这种方法的计算量和编程步骤较为繁琐,但是能够精确的提取出用户的身高信息。在精度上第三种方案最佳。

猜你喜欢
头骨骨骼人体
头骨祈福
人体“修补匠”
人体冷知识(一)
做家务的女性骨骼更强壮
三减三健全民行动——健康骨骼
神奇的水晶头骨
人体可笑堂
人体运动小知识
会说话的头骨
肿头龙