基于ARToolKit的手指识别增强现实系统的设计
2013-10-27史亨祯石孟楠贾常见东北石油大学软件学院黑龙江大庆163318
史亨祯,王 昱,石孟楠,贾常见 (东北石油大学软件学院,黑龙江 大庆 163318)
基于ARToolKit的手指识别增强现实系统的设计
史亨祯,王 昱,石孟楠,贾常见 (东北石油大学软件学院,黑龙江 大庆 163318)
介绍了一种利用ARToolKit开发包和Opencv进行创新开发、实现手指识别的增强现实系统,该系统可以准确定位手掌、5根手指甚至是指尖,为进一步实现人机交互奠定了坚实的基础。通过该系统可以很大程度上摆脱硬件对人机交互的束缚,使用手指在摄像头形成的视频空间图像触发一些虚拟菜单,进而实现人机交流。
增强现实;虚拟成像;人机交互;手指识别
1 ARToolKit概述
图1 ARToolKit的三维注册及工作流程
图2 ARToolKit转换坐标系
ARToolKit是一套基于C++语言的增强现实系统函数库,是由日本广岛城市大学加藤博一博士与美国华盛顿大学HITL(Human Interface Technology Lab)联合开发的增强现实系统二次开发工具,该开发包主要包括完成摄像机定标、标记识别与三维注册的AR模块,实现图像实时采集功能的Video模块和完成图像的实时显示、三维虚拟场景的实时渲染等功能的Gsub模块。其实时、精确的三维注册功能使得工程人员能够非常方便、快捷的开发增强现实应用系统[1]。ARToolKit通过计算机视觉来进行三维虚实注册,其工作流程如图1所示。
在增强现实中,坐标系统也是非常重要的一部分,其影响着坐标变换、三维注册、加载图像的位置及方向,是不可缺少的一部分,而从标识坐标系经过矩阵变换得到摄像机坐标系是最为关键的,其转换坐标系如图2所示。通过该坐标系的转换,计算机能够准确的将虚拟对象加载到相应的标识图上,为进一步人机交互奠定了基础[2]。
2 手指识别交互的实现
在手指识别系统中,为了能够快速、稳定、准确的识别手指,是需要满足一定条件的,要求在交互过程中手指尽量伸直,若是检测5根手指,则应该将手指尽量展开,并且使交互环境中与肤色相近的事物尽可能的少,避免其他事物对试验进行干扰。
1)手指肤色识别 系统采用最常用肤色检测方法——RGB分量分析方法,进行人手区域的检测。该方法基于人手肤色的检验知识,对RGB(其中,R、G、B分别表示8位的红色、绿色、蓝色亮度)3个颜色分量进行分析,满足式(1)的像素被认为是人手区域[3]:
(1)
然后,通过上述方法得到肤色检测结果,处理所得到的图像,对图像中的坏点进行修复,平滑其中较为粗糙的部分,得到较好的图像效果。另外,也可以通过使用RANSAC算法(随机抽样一致性算法)减小系统识别时的匹配误差,以提高识别的精度。RANSAC算法的引入使得手指识别更加准确,排除了一定的环境和人为干扰,使人机交互更加容易实现,并提高了人机交互的成功率[4]。
2)手指轮廓识别 手指识别系统采用的是基于边界轮廓提取办法,这种方法区别于ARToolKit自带的连通域提取算法,受环境的影响相对较小,性能上远远优于连通域提取算法[5]。因此,即使识别到的手指的象素不是非常的完整,一样可以识别出部分受干扰的手指。同时在处理图像方面,笔者对摄像机获取的视频流采用了实时横向滤帧技术,并做了相应的改进和优化,使获取的图像帧更加稳定,增强了该系统在环境光改变的情况下的适应能力,即使在环境光照不统一(同一帧图像中明暗不一致)的地方,该方法同样可以达到较好的效果。
在得到手指的大致轮廓后,需要对得到的图像进行二值化处理。所谓二值化是指设定一个阈值T,用T将图像的数据分成2部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化,也就是将图像上的像素点的灰度值设置为0或255,使得整个图像呈现出只有黑和白的视觉效果。在二值化过程中,阈值T的选取很大程度上决定了试验结果的好坏:在光昏暗的条件下,将阈值设置到60~235范围内,可以达到良好的识别效果;当环境光线比较适中时,需要在80~235范围内设置阈值,才能达到相同的效果;而在光线明亮时,则应该在100~235范围内调整设置阈值。
3)虚拟对象加载 在检测到手指后,可以触发一些事件,如在视频所示空间中加载一些虚拟对象。这些对象可以是有OpenGL函数生成的,也可以通过Opencv形成,甚至可以直接导入一些模型文件,如后缀为mqo的模型文件。可以先通过3D建模软件3DSMAX构建模型,然后导出后缀为obj的文件,再将此文件导入水杉软件中,经过适当处理优化、调整贴图,再导出mqo格式的模型。在原来程序的基础上,加入一些头文件,修改部分代码,即可调用这些模型。
图3 手指识别效果图
虚拟对象的坐标取决于所识别的手的位置,当成功识别到时候,会经过复杂的计算得到手的位置,并以手为中心加载其他的虚拟对象,若利用函数直接绘制虚拟体,则可以在坐标数据的位置写入以手为中心的相对坐标位置,即可成功的绘制出虚拟对象。
试验结果表明,在光照条件适宜,周围缺少相近色事物干扰的情况下,实现交互的成功率高达71%,基本满足了手指识别的要求。并且在该系统下,可以准确的识别5根手指、指尖以及手掌,并加载一些标记来表明已经识别,如用色块表示指尖,椭圆表示手指,圆圈表示手掌,识别效果如图3所示。
在手指交互系统中,初始状态仅显示虚拟菜单,当手指触及到菜单选项并且被识别的时候,该选项的颜色会发生变化,并且触发该事件。经过多次测试,结果表明在光照适宜,环境合适的条件下,手指识别系统运行良好,其运行效果如图4(a)、(b)、(c)、(d)所示。由图4可知,该系统交互过程简单方便,界面简洁明了,运行结果良好,具有一定的实时交互功能。
图4 运行效果图
3 结 语
区别于传统的人机交互模式,手指识别人机交互系统较大程度的摆脱了用户对硬件的束缚,仅利用虚拟菜单实现人与计算机的“交流”,交互过程更加自然方便。由于指尖的检测容易受到光线以及周围环境色彩的影响,使得该系统需要在一些特定环境下运行,这对交互产生了一定的限制作用。但在良好环境下,该系统交互过程简单流畅、操作自然,起到了实时交互的作用。
[1]Auley C M.Aut0CAD2000objectARX编程指南[M].李世国,潘建忠,平雪良 等译.北京:机械工业出版社,2000.
[2] 盛君,王毅刚.基于ARToolKit手指交互系统的研究 [J] .机电工程,2010(6):116-119.
[3] Molineros J,Sharma R.Real-Time Tracking of Multiple Objects Using Fiducials for Augmented Reality[M].London,UK:Academic Press Ltd,2001.
[4] Fischler M A,Bolles R C.Randomsample consensus:Aparadigmfor model fitting with applications to image analysis and automated cartography[J].CommACM,1981,24(6):381-395.
[5] 王涌天,郑伟,刘越,等.基于增强现实技术的圆明园现场数字重建[J].科技导报,2006(3): 36-40.
2012-10-14
史亨祯(1992-),男,现主要从事软件工程方面的学习。
TP311.52
A
1673-1409(2013)04-0054-02
[编辑] 洪云飞