张金权,李 榕,温 俊,马晓阳
(华南师范大学 物理与电信工程学院,广东 广州510006)
人体姿势识别[1]已在游戏、零售体验和老人防护[2]等行业中得到广泛应用。然而,既要保证较高的姿势识别率又要减低算法复杂度以实现嵌入式移植的技术研究目前还不成熟。传统的彩色摄像机来捕获的彩色图像易受光照变化、复杂背景的影响,导致目标追踪困难和分割不精确。MESA 第4 代基于TOF(time-of-flight)原理的传感器SR4000,该传感器内置近红外光源,具有较强的环境适应性,能用于夜间和恶劣气候,提供全天候、抗干扰的图像信息。红外光经物体反射回相机,可计算出物体离相机距离[3],从而得到深度图像。基于深度图像进行动态姿势识别[4],具有不易受环境和光线的影响,算法复杂度低,识别有效率高的优势。
本文通过TOF 传感器获取深度图像,经过算法流程识别出各端点属性。最后通过结合人体端点属性和交通警察的8个指挥动作的运动轨迹特征进行姿势识别验证算法的有效性。
算法流程如图1 所以,目标提取是整个姿势识别系统中十分重要的部分,它的提取效果直接影响到后期端点提取和姿势识别的准确与否。
图1 算法总体流程图Fig 1 Overall flow chart of algorithm
先将深度图像进行背景差分。背景差分法是采用当前帧和背景模型做差来检测运动目标。之后进行图像二值化运算,减小图像数据量,凸显感兴趣的目标轮廓。然后进行孔洞填充和开运算操作,得到如图2(c)所示效果。开运算是对图像先腐蚀后膨胀,解决噪声带来的图像边缘不平滑、内部有孤立小孔、白噪声点等情况。然后对二值图像进行连通域标记[5],删除面积小于某个阈值的连通域(本文取400),得到连通区域的像素点的数量、质心、二阶矩等参数。对目标二值图像进行快速并行细化运算[6],细化后得到人体骨骼,如图2(d)所示效果。
图2 图像预处理过程Fig 2 Image pretreatment process
通过上述图像预处理,得到了人体目标的骨架和质心,这时候的人体质心不一定在骨架上,因此,首先要寻找离质心最近的骨架点,并标记。以骨架质心为父节点遍历骨架,如图2(d)所示,标出手、头、脚5 端点。如图3 所示,可预先测得相机离地高度H,像素点横倾斜度θ,竖倾斜度β,像素点距离值D,根据几何知识可求出像素点离地高度h
根据此式算出质心和目标端点的离地高度。所谓骨架线距离,指的是人体骨架线端点到其它端点之间所有像素点的实际三维距离之和,如图2(d)所示:P1端点的骨架线距离指的是P2~P5这4 个点沿着骨架线上的像素点到P1点的实际三维距离值之和。在深度图像中,要求任意两点的三维距离值,如图3 所示,P1,P2为图像中的任意两点。d1,d2为这两点的深度距离,图中两点与相机夹角θ1,θ2,β1,β2可由相机的角度分辨率0.23°与该点的横坐标计算得到
已知d1,d2和θ1,θ2,β1,β2求两点距离D,首先求出两点在Y 轴方向的高度差P1P1y_2xz和P2P1y_2xz。其中,P1y_2xz为P1点在P2点所处xz 平面的映射点。由上文计算出的端点高度h 可得
图3 两点距离坐标示意图Fig 3 Diagram of two point distance coordinate
其中,h1,h2为两点离地高度。而要求P2P1y_2xz,要先求出两点水平方向的距离差P'2P1y_2xz和Z 轴方向的深度差P2P'2
最后由勾股定理得
通过上述过程算得,图2 姿势的骨架线距离如表1 所示。
表1 端点骨架线距离Tab 1 Skeleton line distance of endpoint
由表1 得,骨架线距离较大的两点为脚部端点,最小的为头部端点,居中的为手部端点。至此人体目标5 个端点的属性判断完成。如果出现手挡在身前等自遮挡情况,如图4(b),(d)所示,骨架线没有了手部端点,可设定一个深度的阈值,分离手和身躯,得到自遮挡部分的手部端点。
本文通过结合交通警察的8 个指挥动作的特征和上述姿势端点识别算法,识别停止、直行、左转弯、左转弯待转、右转弯、变道、减速慢行、靠边停车8 个标准交警指挥姿势。
以靠边停车姿势为例,图4(a),(b)为靠边停车姿势的关键帧,利用质心与头部端点的平均深度距离信息作为阈值分割身躯前的手势,如图4(e)所示。对分割的手势图进行连通域图像标记,删除面积较小的区域,找出每个区域距离值的中值点,将该点作为该区域手势的代表点并计算该点离地高度。对人体目标进行上述姿势识别算法的运算,识别出人体目标的头和手部端点。手部端点可通过其横坐标的值区分左右手端点。因交警动作是站立完成,脚步端点可忽略。
图4 交警靠边停车姿势Fig 4 Pull over action of traffic police
在一个完整的交警动作序列里,身躯前的手势代表点会有1 个或2 个,根据最近邻分类原则,当代表点的坐标位置离前一帧代表点的坐标位置最近,将该两点作为同一手势点的连续动作,如图5 所示分类得到的6 个指挥动作(左转弯和右转弯选一个,左转弯待转信号没有身前手势运动轨迹,故忽略)身躯前手势运动轨迹图,以代表点的离地高度为轨迹的特征值绘图。
将人体骨架端点属性和数量(因交警处于站立姿态,所以只取头手端点),身躯前手势数量,手势轨迹结合判断交警姿势。如图5 所示:当没有手部端点活动,身前没有手势运动,则为站立姿势。当有一手部端点活动,身前没有手势运动,则为左转弯待转信号。当有两手部端点活动,身前有两手势运动,如图5(a)所示,多点高度高于头部端点,则为靠边停车信号。当有两手部端点活动,身前有两手势运动轨迹,没有点高于头部端点,如图5(b)所示,则为左转弯信号或右转弯信号,再根据较高的那个手部端点的横坐标在头部端点的左右两侧来判断是左转弯还是右转弯。当有一手部端点活动,身前有一手势运动,可能是停止信号、直行信号、变道信号或减速慢行信号。其中只有停止信号的轨迹有多点高度高于头部端点,如图5(c)所示,另外3 个信号由于波动的剧烈程度存在明显差别,如图5(d),(e),(f)所示,因此,采用判断方差大小来辨别这三种姿势。经大量样本数据分析,认为方差高于2 000,则可认为是直行信号,当方差低于500,则可认为是变道信号。当方差介于500~2 000 之间,则认为是减速慢行信号。
图5 交警手势运动轨迹图Fig 5 Gesture trajectory of traffic police
本文处理图像采用Win 7 系统,Intel(R)Core(TM)i7—3610Q 处理器,2.30 GHz 主频,开发环境:Matlab2012b。处理每帧平均耗时24 ms,1s 约可处理42 帧图像,可满足实时性的需求。对于停止、直行、左转弯、左转弯待转、右转弯、变道、减速慢行、车辆靠边停车这8 种标准交通警察姿势,20 个人在不同的环境下每种获取多个样本,识别率如表2所示。实验表明:本文方法算法复杂度较低,便于嵌入式移植,可实时应用于无人驾驶汽车等领域。
表2 交警姿势识别率Tab 2 Recognition rate of traffic police posture
[1] Chen L,Wei H,Ferryman J.A survey of human motion analysis using depth imagery[J].Pattern Recognition Letters,2013,34(15):1995-2006.
[2] Jansen B,Temmermans F,Deklerck R.3D human pose recognition for home monitoring of elderly[C]∥2007 29th Annual International Conference of the IEEE Engineering in Medicine and Biology Society(EMBS),2007:4049-4051.
[3] 于金霞,蔡自兴,邹小兵,等.基于激光雷达的移动机器人障碍测距研究[J].传感器与微系统,2006,25(5):31-33,36.
[4] Chung H,Yang H D.Conditional random field-based gesture recognition with depth information[J].Optical Engineering,2013,52(1):017201.
[5] Suzuki K,Horiba I,Sugie N.Linear-time connected-component labeling based on sequential local operations[J].Computer Vision and Image Understanding,2003,89(1):1-23.
[6] Zhang T Y,Suen C Y.A fast parallel algorithm for thinning digital patterns[J].Communications of the ACM,1984,27(3):236-239.