基于模版匹配的静态姿态识别
2017-11-20王建兴
王建兴
(闽江学院物理学与电子信息工程系,福建 福州 350108)
基于模版匹配的静态姿态识别
王建兴
(闽江学院物理学与电子信息工程系,福建 福州 350108)
基于KINECT的人体姿态识别方法,是指由KINECT传感器获取深度数据和骨骼数据等信息,提取特征后进行的姿态识别.在简要描述基于KINECT的人体姿态识别方法的基础上,提出了一种基于KINECT静态姿态识别的模版匹配方法,并完成了相关实验,证明该方法简单实用.
KINECT;姿态识别实验;模版匹配;图像处理
1 基于KINECT的姿态识别方法概述
1.1 静态姿态识别
静态姿态识别过程是先通过KINECT获取姿态深度信息,然后根据KINECT SDK提供的深度信息进行姿态分割,接着利用相关算法处理分割后的图片,获取姿态的形状,最后进行分类识别,根据相关指令输出结果.
1.1.1 姿态分割
利用KINECT获取到的是深度信息,对骨骼模型和深度图像进行分割,以骨骼图显示出的骨骼点的三维位置,结合相关算法,利用设定的阈值分割出相应的位置[1].姿态分割所需要的人体骨骼点模型可以通过KINECT的骨骼追踪技术来实现,可以将三维坐标骨骼转换为二维空间来定位各种姿态.
1.1.2 图像处理
KINECT所采集的深度图像存在噪声和空洞,且这些噪声和空洞在目标的边缘处最多.所以,如果直接提取KINECT中获取的深度图像的特征,提取的特征值可能变化比较大,从而影响识别算法的准确性.基于以上因素,在进行分类识别前,要对KINECT传感器采集的图像进行关于形态学的处理和噪声的滤波,经过处理后的图像可以有效地提高后续步骤的准确性.
1.1.3 轮廓识别
对姿态进行分割之后,需要对已分割出来的图像进行处理,相关处理方法包括利用双层深度图像信息的方法、运用Border-Following Mooreneighborhood算法等.利用双层深度图像信息的方法是先设定深度阈值,然后对不同位置的像素点进行相对应的1和0的分类,构建不同姿态状态的像素点,最后用对应算法创建出姿态外围各个像素点的点集,从而获得姿态的轮廓[2].运用Border-Following算法是先设定颜色阈值进行像素级扫描,确定边界点,从而找出姿态的轮廓.采用Mooreneighborhood算法是定义像素的8个领域像素,进行轮廓检测.
1.1.4 分类识别
顾名思义,分类识别就是将获取到的信息按不同的类别分开,并理解该信息所表达的含义,分类后就能得到姿态的特征.不同的信息类别与信息量采用不同的分类器.小样本、非线性、高维模式的识别主要运用的是支持向量机SVM.
1.2 动态姿态识别方法
1.2.1 基于DTW算法的动态姿态识别
基于DTW算法动态姿态识别的第一步是通过KINECT SDK获取骨骼图和骨骼模型中25个节点的三维坐标信息.实际操作时,要先预处理这些骨骼点,再由KINECT得到需要的特征向量.完成这些基础工作后,需要运用DTW算法得到待识别姿态.DTW算法的整个过程是:将获取的姿态信息与事先采集好的模版数据进行匹配,而匹配程度最高的就是待识别姿态,匹配的主要算法是计算它的最短路径法.
1.2.2 基于HMM模型的动态姿态识别
隐马尔可夫模型主要是统计过程的,它用来描述一个含有隐含未知参数的马尔可夫过程.在使用隐马尔可夫模型的过程中,会面对3个最基本的问题,即评估、解码和学习.这3个问题可以运用即前向算法、Viterbi算法和Baum-Welch算法来解决.
2 基于模版匹配的姿态识别实验
模版匹配法是静态识别中一种常用的方法.该方法的识别方式是:将从KINECT获取的深度数据与预留的模版数据进行对比,检查获取到的深度数据与模版中的哪个动作匹配程度最高,从而识别该动作.这种方法需要预先采集大量的数据,然后将这些数据进行处理(比如编码等处理方法)后得到模版数据,然后根据数据相似程度分类识别.这种方法的优点是识别速度快,计算方法简单.
2.1 采集模版数据
实验共采集了6组姿态动作,它们分别为站立、左手直举、右手直举、双手半举、双手直举和双手侧举.采集数据时,先采集这6个姿态动作的三维坐标数据,以此作为模版数据.在采集过程中,固定KINECT中的摄像头位置,使其保持不变,人保持不变的姿势.由于KINECT2.0的精度高,所以,它能轻松获取正面的25个关节的数据帧,这样就可以将6个姿势的数据帧采集完.
2.2 坐标编码
获取到的三维坐标会因为人的位置、姿态、动作的不同而不同.三维坐标的比对不能很好地识别上述6种姿态,需要对三维坐标进行编码后再进行有效的比对.我们不使用深度数据,只需对上述6个姿态中每组动作2种数据的X坐标和Y坐标进行标准编码.由于有25个关节点,每个动作有50个数据.实验表明,只使用X坐标和Y坐标在姿态识别中是有效的.
2.3 姿态匹配
在实际运用中,一个姿态动作在完成2组数据编码后,可以用比较2个编码的欧氏距离的方法选择最佳的匹配姿态,也就是将人体获取的坐标与6组姿态坐标进行差值对比,欧氏距离最小的就是所匹配到的姿态.实验效果见图1.
3 结论
本文首先探讨了基于KINECT的静态姿态识别的姿态分割、特征提取、分类识别和动态姿态识别的DTW或者HMM算法识别等多种方法,然后对基于KINECT静态姿态识别的模版匹配方法进行了研究和实验.在实验过程中,模版数据的采集工作比较难,需要保持KINECT位置不变,人也不能移动,只有在完成了6组动作的采集后才能移动.另外一个问题就是,要寻找适合图像数据编码的编码方式,该编码方式需要完成对坐标数据的编码.本文只是进行了基于KINECT的静态姿态识别的研究,下一步将开展关于动态姿态识别的研究和相关实验.
图1 实验效果图
[1]王艳,张奇志.基于Kinect深度信息的手势识别[J].北京信息科技大学学报(自然科学版),2013(1):22-26.
[2]王松林.基于Kinect的姿态识别与机器人控制技术研究[D].北京:北京交通大学,2014.
〔编辑:白洁〕
TP391
A
10.15913/j.cnki.kjycx.2017.22.040
2095-6835(2017)22-0040-02