《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 一种基于球形显示的多点触摸系统
一种基于球形显示的多点触摸系统
来源:电子技术应用2013年第7期
王吉林1, 谢 冉1, 魏 阳1, 赵 力2
1. 盐城工学院 信息工程学院, 江苏 盐城 224051; 2. 东南大学 信息科学与工程学院,江苏 南京210096
摘要: 设计并实现了一个基于球形显示的多点触摸系统,分别从硬件搭建和软件实现两方面讨论了系统的具体实现过程,通过对系统进行的测试和验证, 显示了多点触摸系统带来的交互性和便捷性。
中图分类号: TP311
文献标识码: A
文章编号: 0258-7998(2013)07-0121-03
A multi-touch system based on spherical display
Wang Jilin1, Xie Ran1, Wei Yang1, Zhao Li2
1. Yancheng Institute of Technology, College of Information Engineering, Yancheng,224051,China; 2 College of Information Science and Engineering, Southeast University, Nanjing 210096, China
Abstract: A multi-touch system based on the spherical display is designed and implemented. The hardware structure and software implement have been introduced.After some system testing and validation, this multi-touch system has shown the interactivity and convenience.
Key words : multi-touch; spherical display; contact tracking; gesture recognition

    球形显示器[1]是一款新型的球体屏幕演示设备,采用球体背投屏幕替代平面的背投屏幕,特殊光学镜头和投影仪置于球体的底部,将普通的平面影像进行特殊的变换,投射到球形屏幕上,形成一个内投的球体影像,使球幕成为一个炫目的360°屏幕。高清的影像配上多点触摸互动功能,给人以全新的视觉体验和精神享受。相比于平面显示,球形显示触摸系统具有360°视角、非可见半球、影像随位置与高度变化、有限显示无边界及大地坐标系等特点。基于球形显示的互动系统是一项崭新的多点触摸应用,它能充分发挥球形显示器的优点,实现用户与球幕之间360°全方位丰富多彩的互动,带来全新有趣的交互体验。对基于球形显示多点触摸系统的研究具有重要的实际意义和广泛的应用价值。

1 系统构建
1.1 系统结构

    一个多点触摸系统主要由显示屏、摄像头、投影仪、红外灯和计算机组成,利用受抑全内反射多点触摸技术(FTIR)开发基于球形显示的多点触摸系统。显示屏选用触摸球幕,由于球幕显示的特殊性,需要一个特殊的球幕镜头对平面影像做相应变换,另外还需要一个反射镜用来通过可见光线反射红外光。
     本系统选用直径为70 cm的球幕,球幕下面有一个开口,红外光线经过开口进入球幕。选择将2个红外灯(波长780 nm、功率200 mw的圆形红外灯)安装在触摸球幕下方的开口边缘的内侧,使红外光线能均匀地照射到触摸球幕上。红外摄像头采用感光效果较好的CCD摄像头,由于采集的是红外光,需要安装一个780 nm滤光片滤除可见光,摄像头安装在触摸球幕下方的开口靠中间的位置,使得摄像头能拍到整个球幕。反射镜安装在球幕镜头里面,目的是为了增加投影仪的投射距离。球幕镜头对应设置有反射镜片的反射光通路和透射光通路,反射光通路正对红外摄像头,透射光通路位于投影仪的投射方向上,反射镜能通过其他光线反射红外光。球幕镜头采用宽角度的鱼眼镜头,安装在触摸球幕的正下方,鱼眼镜头的作用是将平面影像做相应的变形,从而能在三维球幕上平滑地显示出来。投影仪的选择主要考虑亮度、投影距离及分辨率,本系统选用1 024×768分辨率、3 000标准光亮度的NEC NP63+投影仪。采用频率为3.3 GHz的Intel 酷睿i3系列处理器,4 GB内存和Windows XP sp2操作系统的主机来处理多点触摸系统的软件
1.2 安装和调试
    根据多点触摸系统的硬件结构进行安装和调试,摄像头摆放位置尽量靠近球幕镜头,并且垂直朝上,安装后需保持固定,在使用中不能出现移动或偏移等现象。2个红外灯安装在底盘固定的位置即可,投影机和主机固定在底盘的下方。
    系统的调试主要分为测试电源和红外灯、调节投影屏幕、调整红外摄像头的焦距和捕捉范围。接上电源后,红外灯需一直保持常亮状态,调节投影仪可使球幕成像清晰,摄像头要求采集到的画面完整且在中间成像。
2 软件实现及互动应用
    系统的硬件搭建完成后,需要完成软件部分的实现。软件部分包括触摸点跟踪模块、手势识别模块和互动应用程序。在具体实现中,需要修改坐标系统使其适用于球形显示并改进相应的算法提高运算速度。
2.1 球幕坐标系统
    球幕上显示的内容是二维输入图片经过投影变换得到的,映射关系如图1所示。二维图片的中心位置映射到球幕的顶点(北极),图中任意一点与中心点之间的距离转换为球幕上距离顶点的维度跨度值,球幕上显示的内容为以中心点为圆心的内切圆,图片的四角不会显示出来,最外围一圈(圆周)则压缩成球幕的底点(南极)。

