文献综述
摘要:通过翻阅参考资料及文献,分析了手势识别技术的发展现状;了解了kinect传感器的工作原理及用于手势识别的优势;认识了静态和动态两类手势识别的关系,学习了人手分割与定位、手势特征提取和手势识别的主流算法,并了解它们的适用情形,为算法的选择提供了帮助。
关键字:手势识别 kinect 深度图像 静态和动态手势
手势识别是通过计算机设备对人的手势进行精确解释,如今已成为人机交互的一种重要手段。[1]手势识别技术分为两类。一类为非视觉识别技术,指使用除了摄像机以外的各种感应设备来进行手势识别,比如语音、触摸屏等,使用人体听觉、触觉等进行感应,以触摸技术和虚拟现实技术为代表。另一类是基于视觉的识别技术,指借助物理成像设备,比如摄像机,形成图像或视频,对图像或图像序列进行分析识别。[2]但传统摄像机只能得到二维信息,主要是从彩色的视频帧图像或静态图像中提取颜色及形状等信息进行手势的定位与识别,使得基于视觉的识别技术一直受到光照、背景不稳定、纹理、噪声、遮挡等因素的影响,无法准确地对图像进行3D重建,而以kinect为代表的一系列可获取深度信息(距离信息)的感知设备的出现,为这一问题的解决提供了新的思路。
基于视觉的手势识别算法主要包括人手分割与定位、手势的特征提取和手势的识别三个阶段的研究内容。[3]在人手的分割与定位方面,其方法大致包括基于徒手的表观特征的分割方法及基于人为增加限制的方法( 如有些系统要求使用者戴上有色手套) 。手势的特征提取是影响手势识别率的关键因素,目前特征值的选取有很多方法:选择手掌区域、手掌中心及手的倾斜度,或提取手掌轮廓区域的几何特征或手掌的运动轨迹等进行分析识别;在手势识别环节,识别方法可以分为基于规则的手势识别和基于机器学习的手势识别。其中基于机器学习的手势识别方法通过学习大量的训练样本特征向量来确定分类器,是一种鲁棒性较高的手势识别方法。
Kinect传感器是一种三维体感摄影机,它有三个镜头,中间镜头是普通RGB彩色摄像头,这个普通的彩色摄像头提供彩色的图像;左边镜头为红外投影机,红外投影机是用来发射红外线的;右边镜头为红外摄像头,红外摄像头是用来接收红外线的,左右两边的镜头配合使用,可以提供物体的深度数据。[4] Kinect系统具有即时动态捕捉、影像识别、麦克风输入、语音识别等功能,不需要使用任何道具即可实现人体动作和人体骨骼的识别和捕捉。[5]
Kinect 深度成像系统的3 个核心元件是: 激光发射器、不均匀透明介质和CMOS 感光器件。[6]Kinect是利用基于光编码的技术获取深度信息的,红外投影机发射一束红外光线,经过散射片后会分成许多束光线,这些光束聚合在一起会形成散射光斑。而红外摄像头可以捕获散射光斑并且与内部存储的参考模式进行比较。参考模式是通过捕获已知距离的散射光斑获得的,并且存储在Kinect内部。当红外摄像头捕获的光斑的真实距离比参考模式小或者大的时候,光斑在红外图像中的位置将会沿着基准线有一定的移动,通过图像的相关性过程可以测量所有光斑的移动范围,因而形成一幅视差图像,然后可以通过视差图像中相应的位移计算出每个像素点的深度距离,进而得到深度信息。[7] Kinect获得的深度数据为16位,深度数据前13位代表的是物体距离体感摄像机的远近,kinect根据光学原理,将不同距离的物体用不同的灰度值表示,生成景深图像,后3位表示视野中人体目标,当环境中无人时,后位都为0,有人时,其值不为0。[8]深度信息获取原理图如图1。深度信息Ze如式(1)所示:
(1)
目前,Kinect 的标定方法主要有两类。一类是遮挡激光发射器,在自然光条件下对粘贴于平坦木板上的棋盘标定图进行拍摄,获得标定棋盘的彩色图像和红外图像并提取角点,然后计算彩色相机和红外相机的内外参数。该方法简单有效,但由于得到的红外图像非常暗,标定结果不稳定。另一类标定方法是忽略红外相机透镜畸变的影响,提出一种基于彩色图像和kinect原始视差的标定两个相机畸变参数和深度参数的标定模型。但是该方法需要进行朗伯方程求解等一系列复杂的运算,求解过程复杂,运算速度慢。[9]
