基于动态时间规整的深度数据静态和动态手势识别外文翻译资料

 2021-11-06 19:51:08

英语原文共 12 页

基于动态时间规整的深度数据静态和动态手势识别

摘要:

本文讨论了自然手势用户界面的开发,该界面基于Kinect传感器收集的深度数据实时跟踪和识别手势。首先基于用户的手是相机的场景中最近的对象的假设来分割对应于手的兴趣空间。提出了一种新算法来改善扫描时间,以识别该空间内手形轮廓上的第一个像素。从该像素开始,定向搜索算法允许识别整个手部轮廓。然后采用k曲率算法来在轮廓上定位指尖,并且动态时间扭曲用于选择姿势候选并且还通过将观察到的姿势与一系列预先记录的参考姿势进行比较来识别姿势。结果与最先进的方法的比较表明,所提出的系统优于大多数符号数字静态识别的解决方案,并且在流行标志的静态和动态识别以及标志的性能方面类似。语言字母表。该解决方案同时处理静态和动态手势以及兴趣空间内的多个手。55个静态和动态手势的平均识别率达到92.4%。讨论和评估了这项工作的两个可能的应用:一个用于解释符号数字和手势以实现更友好的人机交互,另一个用于软件界面的自然控制。

关键词:手势识别 动态手势 人机交互 静态手势 颜色和深度信息

1.介绍

近年来,人们对自然直观用户界面的开发越来越感兴趣。这些接口必须对用户保持不可见,允许它们与应用程序不引人注意地交互,而不需要专门的和昂贵的设备。它们必须支持自然的交互并且能够适应用户而无需进行精细的校准程序。同时,他们必须实时,准确地履行其职责,并提供针对背景混乱的稳健性。这些不同的要求及其固有的复杂性仍然为研究人员带来了重大挑战。

由于手势构成了强大的人际交流模式,因此它们可以被认为是人与机器之间通信的直观和方便的手段。这证明了研究界对手势技术的发展和进步的兴趣。因此,高效自然用户界面最重要的能力之一是能够实时识别手势。

手识别系统的主要组件是数据获取,手部定位(例如,分割和跟踪),手部特征识别和基于识别的特征的手势识别。数据采集的经典解决方案是已成功用于手势识别任务的彩色相机[1]-[3]。然而,这些解决方案对杂乱,光照条件和肤色敏感。视频捕捉具有与移动速度相关的额外挑战。就手指水平的三维运动捕捉而言,可能的解决方案包括光学标记系统,加速度计,磁性跟踪器和数据手套。这些需要大量校准,限制手指的自然运动,并且通常非常昂贵。基于视觉的无标记运动捕捉成为可能,主要是由于市场上推出了Kinect,这是一种低成本的现成传感器,可以收集有关个人运动的位置信息。由RGB-D(颜色和深度信息)形式的该传感器捕获的数据通常用作手势检测和识别的源。[4]中的一个侧重于[5]中的深度图像,以下文献综述简要总结了利用RGB-D数据进行手势识别的解决方案。

根据其性质,可以采用不同的方法用于获取的数据中的手部定位。对于深度数据,经典解决方案是深度阈值处理,无论是经验的还是自动的。经验解决方案通过反复试验选择最可能的搜索空间的极限,并将计算工作集中在其中的手部定位上。在自动化解决方案中,基于假设手是场景中最近的对象并使用其他参考,检测到最近的相机点[6]-[10]场景中的元素,如头部位置[11]-[13]或面部颜色信息[3]识别手的最可能位置。一个详尽的解决方案是使用重叠的深度间隔扫描Kinect的整个可见空间,直到找到手[14]。然而,这可能是一个非常漫长的过程。在彩色图像方面,手部分割的可能解决方案包括肤色检测[1],[3],[12],[15]-[17]和类似哈尔的特征[2]。最后,文献中的某些方法受益于深度和颜色信息[7],[15]-[22]。一些系统强制用户介入以在系统使用之前校准系统; 例如,在[20]中,手的位置从用户执行的波手势中恢复。其他人施加限制,例如用户在手势手[7],[18],[23]的手腕上戴着彩色手套[22]或黑带这一事实,以简化手部定位程序及其分割。这些解决方案阻碍了界面对用户的不可见性。最后,瑞安[14]有利于屏幕中间作为手检测可能性较高的区域,因此避免沿图像侧搜索以改善响应时间。这样的系统约束用户使其行为适应界面。

