邢关生,张 慧,刘卫朋,孙鹤旭
(1. 河北工业大学 控制科学与工程学院,天津 300130;2. 河北省控制工程技术研究中心,天津 300130)
基于 Kinect的特定人员鲁棒识别与定位
邢关生1,2,张 慧1,刘卫朋1,孙鹤旭2
(1. 河北工业大学 控制科学与工程学院,天津 300130;2. 河北省控制工程技术研究中心,天津 300130)
为避免人机共处时相撞,提出了一种基于 Kinect 视觉的特定人员识别与定位方法.利用 Kinect 传感器深度图像中的用户索引位信息、同步的彩色图像与深度图像的对应关系,滤除彩色图像中的复杂背景,确定感兴趣目标区域.进而在彩色图像内,基于加速鲁棒特征算法(SURF)在连续帧间完成特征匹配,快速识别特定目标人员;在深度图像内,采用无迹卡尔曼滤波(UKF)实现了在摄像机坐标系内的人员定位.实验结果验证了算法的鲁棒性,表明算法能够适应光线变化、目标再入和部分遮挡等情况.
人员识别;Kinect相机;加速鲁棒特征;无迹卡尔曼滤波;定位
为了保证机器人与人能够在同一作业环境安全、有效协作完成作业,除了要分析清楚机器人和人的自身特点、工作内容以及各自工作的耦合关系以外,最基本的是要确保人与机器人之间的信息交流以保障人的安全[1],这就需要机器人快速有效的发现并定位其 “合作伙伴”. 其中的关键问题是如何利用视觉传感在复杂的工作环境中实时的、稳健的识别特定人员,并确定其在三维空间中的位置.
传统的机器人视觉传感器大多采用采用普通的可见光相机,只能获取周围环境的二维图像,总会受到光照、阴影、物体遮挡的影响.若机器人想获知周围环境的三维信息,或采用多目相机、TOF(Time-of-Flight)相机,或借助激光测距仪,容易增加软件成本和硬件成本,而且在复杂环境下进行人体识别具有较大难度.近年来,微软公司推出的 Kinect相机受到广泛关注[2],Kinect相机价格低廉,深度图像的分辨率更高,而且在人体识别方面有巨大的优势.已有工作开展了Kinect的人员识别与定位工作.例如,文献 [3] 采用Kinect相机检测环境中的人员,并未研究特定人员的识别与跟踪;文献 [4] 利用Kinect信息,结合 Camshift算法对人体实时跟踪,有效避免光照影响并能区分不同深度不同位置的目标;文献 [5] 利用Kinect感知能力和关节点数据提取能力提出了基于人体结构的向量角和向量模比值的行为表示特征;文献 [6] 则利用Kinect可以提取人体骨架的特点设计了一个移动机器人跟踪人体的系统.大多数基于Kinect的人员识别工作并未针对特定人员,且主要利用深度图像,放弃了大量可用的彩色图像.深度图像的数据中仅包含了当前视野内的人员身份信息,目标人员离开后再次返回,身份信息变更,难以基于深度图像识别目标.
目前已有很多的目标识别算法:基于模型或几何,外观和视图,局部特征匹配以及基于深度图像的三维物体时别等.文献 [6] 是基于物体模型的方法,用 CAD 对物体建模,在图像中对物体描述进行匹配,对复杂物体建模难度较大,此方法普遍应用性较差.文献 [7-9] 用基于外观和视图的方法,该方法直观且利于理解,但是稳定性差,容易收光照等的影响.基于局部特征的匹配算法主要包括构建特征描述符及特征匹配两部分,其典型代表是 David Lowe提出的尺度不变特征变换 SIFT(Scale Invariant Feature Tranform)[10-11]以及Bay 提出的基于积分图像的特征描述方法 SURF(Speeded Up Robust Features)[12].在当前工艺标准下,构建检测器和描述符的方法相比其他识别算法速度更快、精度更高、鲁棒性更强.SURF算法是尺度不变特征变换算法(SIFT)的延伸,可重复性、辨别性、鲁棒性更佳,运算速度更快.
为了在光照条件变化、目标暂时离开视野或被遮挡等复杂条件下识别特定人员,提出综合彩色图像和深度图像的方案.彩色图像包含丰富的目标外观特征信息,而从深度图像中能够快速区分前景人员与复杂背景,所提出的方案同时利用两方面的特点来快速识别期望的特定目标.首先基于深度图像分离出目标人员所在的感兴趣区域.进一步,在对应的彩色图像中,目标外观特征的描述与检测采用加速鲁棒特征算法(Speeded-Up RobustFeatures,简写为SURF),稳健的在连续视频图像中匹配特定人员特征点,从而实现识别功能;最终基于无迹卡尔曼滤波完成目标定位.
1.1 Kinect简介
Kinect是美国微软公司推出的一款 3D 体感摄影机.2012 年 2 月,继 Kinect for Xbox 360 之后,微软又发布了Kinect forWindows硬件以及Kinect forWindows SDK 1.0 软件开发包,用于广大开发者进行学术研究和软件开发.Kinect forWindows SDK更适合于开发基于Windows操作系统的应用.
1.2 Kinect相机模型
Kinect主要由 3 部分构成:RGB相机(彩色相机),IR 发射器(红外发射器)、IR 相机(红外相机),其结构如图1所示.
Kinect的深度相机由IR发射器和IR相机组成,能获取视野范围内物体到Kinect的三维空间距离,这也是Kinect技术的核心.设三维空间的点 P在深度相机坐标系中的坐标为点 P 在深度图像平面内对应的像素点坐标用 ud,vdT表示,则两者间的关系为
图1 Kinect结构Fig.1 The structureof kinect
2.1 算法框架设计
算法框架主要包括 4 部分:图像采集、预处理、特定人员识别和目标人员定位.图像采集负责获取Kinect的彩色图像和深度图像;而预处理阶段负责综合这两种图像,完成感兴趣目标区域扣取的任务;目标识别模块中,实现当前帧SURF特征点检测,将预存储的模板信息与当前场景提取的信息进行匹配,识别出目标人员;最终应用无迹卡尔曼滤波实现特定人员定位任务.需要解释的是,特征匹配所需的参考特征的获取分为离线和在线两方面.一方面是在离线时,即在实时采集图像进行识别之前,专门获取目标人员图像信息,进行特征点提取和描述符创建,形成初始的特征参考模板;另一方面是在线时,若成功完成特征匹配,则将当前帧中的特征描述符等信息转存,作为下一帧的参考特征.见图2.
图2 算法框架Fig.2 Thealgorithm framework
2.2 基于深度图的感兴趣区域自动提取
Kinect获取的彩色图像就是普通的RGB彩色图像,分辨率为 640 × 480,传输速率为 30 FPS;深度图像传输速率也是 30 FPS,分辨率为 320 × 240.由于深度图像是以灰度图的形式显示的,所以在获取到深度数据信息后,要对其进行归一化处理(像素值 =255 (256 × DepthData/4 095)),使其取值范围变为 0 ~ 255,255 表示白色,0 表示黑色,颜色由黑到白表示实际距离由近至远,纯白色区域也可能表示实际距离超出Kinect探测范围.
Kinect的深度数据占 16bit,其中高 13 位代表深度信息,低三位被称为用户索引位(Play ID位).Play ID共有 8 种状态:000 ~ 111,其中 000 表示非人体区域,实际上Kinect一次最多只能检测出 6 人.
利用深度数据的 Play ID 属性,可直接获知深度图像中的人体区域,进而由第 2 节中的 Kinect相机模型,可以快速寻找彩色图像中人员所在区域,将背景滤除.预处理后的图像只保留感兴趣区域,从而减少后续SURF算法的特征检测运算量,极大的缩短了计算时间.
2.3 基于 SURF 算法的人员特征匹配
SURF[12]算法以积分图像为输入,计算主要包含 3 步:第 1 步,选取关键特征点,即在积分图像上建立快速 Hessian 矩阵检测特征点;第 2 步,构建特征点的描述符,即利用箱式滤波器建立尺度空间,结合 Harr小波响应图,创建特征向量作为描述符;第3步,根据两帧图像的描述符进行特征点匹配,即利用欧氏距离匹配合适的特征点,从而识别特定目标.
2.3.1 积分图像
积分图像 I是SURF算法的输入.I在像素点 X=x,y 的值用积分值 I X 表示,即从原始图像 G 左上角到点 x,y 所形成矩形区域的内部所有像素点的灰度值之和,如式(4).
基于积分图像 I 定义式 (4),给定原图像 G 中任意矩形区域的 4 个顶点像素坐标,即可快速计算出该区域的积分值,计算时间与矩形区域大小无关.SURF算法充分利用了积分图像的这个性质,在计算过程中选择箱式滤波器进行快速计算,减少计算时间以提高计算速度.
2.3.2 基于Hessian矩阵的特征点检测
图像特征点的检测需基于尺度空间.在尺度空间L中,像素点为X、空间尺度为时的Hessian矩阵为
为了提升算法性能,SURF算法利用箱式滤波器代替形状不规则的 Laplacian 高斯滤波器核,利用积分图像加快卷积计算,得到全新的Hessian矩阵
快速Hessian矩阵的行列式为
使用快速 Hessian 矩阵的行列式来表示图像中 X 处的特征点响应值,对所有像素点进行行列式运算,并将所有响应值存储在不同尺度下的响应映射中,最后在不同空间尺度下形成特征点响应图像.
2.3.3 构建特征点描述符
特征描述符实际是一组向量,描述的是由特征点及周围相邻像素点一起构成的斑点结构的分布情况.创建特征描述符主要分两步:确定特征点主方向和计算Harr小波响应.
为了确保描述符对图像具有旋转不变性,需要为每个特征点分配一个主方向.创建一个以x方向响应为横坐标、y方向响应为纵坐标的空间,所有小波响应在该空间里对应为一个响应点,然后以张角的扇形窗
口在该空间里滑动,计算扇形区域内所有响应点的累加和,最大的Haar响应累加值即为特征点主方向.
建立一个矩形区域,以特征点为中心,方向为之前确定的主方向,边长为 20 s.该矩形区域被分成4×4矩形子区域.计算每个子区域的 Harr 小波响应,然后对响应值进行统计形成的特征向量.SURF算法的特征点最终由一个 64 维的特征向量描述.
由于积分图像的应用,不仅减少了计算特征及匹配的运算时间,而且增加了算法的鲁棒性.另外,利用Hessian 矩阵的迹,即拉普拉斯值,建立快速查询方法,不仅提高了描述符的稳定性,而且提高了斑点的匹配速度.
2.3.4 特征匹配
在匹配阶段,为了加速索引速度,需要借助关键特征点的拉普拉斯值,也就是 Hessian 矩阵的迹.特征点及其周围小邻域的像素点一起组成斑点结构,按照亮度的不同,可以将特征点分为两种:黑暗背景中的亮斑点和明亮背景中的暗斑点.这个特征已经在检测阶段计算出来了,所以不会增加额外的计算量.根据拉普拉斯值的符号就可以区别出这两种斑点结构:若符号为正,则为亮斑点;若符号为负,则为暗斑点.在快速索引阶段,可以直接判断拉普拉斯值进行特征点相似性度量的筛选工作:如果两个斑点的拉普拉斯值同号,说明斑点与背景之间的对比度相同;否则,两个斑点的对比度不同,直接放弃进一步的比较.两个斑点结构的对比度不同,说明两个点之间没有匹配成功.
因此,在匹配阶段只需要匹配具有相同对比度的特征点,所以在不降低描述符性能的前提下,允许利用最低限度的信息进行快速匹配.这种利用少量信息进行快速查找的索引方法,优越于众多的索引方法当中是一种优势.
最后,在筛选出来的特征点中采用欧氏距离法进一步运算,匹配出具有相同特征的特征点.
2.4 基于 UKF 的目标人员定位
利用特征检测识别出了目标人员区域,采用无迹卡尔曼滤波(UKF)[14]方法实现对目标人员的定位.首先计算出目标人员的质心在彩色图像空间中的坐标,根据坐标变换确定其在深度图像空间以及摄像机坐标系中的位置.进而,利用UKF滤波器,根据当前测量值和上一时刻对当前时刻的预测值实现当前时刻目标人员位置的估计.
UKF方法在解决非线性滤波问题时在精度和稳定性方面都优于EKF.UKF不必进行线性化而直接用UT方法,用一组确定的采样点来近似后验概率.当高斯型状态向量由非线性系统进行传递时,对任何系统,都能精确到三阶的后验均值和协方差.
2.4.1 UT变换
UT变换是UKF算法的核心和基础,其思想是:在确保采样均值和协方差分别为x 和 Pxx的前提下,选择一组点集(Sigma点集),将非线性变换应用与采用的每个Sigma点集,得到非线性转换后点集y 和 Pyy.
UT变换如下:
1) 根据输入变量 x的x 和 Pxx,选择 Sigma 点集, 以及对应的权值和
2)计算 2n+1 个取样点 xi及响应的权值 wi
3)对每个Sigma点进行 f 非线性变换,得到变换后的Sigma点集 yi
4)对点集 yi进行加权处理,得到输出变量 y 的统计量y 和 Pyy
2.4.2 UKF算法
在UKF算法中,由于有噪声项,需要对状态方程进行扩维,初始条件为
初始扩维条件,即
简化 UKF 算法为:1)Sigma 点采样;2)利用状态方程传递采样点;3) 利用预测采样点,权值计算预测均值和协方差;4) 利用 2) 预测测量采样点;5) 预测测量值和协方差;6) 计算 UKF 增益,更新状态向量和方差.
为测试人员目标识别与定位方法的有效性,基于VisualStudio 2010 开发了算法测试软件,Kinect彩色相机和深度相机的图像采集速率均为每秒 30 帧.软件主界面如图3 所示,在识别目标之前,通过点击“Target Acquisition”,获取特定人员目标图像 (在界面右侧的Sample Image部分显示的是预处理后的目标图像).再点击“Shoot”按钮,完成特定目标图像的特征点提取、描述符创建,形成特定目标的模板.先后点击“Work Scene”和“Track”按钮,开始执行目标识别和定位任务,现场场景的实时彩色图像和深度图像分别显示在界面左侧的Color和 Depth部分,被识别的特定目标人员可由红色矩形框圈定.图3 展示的是场景中近距离仅有特定目标一人的情况,验证了算法的基本识别能力.
图3 人员识别主界面Fig.3 Themain interfaceof person identification
进一步,为测试方法在多种不同条件下的有效性,分别完成以下几组实验.
实验1:目标人员姿态发生改变时,也能有效识别目标,如图4所示.
图4 不同姿态人员识别图Fig.4 Personal identification of differentattitude
实验 2:特定目标暂时离开 Kinect视野,由不同非目标人员干扰一段时间,之后再次进入视野范围也能正确识别特定目标人员,结果如图5 显示.表明算法不完全依赖深度图像中的PlayID数据,能够避免人员误判,正确区分不同目标的外观特征.
实验 3:多人共存,特定目标被部分遮挡,结果如图6.通过实验测试发现,当被跟踪目标被遮挡部分低于 50%时,具有较高的识别成功率.另外,识别成功率也与特定人员未被遮挡部分的着装有关.
图5 目标再入Fig.5 TargetReentry
通过 3 组实验可以证明:基于Kinect视觉的SURF算法能够成功识别特定目标人员,计算速度较快,能够适应Kinect彩色和深度相机的帧速率,对于光照变化、遮挡等具有较强的鲁棒性和稳定性.
算法在识别出特定人员的同时,利用UKF实时更新人体中心在Kinect深度相机坐标系下的坐标,继而计算出人体相对光轴方向的偏角和到相机的距离,8次实验得到结果如表1所示.
在室内复杂背景下,基于SURF和UKF的目标人员实时识别和定位方法,能够应对光照变化、遮挡等问题.方法利用Kinect深度传感器和彩色传感器间的映射关系对深度图像扣取的人体区域预处理,得到滤除复杂背景干扰的彩色图像;然后用SURF算法识别目标人员,节约了运算时间,减少了计算量,提高了运算速度;最后应用无迹卡尔曼滤波算法实现了实时目标人员定位功能.通过实验已经验证了所设计方法在特定人员的识别与定位方面的优势,未来的工作在于设计外部的辅助定位系统,测试并优化算法定位性能.
图6 遮挡实验Fig.6 Experimentof Occlusion
表1 人员定位实验Tab.1 Experimentof Personalpositioning
[1]GoodrichM A,Schultz AC.Human-robotinteraction:asurvey[J].Foundationsand trendsinhuman-computerinteraction,2007,1(3):203-275.
[2]Han JG,Shao L,Xu D,et al.Enhanced Computer Vision w ith M icrosoft Kinect Sensor:A Review [J].IEEE Transactions on Cybernetics,2013,43(5):1318-1334.
[3]Xia L,Chen CC,Aggarwal JK.Human detectionusingdepth informationby Kinect[C]//Proceedingsof2011 IEEEComputerSociety Conference on Computer Vision and Pattern RecognitionWorkshops.IEEEComputer Society,2011:15-22.
[4] 韩旭.应用Kinect的人体行为识别方法研究与系统设计 [D].济南:山东大学,2013.
[5]Machida E,Cao M,Murao T,etal.Humanmotion tracking ofmobile robotw ith Kinect3D sensor[C]//Proceedingsof IEEE 2012SICEAnnual Conference.SICE,2012:2207-2211.
[6]Chen Y,JiZC,Hua C J.3-Dmodelmatching based on distributed estimation algorithm[C]//Proceedingsof 2009Chinese Controland Decision Conference.IEEEComputer Society,2009:5063-5067.
[7]SchieleB,Crow ley JL.Recognitionw ithoutcorrespondenceusingmultidimensional receptive field histograms[J].International JournalofComputer Vision,2000,36(1):31-50.
[8]PontilM,VerriA.Supportvectormachines for3D objectrecognition[J].IEEETransactionson Pattern AnalysisandMachine Intelligence,1998,20(6):637-646.
[9]Roth D,Yang M H,Ahuja N.Learning to recognize three-dimensionalobjects[J].NeuralComputation,2002,14(5):1071-1103.
[10]Lowe DG.Object recognition from localscale-invariant features[C]//Proceedingsof the7th IEEE InternationalConferenceon Computer Vision.IEEE,1999,2:1150-1157.
[11]LoweDG.Distinctive image features from scale-invariantkeypoints[J].International Journalof Computer Vision,2004,60(2):91-110.
[12]Bay H,Tuytelaars T,Van Gool L.Surf:Speeded up robust features[C]//Proceedings of the 9th European Conference on Computer Vision.Springer,2006:404-417.
[13]Smisek J,Jancosek M,and Pajdla T.3Dw ith Kinect[C]//Proceedingsof the IEEE InternationalConferenceon ComputerVision.IEEE,2011:1154-1160.
[14]Wan EA,VanDerMerweR.Theunscented Kalman filter fornonlinearestimation[C]//Proceedingsof the IEEE 2000Adaptive Systems forSignal Processing,Communicationsand Control Symposium.IEEE,2000:153-158.
[责任编辑 代俊秋]
Robust recognition and localization of specific persons using kinect
XING Guan-sheng1,2,ZHANG Hui1,LIU Wei-peng1,SUN He-xu2
(1.School of Control Science and Engineering,Hebei University of Technology,Tianjin 300130,China;2.Control Engineering Technology Research Center of Hebei Province,Tianjin 300130,China)
A Kinect-based person recognition and localizationmethod is proposed to avoid collisions during the co-existenceofhumanand robots.Firstly,by using theplayerindex datain Kinectdepth imagesand the correspondencebetween synchronized depth and RGB images,thebackground in RGB image is rejected toattain the interesttargetarea.Secondly, Speeded-Up Robust Features(SURF)algorithm is used to detect features rapidly in sequential RGB images and then recognize the specific person.Finally,the person's position is estimated using Unscented Kalman Filter(UKF).Experientialresultsverify thealgorithm robustnessand show thatthemethod can adaptto those casesof lightchanging,target re-entering and partialocclusion.
person recognition;kinectcamera;speeded-up robust features;unscented kalman filter;localization
1007-2373(2014)05-0001-07
TP18
A
10.14081/j.cnki.hgdxb.2014.05.001
2014-09-12
国家自然科学基金(61203275);河北省自然科学基金(F2013202101,F2012202100);河北省科技支撑计划指导项目(13211827)
邢关生(1980-),男(汉族),讲师,博士.