2.2 触点跟踪模块
    触摸点跟踪的作用是将摄像头采集到的原始图像信息,经过相应处理得到触点信息,并经TUIO通信协议发送给手势识别模块。目前,国外有很多开源触点跟踪软件,如Touchlib和CCV(Community Core Vision)[3]等,采用计算机图像处理库OpenCV直接处理图像和视频流,从而能够非常准确地检测到触摸点信息,这些信息最后通过TUIO协议发送。本系统使用CCV进行触点跟踪,由于CCV基于平面显示屏,因此需要对CCV进行相应地修改,使其适用于球形显示屏。
    CCV是一个开源触点跟踪软件。它需要一个摄像头或者视频来提供数据输入。经过数据处理之后,输出追踪数据(如触点坐标和触点大小等)。CCV能够与各种网络摄像头或视频采集设备协同工作,通过支持TUIO/OSC/XML的应用程序进行数据连接,并且支持包括FTIR、DI、DSI、LLP、LED-LP等在内的多种基于光学的多点触摸硬件方案。
    当手指触摸屏幕时,CCV软件能将触点信息检测出来,并在屏幕的相应位置显示白点。但通常情况下,白点的位置与实际触摸的位置不一致,因此必须对坐标位置进行校正,这也是CCV软件运行非常重要的一个步骤。

    使用三角网格对坐标进行校正,将两幅图像划分成相同个数的三角形网格,对每一个三角形进行坐标映射。当手指触摸时,通过判断触摸点所落在的三角形内,达到最终校正目的。CCV软件标准校正是在屏幕上生成9×10共90个校准点,呈矩形分布。从左上角的第一个校准点开始从左至右、从上至下开始校正。测试中发现将校准点设成矩形,分布在球形显示屏上的校准效果不理想,必须修改CCV软件,将其校准点成圆形分布。经过校正后,CCV软件开始准确地对触摸点进行跟踪,并点击平滑处理、高通滤波、触点增强等按钮对触点进行处理,最终能正确清晰地得到触点信息。
2.3 手势识别模块
    当触点信息被准确地追踪后,通过手势识别程序便可将输入触点轨迹解释为相应的手势命令,再传递给应用程序实现最终交互的功能。本文采用C#语言编写手势识别程序,手势识别程序将以动态链接库形式为应用程序提供交互功能。程序框架中交互元素由IGestureListener类定义,触点信息CursorPoint经过轨迹合成为Trace,再对轨迹分组成Group,Group即为待识别的手势。Group手势信息通过GroupGRManager类进行手势事件订阅,然后通过GestureRecognizer类进行手势识别,识别成功后,将以事件的形式传递给应用程序。
    由于触摸球幕坐标体系的特殊性,标准的手势(如移动、旋转、缩放等)需要重新定义。

2.3.3 缩放
    触摸球面上的缩放手势和平面上类似,都可以根据两点之间距离的变化来表示。但是由于球形显示的有限性,基于球形显示的缩放手势的放大系数必须限制在一定范围内,超过一定的值可能会导致部分影像无法显示。
2.3.4互动应用
    触点跟踪模块和手势识别模块完成后,就可以开发应用程序验证系统的交互功能。目前比较流行的开发语言有C/C++、C#、Flash 、Python等,一些比较成熟的多点触摸应用程序都是使用C#开发。不同的开发语言有各自的优势,用户可以根据自己的需要和实际情况自行选择开发语言,本文使用C#开发一些互动应用程序,以展示该系统多触点手势交互的能力,进而从不同方面验证了多点触摸交互系统的特性,例如图片查看器。传统的图片查看器都是通过鼠标和键盘进行操作,但旋转和缩放操作会比较麻烦,这里利用多点触摸的优势,使用C#开发了可支持移动、缩放和旋转操作的基于球形显示的多点触摸图片查看器。通过该程序用户能够用多个手指进行图片操作,验证了标准手势(如移动、旋转和缩放等)在球形显示器上的手势识别功能。
    本文介绍了一种基于球形显示的多点触摸系统,分别从硬件搭建和软件实现两方面阐述了系统的具体实现过程。在软件实现过程中,针对触摸球幕的特殊性建立了适合球形显示的地理坐标系统,然后对触点跟踪软件CCV进行了修改,使其适用于球形显示。完成了触点跟踪和手势识别模块,选用Flash和C#开发应用程序进行了多点触摸互动应用,显示出多点触摸系统带来的交互性和便捷性。
参考文献
[1] BENKO H, WILSON A D, BALAKRISHNAN R. Sphere: multi-touch interactions on a spherical display[J]. UIST,2008,2(3):67-69.
[2] KETTNER S, MADDEN C, ZIEGLER R. Direct rotational  interaction with a spherical projection creativity and cognition symposium on interaction[C]. Systems, Practice and Theory,2004.
[3] KALTENBRUNNER M, BENCINA R. CCV: a computer  vision framework for table-based tangible interaction[J]. In Proceedings of the 1st International Conference on Tangible  and Embedded Interaction, ACM, 2007,7(5):74.

此内容为AET网站原创,未经授权禁止转载。