王吉林 , 谢 冉 ,魏 阳 ,赵 力
(1.盐城工学院 信息工程学院,江苏 盐城 224051;2.东南大学 信息科学与工程学院,江苏 南京210096)
球形显示器[1]是一款新型的球体屏幕演示设备,采用球体背投屏幕替代平面的背投屏幕,特殊光学镜头和投影仪置于球体的底部,将普通的平面影像进行特殊的变换,投射到球形屏幕上,形成一个内投的球体影像,使球幕成为一个炫目的360°屏幕。高清的影像配上多点触摸互动功能,给人以全新的视觉体验和精神享受。相比于平面显示,球形显示触摸系统具有360°视角、非可见半球、影像随位置与高度变化、有限显示无边界及大地坐标系等特点。基于球形显示的互动系统是一项崭新的多点触摸应用,它能充分发挥球形显示器的优点,实现用户与球幕之间360°全方位丰富多彩的互动,带来全新有趣的交互体验。对基于球形显示多点触摸系统的研究具有重要的实际意义和广泛的应用价值。
一个多点触摸系统主要由显示屏、摄像头、投影仪、红外灯和计算机组成,利用受抑全内反射多点触摸技术(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操作系统的主机来处理多点触摸系统的软件。
根据多点触摸系统的硬件结构进行安装和调试,摄像头摆放位置尽量靠近球幕镜头,并且垂直朝上,安装后需保持固定,在使用中不能出现移动或偏移等现象。2个红外灯安装在底盘固定的位置即可,投影机和主机固定在底盘的下方。
系统的调试主要分为测试电源和红外灯、调节投影屏幕、调整红外摄像头的焦距和捕捉范围。接上电源后,红外灯需一直保持常亮状态,调节投影仪可使球幕成像清晰,摄像头要求采集到的画面完整且在中间成像。
系统的硬件搭建完成后,需要完成软件部分的实现。软件部分包括触摸点跟踪模块、手势识别模块和互动应用程序。在具体实现中,需要修改坐标系统使其适用于球形显示并改进相应的算法提高运算速度。
球幕上显示的内容是二维输入图片经过投影变换得到的,映射关系如图1所示。二维图片的中心位置映射到球幕的顶点(北极),图中任意一点与中心点之间的距离转换为球幕上距离顶点的维度跨度值,球幕上显示的内容为以中心点为圆心的内切圆,图片的四角不会显示出来,最外围一圈(圆周)则压缩成球幕的底点(南极)。
图1 投影映射关系
通常多点触摸系统都是用直角坐标系表示信息点,但这对于触摸球幕不太方便。本文把球幕类比为地球[2],用经纬度坐标系可以很容易地表示球幕上的点。为了计算方便,定义经度坐标,数值范围在0~2π之间。从上往下看,角度沿逆时针递增。定义纬度坐标,数值范围在 0~π 之间,北极为 0,赤道为 π/2,南极为 π。
根据上述定义,假设直角坐标系下任意点P归一化后的坐标为p(x,y),其中,中心点坐标为(0,0),得到p(x,y)与经纬度坐标p(latitude,longitude)的转换关系,其中:
触摸点跟踪的作用是将摄像头采集到的原始图像信息,经过相应处理得到触点信息,并经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软件运行非常重要的一个步骤。
校准是通过重心坐标的知识来实现,如图2所示。假设ΔABC由摄像头采集图像上的点组成,3个顶点坐标分别为A(x1,y1)、B(x2,y2)、C(x3,y3),设 α、β、γ 为 ΔABC重心坐标,根据重心坐标定理可得:α+β+γ=1。点P(x,y)为ΔABC内任意一点,用重心坐标分量表示为x=αx1+βx2+γx3,y=αy1+βy2+γy3。
图2 图像坐标和实际坐标映射图
ΔA′B′C′为 ΔABC对应的实际触摸点位置,3 个顶点 的 坐 标 分 别 为 ∶A(x′1,y′1)、B(x′2,y′2)、C(x′3,y′3),根 据 映射关系可以求得P点在 ΔA′B′C′对应点p′(x′,y′)的坐标为 :
使用三角网格对坐标进行校正,将两幅图像划分成相同个数的三角形网格,对每一个三角形进行坐标映射。当手指触摸时,通过判断触摸点所落在的三角形内,达到最终校正目的。CCV软件标准校正是在屏幕上生成9×10共90个校准点,呈矩形分布。从左上角的第一个校准点开始从左至右、从上至下开始校正。测试中发现将校准点设成矩形,分布在球形显示屏上的校准效果不理想,必须修改CCV软件,将其校准点成圆形分布。经过校正后,CCV软件开始准确地对触摸点进行跟踪,并点击平滑处理、高通滤波、触点增强等按钮对触点进行处理,最终能正确清晰地得到触点信息。
当触点信息被准确地追踪后,通过手势识别程序便可将输入触点轨迹解释为相应的手势命令,再传递给应用程序实现最终交互的功能。本文采用C#语言编写手势识别程序,手势识别程序将以动态链接库形式为应用程序提供交互功能。程序框架中交互元素由IGestureListener类定义,触点信息CursorPoint经过轨迹合成为Trace,再对轨迹分组成Group,Group即为待识别的手势。Group手势信息通过GroupGRManager类进行手势事件订阅,然后通过GestureRecognizer类进行手势识别,识别成功后,将以事件的形式传递给应用程序。
由于触摸球幕坐标体系的特殊性,标准的手势(如移动、旋转、缩放等)需要重新定义。
2.3.1 移动
图3 移动手势在平面和球面上的比较
2.3.2 旋转
平面下的旋转手势可以根据两点之间倾斜角的变化来表示,如图4(a)所示。而球面上却比较复杂,需要根据旋转角度和旋转轴计算出旋转矩阵,然后根据旋转矩阵算出触摸区域的每个点新的坐标位置,如图4(b)所示。
图4 平面和球面下坐标系的旋转比较
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 computervision framework for table-based tangible interaction[J].In Proceedings of the 1st International Conference on Tangible and Embedded Interaction,ACM,2007,7(5)∶74.