基于区域的指尖检测算法的在增强现实中的应用

更新时间:2024-01-14 作者:用户投稿原创标记本站原创 点赞:17365 浏览:73054

摘 要

首先通过对基于区域分析的指尖检测算法的介绍和研究,并验证了该算法的有效性.然后介绍了增强现实技术以及增强现实中的人机交互,并把指尖检测算法应用到增强现实系统中,通过实验能够很好的识别指尖与虚拟对象的交互区域并实时反馈交互结果,证实了该算法在增强现实系统中的可行性.

【关 键 词】区域分析指尖检测增强现实交互应用


1基于区域分析的指尖检测算法

1.1改进的图像差分算法

在传统的邻帧差法主要是通过前后两帧的灰度值来检测图像化的区域,这种算法在目标运动并且背景静止的情况下是很有效果的,但是当目标停止运动时邻帧差法就会失效.而背景消减法主要是通过把当前帧和参考图像相消减来获取静止的目标物体.所以能否准确分割的关键取决于如何选择与更新参考图像.

1.2指尖的检测识别

1.2.1指尖模型

指尖模型包括二维模型和空间三维模型.空间三维手指模型可以通过提供详尽的建模使得后面的手势识别有很高的精确度.但是手指动作随时都在变化,手指的空间三维模型还是很复杂而且实时计算代价很高,所以我们通过利用指尖二维平面位置检测法来解决以上问题.

通过对手指在二维平面上各种动作的观察,我们发现在手指运动并且变换各种动作时其指尖形变部位相对较小,所以我们可以把指尖的状态看做是一个圆和一组平行线的组合.基于这种情况,我们设计一个模型作为指尖模板,如图1所示.在图中,d表示的时手指的宽度,这个宽度由摄像头和手指之间的距离来确定.

如果在二值化后,前景图像中的目标是1,背景是0的话,我们可以看到在指尖区域有两个特点:

(1)在指尖的中心被一个圆包围,这个圆是由一圈圈像素填充所绕成的,其半径可以定义成手指的宽度;

(2)如图1所示,在圆外的特定搜索区域内,指尖部分是被0像素和连续的1像素所包围.

根据形状匹配思想,主要是通过按一个度量标准来对比匹配的物体间的相似程度来进行形状匹配.根据这个思想,如果要想对某一模式进行识别,那么就要先准备好与之相对应的模板.因为考虑到要识别的模式其大小、方向等外部特征会发生改变的可能,所以需要对于每一种变化后的模式都要有对应的模板,这样才能保证真确识别.因为指尖会有各自动作变化或者会有部分被遮挡,而且不同人的手指也存在大大小小的不同,所以我们采用的指尖模板要能够伸缩、平移以及保证旋转时不变.

1.2.2指尖检测

因为摄像头和人手之间的距离一般都是相对固定了,所以我们将手指宽度设定为5和15之间,通过一些实验,结果表明这个值的设定对于大多手指都是适用的.在搜索区域中,其边长相比于手指直径,一般都要大两到三个像素.如果这个边长的值设置的比较大,那么计算代价就会比较大,这样就会导致检测的精度不够高.公式1.4中的Max和Min是对前景像素在搜索区域方向上个数的限制,一般来说Min的值等同于手指宽度d,Max为Min的两倍.

结合上述内容,一个像素点只有同时满足三个条件,才可以被判断为指尖.这三个条件如下:

(1)在这个像素点得周围区域里的前景像素一定要达到一定数量.

(2)在以这个像素点为中心的搜索区域边界上的前景像素和背景像素各自的比例一定要合适.

(3)在搜索区域边界上的前景像素一定要能够直接连通.

1.2.3指尖检测实验结果与分析

在实验中,我们通过手指在投影墙壁上移动来测试以上算法能否准备检测出指尖位置.在开始的时候,我们将背景设置为蓝色,手指进入背景后缓缓移动,我们可以检测到指尖位置,用黑色的十字叉将其表示出来.

当我们将背景从蓝色变换成白色时,这时因为起始设置的蓝色背景图没有来得及迅速更新,这时就会导致前景分割出现错误,当白色的背景稳定后,设置的背景图片进行更换后,就可以检测出之间的位置,如图3所示.

2增强现实中的人机交互判定与反馈

与虚拟对象交互的判定以及虚拟对象对用户的反馈是交互模块中主要实现的功能,也是系统中手指虚实交互的最后一个环节.

当过以上指尖定位算法,我们能够比较精确地检测出指尖的位置,可以得到指尖与虚拟对象交互的有效区域,这个交互区域也就是指尖和虚拟对象相交的区域.再通过坐标转换,将交互区域的二维坐标转换为空间三维坐标.我们通过设定一个处理动作触发的时间来对指尖动作进行判定,一般这个触发时间是在0.5秒到一秒之间.当指尖的触发时间在设定的时间之内并且指尖位置没有很大变化的时候,就判定指尖对虚拟对象进行了触发动作,通过程序处理,虚拟对象会根据指尖的动作做出相应地反馈.

3基于区域分析的指尖检测算法在AR系统中的应用

通过实验验证,利用基于区域分析的指尖检测算法在大多情况下能够准确地检测出指尖的位置,从而有效的判断了手指与虚拟对象的交互区域.实验运行结果如下:图4所示为系统识别标识物呈现出来的虚拟对象,人手指点击虚拟对象的边角并且拖动后,图5为手指点击并拖动后的交互效果.

4结束语

手势作为一种直观的动作表示,在人机交互中有着无可比拟的优势,目前也是模式识别、计算机视觉等组多领域的研究热点.但是目前的算法还是有诸多不足,包括本文介绍的基于区域分析的指尖检测算法,也会出现一些误检情况.随着人们研究的深入,一定会有更加高效的算法.通过高效的指尖检测算法,未来的AR系统的交互将更加的实时、准确,也会促进AR技术的高速发展.