在手部定位之后,下一步是选择允许识别手势的适当特征。在文献中遇到的深度数据解决方案包括手形轮廓,手掌中心[6],[14],手指属性(例如,计数和方向)[24],手部轨迹[11],[25]和渐变内核描述符[21],而对于颜色数据,流行的选择是Haarlet特征[20],Gabor特征[26],[27],尺度不变特征变换(SIFT)[21],加速鲁棒特征(SURF)[15] ],胡矩不变量[17],方向梯度直方图(HOG)[28],[29]描述符和形状距离度量,如指地移动器的距离[7],[18],[19]。Otiniano-Rodriacute;guez和Caacute;mara-Chaacute;vez[21],Abid等人。[28],Dardas和Georganas [30]在识别之前使用一袋视觉词汇方法结合了特征。为了识别所选特征的手势,文献中提出的可能技术是神经网络[11],[20],支持向量机(SVM)[15],[28],[30],最近邻分类器[8],[10],随机森林[26],模糊方法[1],隐马尔可夫模型[15],[27],[29]。或者,在[17]中提出了一种考虑手势轨迹的中间点和终点相对于初始点的位置的简单方法。大多数现有的手势识别解决方案都是为静态[8],[10],[20],[21],[24],[26],[31]而设计的。[32]或动态手势[11],[28],[33],[34]。总的来说,只有很少的解决方案同时适用于静态和动态手势[12],[25],[27]。此外,目前大多数解决方案都能够处理单手[1],[7],[15],[18],[21],[26],[29],[31],[32]或双手[14],[17],[24]。据我们所知,没有任何解决方案可以跟踪和识别来自多手的手势,就像本文提出的那样。在大多数情况下,结果以平均识别率的形式呈现在选定的静态和/或动态手势的数据集上,从6到42个手势变化:[32]中的6个,[8]中的10个,[10]中的12个。[17]和[24]中的14,24(或26)[美国手语(ASL)字母表的手势;这个字母表中的两个手势是动态的,一些作者仅在[9]和[21]中使用静态手势,在[27]中使用42个手势。大多数结果都是单手报道的[7],[9],[27],[34]以及一些双手[17],[24]。

本文的目的是开发一种改进的,低复杂度和实时的解决方案,用于识别由Kinect传感器返回的深度数据中的一只或多只手执行的静态和动态手势。性能和速度的提高来自解决方案各个阶段的多项改进,包括搜索手轮廓的第一个像素的更快算法;识别手势,与其在Kinect视野中的位置无关;动态时间规整(DTW)的使用和改编不仅作为验证工具[14]而且还作为候选手势的选择者;在多手检测的情况下,对视差值进行归一化以提高识别率;在轮廓上使用约束以确保其闭合;并且仅在没有识别指尖的情况下使用轮廓信息进行识别,以便改善计算时间。此外,所提出的方法提供了一种界面,该界面允许用户用他/她期望的手势训练系统并快速测试其性能。根据最近关于手势识别的评论[5],这是当前解决方案的一个缺失方面:从用户学习手势集的能力。在不需要任何约束或校准过程的意义上,界面对用户是不可见的。由于我们的系统仅基于深度信息,杂乱的背景,照明条件,衣服或肤色对报告的性能几乎没有影响。

手势识别在手语翻译[21],[26],[27],智能家居交互控制[33],软件界面控制[18],[19],[35]控制中有多种应用。虚拟环境[15],人机交互[20],[36]和机器人手控[22]。在这项工作的可能应用中,有两个是在本文的背景下进行评估的:一个用于手语数字和手势的实时解释,另一个用于软件应用程序的自然控制。

2.提出深度数据中手部检测和手势识别的解决方案

所提出的手检测和手势识别框架如图1所示。来自Kinect的原始数据用于恢复图像的所有像素的深度信息。然后提出一种新颖的更快的算法来识别在给定深度间隔内识别的闭合轮廓的每个点。

图1 建议的手检测和手势识别框架

从恢复的轮廓点开始,手掌的中心被识别为轮廓中外接的最大圆的中心。使用指尖定位指尖k -curvature算法,它基于轮廓上选定点处切线斜率角的变化。在执行期间,手信息(轮廓,手掌中心和指尖)存储在固定大小的先入先出(FIFO)列表中。该列表包含可以由用户根据应用的特定需要记录的参考手势的数据。DTW算法也使用相同的列表来识别先前记录的参考手势。

A.轮廓检测和跟踪

从用于Kinect的Windows软件开发工具包(SDK)1.8收集的16位原始数据中,最后13位表示深度信息。执行3位移位操作以仅保留该信息。每次从Kinect获得新帧时,深度信息被恢复并用于检测一个或多个手部轮廓。

1)检测兴趣空间:

为了引导对手部轮廓的搜索,所提出的解决方案通过识别与Kinect的最小距离(最近)像素开始,如图2所示,基于手是与摄像机最近的对象的假设。现场。该像素的深度被认为代表检查的最小深度,并且为了计算最大深度,添加常数(其对应于检查间隔的值,即,本文中经验确定的20cm的值)。在其中对手进行搜索。仅在有限的空间内搜索手。

图2 检查间隔相对于最小距离像素。

这种方法很简单,并没有对使用者施加明显的限制,因为当我们做手势时,我们自然倾向于将手保持在身体前方。为了不必受最近像素的约束,可能的解决方案是使用Kinect图像中的其他元素作为参考。例如,可以使用Kinect的骨架跟踪特征来将手位置识别为参考元素。然而,由于这个关节是使用Kinect SDK [37]追踪的最不稳定的关节之一,因此这个解决方案没有保留在这项工作中。

2)搜索轮廓的第一个像素:

在检查间隔内执行搜索以识别具有至少一个未包括在检查间隔中的相邻像素的第一像素。为了优化搜索,[14]建议检查每隔5个像素(例如,块)5times;5 并且没有考虑图像边缘周围的像素(20%的像素线)。在本文中,搜索算法改进如下:如果像素存在于图2所示的检查间隔内的深度处,则认为该像素对于检查是有效的。在帧的分析中忽略任何其他像素。搜索以块为单位进行20times;20 像素。如果像素有效并且如果它不具有任何有效的相邻像素,则搜索逐个像素地朝向无效的相邻像素继续,直到找到轮廓像素,如图3所示。我们验证该像素是否是已经找到的轮廓的一部分,如果没有,则找到新的潜在手。

图3 建议的算法用于检测轮廓的第一个点检查每个块 20times;20 像素。

如果像素有效且没有相邻像素无效,则搜索继续下一个块。该算法可以加快搜索速度。因为Kinect的分辨率为640times;480 像素,每个图像包含307200像素。在最坏的情况下,所提出的算法覆盖最大768像素(307200/400)以确认图像不包含任何手。改善了99.75%[或100minus;(768/307200)times;100 因此,实现了图像 640times;480 关于完整搜索。相对于[14]中提出的解决方案,所提出的解决方案将搜索时间提高了15.25%,并且与后者不同,它不会将搜索限制到图像的中心部分。

3)轮廓点检测:

一旦找到初始轮廓像素,就执行方向搜索以识别手的完整轮廓,如[14]中所示。在本文的上下文中,考虑的方向是左上,右上,左下和右下。如果搜索方向也用于前一像素,则有利于搜索方向。如果遇到未知的有效配置,该算法还包括回溯的解决方案。为了进一步改进这种方法,在本文中,添加约束以仅验证闭合轮廓,如算法1的伪代码所示。

算法1轮廓点检测

输入:属于潜在手轮廓C的轮廓点列表的第一点P1

输出:轮廓点列表Pi属于识别的轮廓C.

对于每个潜在的手轮廓C.

从第一个点P1发现,按顺序跟踪轮廓的每个点并在C。长度时停止gt;700 或当轮廓列表中已存在下一个点时。

//如果最后一个点靠近第一个点

if((C.长度gt;10和(|LastPoint.x -P1.x|lt;=15像素和|LastPoint.yminus;P1。y|lt;=15像素和|LastPoint.zminus;P1。z|lt;=15像素))然后接受轮廓C.以红色显示轮廓点

其他则轮廓C被拒绝

结束

使用此过程用于确定符号的检测的轮廓图4的(a)示于图4(b)中。为了识别一只以上的手,一旦发现第一只手的闭合轮廓点,算法继续搜索下一轮廓的第一像素并重复该过程直到它到达图像的末端。因此,在for循环中重复上述伪代码以检测多只手。

图4 (a)初始OK手势(b)检测到的轮廓(c)手掌中包含的最大圆圈(黄色圆圈)和确定的手掌中心(绿点)(d)指尖方向计算的角度计算(e)确定指尖(洋红色点)

B.手掌中心本地化

与[6]中的方法类似,使用轮廓像素以及手的内部像素计算手掌中心。识别手的边界框,最小和最大点X 和 Y 轴是计算的。最小距离(dmin) 然后计算每个块的内部像素 5times;5 关于每个轮廓像素的像素。实验证明,五个中的一个轮廓像素足以用于手中心的最终估计。具有最大值的内部像素dmin 被认为是掌心。

简单来说,手掌的中心是可以在手掌中限定的最大圆的中心,如图4(c)所示,对于OK标志的情况。所提出的方法总结在算法2的伪代码中。

算法2 Palm Center本地化

输入:C=手上的轮廓点列表(使用算法1获得),I=轮廓内的点列表

输出:列表I中的手掌中心坐标索引

对于每个元素i的I:对于每个元素c中Ccedil;:计算欧几里

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。