APP下载

面向实体沙盘虚实场景漫游的联动交互

2018-07-06徐众

现代计算机 2018年16期
关键词:沙盘漫游坐标系

徐众

(广东工业大学机电工程学院,广州 510006)

0 引言

传统的实体沙盘一般根据实际场景或地形图按一定的比例制作,具有立体感强,形象直观等特点。在军事、教学、旅游及房地产开发等诸多领域都有广泛的应用[1-2]。随着计算机科学技术的发展,集成了声、光、电的电子沙盘也应运而生。电子沙盘具有快速、简便、精确的特点,因此展示效果也更加生动和形象[3]。伴随着沙盘展示的日益先进,交互性逐渐成为了影响沙盘展示的一个非常重要的标准,交互性越高,交互方式越多样,讲解人员与沙盘的互动性就越强,展示效果就越好。目前,与沙盘的交互主要是通过触摸屏来实现,此外,利用手势识别的交互、利用激光笔交互等系统的提出也很好的丰富了沙盘与人的互动体验[4-7]。但这些交互系统的功能多数是为了更好地体验沙盘场景的动态观察方式,而对场景的漫游交互方面研究较少[8]。为此,本文提出一种面向实体沙盘场景漫游的交互,通过固定于沙盘平面下方的摄像头对人物模型在实体沙盘上漫游的实时跟踪、测距定位等计算机视觉技术,实时测算出人物模型在沙盘上的朝向、方位角及二维坐标等平面位姿信息。在进行场景漫游时,只要移动人物模型使其在实体沙盘上漫游,通过坐标系转换把人物平面位姿信息实时映射到虚拟场景中的人物控制器上,就能同步控制虚拟场景中人物漫游的平面位姿,达到虚拟场景与现实场景同步漫游的联动交互效果,丰富了人与沙盘交互的体验性。

1 联动交互方案设计框架

场景漫游的联动交互框架如图1所示。

图1 交互框架图

硬件部分作为真实场景,主要包括沙盘实体模型、人物模型和一个USB摄像头。本沙盘实体模型是基于已有的地铁车站站厅的虚拟三维场景而设计的,总体尺寸与虚拟三维场景的尺寸严格按照1:80的比例制作。沙盘平面选用具有良好透光性的亚克力板作为材料,沙盘上所有的地铁车站设备模型均通过3D打印制作。摄像头固定放置在沙盘平面下方80cm处,能保证在摄像头视角范围内拍摄到人物模型在沙盘平面上任何位置的移动。在实体沙盘上,人物模型的平面位姿信息可以分解为三部分:人物的朝向、方位角和实时的二维坐标(相对于场景)。为了获得这些信息,在硬件设计上,我们通过在人物模型的底部安置红、蓝两个不同颜色的LED灯这种设计思路来实现。当移动人物模型使其在实体沙盘上漫游时,约定红灯为前向,蓝灯为后向,可以对应描述虚拟场景漫游时人物的朝向;通过计算两灯质心所确定的直线与平面定位方法中定义的坐标系x轴(或y轴)之间的夹角,可以对应描述虚拟场景漫游时人物实时的方位角;通过摄像头跟踪两灯的质心在沙盘上的移动,可测算人物模型在沙盘上实时的平面二维坐标。

综上所述,在进行场景漫游时,如果能实时获得人物模型在沙盘平面上的朝向、方位角和二维坐标,只要通过简单的坐标系变换映射到虚拟场景的人物控制器上,虚拟场景中的人物便会随着沙盘上人物模型的移动而同步的进行漫游,实现联动交互。因此,如何通过软件部分来实时获得人物模型在实体沙盘上漫游时的平面位姿信息,是整个联动交互的关键,也是本文的研究重心。

2 人物模型的跟踪

近年来,对于运动目标的跟踪,人们提出了许多算法,如基于区域的跟踪、基于活动轮廓的跟踪、基于模型的跟踪、基于特征的跟踪方法[9]。本实验采取基于特征的跟踪方法,利用人物模型底部的红、蓝两个LED灯的颜色作为特征,对人物模型在沙盘上的移动进行跟踪。由于图像噪点的影响,如果单纯在摄像头拍摄到的全视角范围内通过颜色识别去捕捉LED灯的位置,往往误差很大,而且在视角范围内出现相似颜色干扰的情况下,会直接定位到错误的区域,导致跟踪失败。基于上述原因,实验中利用CamShift跟踪算法[10],首先对人物模型整体进行跟踪,成功把两个LED灯的信息限制在跟踪搜索框内;再在此基础上做了进一步的改进:在CamShift算法每一帧实时跟踪到的目标搜索窗口中,进行基于颜色识别的LED灯轮廓检测,最后分别计算红、蓝两个灯的质心作为最后的结果。为了优化跟踪的效果,我们加入自动白平衡算法的预处理,来消除灯光、阴影等光照影响所导致的图像色彩失真,从而提高跟踪精度。整个跟踪算法的详细流程如图2所示。

图2 跟踪算法流程图

对于CamShift跟踪算法,许多文献都有详细的介绍和研究。本文针对应用的层面,主要介绍CamShift算法在应用于本实验平台上所做的优化和改进。

2.1 自动白平衡调整

在对拍摄到的图像进行处理时,由于图像RGB的通道值受室内灯光等的光照影响比较严重,像素值常常会发生一定程度的偏离,造成图像颜色失真,会产生图像整体发黄、发红、或者发蓝等视觉效果。即使转换到HSV、CMY等颜色空间也解决不了。这对利用颜色特征进行跟踪的方法会产生很大的干扰,往往无法确定颜色准确的阈值。在本实验中,加入了对图像白平衡的调整算法。该算法是基于灰度世界的图像自动白平衡算法,算法的策略是假设R,G,B三个分量的均值趋于同一个灰度阈值K,利用该阈值去调整每个颜色通道的值[11-12]。算法的步骤如下:

1.分离RGB三个通道;

2.计算RGB分量的均值Raver,Baver,Gaver;

3.令 K=(Raver+Baver+Gaver)/3;

4.计算需要调整的RGB分量的增益值:

Kr=K/Raver,Kg=K/Gaver,Kb=K/Baver;

5.利用各通道的增益调整各自的值:

Rnew=R×Kr,Gnew=G×Kg,Bnew=B×Kb;

6.合并RGB三通道图像

在第4步中,调整后的值有时会溢出(>255),采用的处理方式是计算所有Rnew,Gnew,Bnew的最大值,利用该最大值将计算后的数据重新映射到[0,255]内。在经过自动白平衡的修正之后,能够很好地消除图像受光照的影响,使图像的像素阈值得到还原,不仅能优化CamShift对目标跟踪的成功率,也能大幅提高在对跟踪到的窗口中识别红、蓝LED灯的准确率。

2.2 LED 灯的识别及质心计算

利用CamShift算法成功跟踪到目标后,在其跟踪框内,对LED灯的颜色进行识别并计算各自的质心。

(1)用HSV颜色空间阈值描述红、蓝色彩

由于HSV颜色空间比RGB颜色空间更符合人们对色彩的解释和描述,这里同样用HSV空间来描述LED灯的两种颜色。在RGB空间中,纯正的蓝色在三通道中可以表示为[0,0,255],红色则可表示为[255,0,0],经过颜色空间转换计算,在HSV空间中,得到蓝色的阈值大约为[120,255,255],红色的阈值大约为[170,255,255]。根据实验测试,分别在H通道做数值为10的上下边界调整,最终我们取[110,100,100]作为下边界,取[130,255,255]作为上边界来判断蓝色区域;同理,取[160,100,100]作为下边界,[179,255,255]作为上边界来判断红色区域。

(2)提取LED灯轮廓

通过颜色区域的判断,在跟踪窗口中分别识别出两个LED灯的区域,把这两个区域灰度图合并,制作成掩膜,然后与源图像叠加并进行位或运算。经过处理后,此时跟踪框中的图像转换成显示两个LED灯区域的二值图,便可提取LED灯各自的轮廓。

(3)计算轮廓的质心

利用两灯各自的轮廓,计算轮廓的几何矩。图像几何矩的计算如式(1):

式中,I(i,j)为图像在坐标(i,j)处的灰度值。继而可通过式(2)计算LED灯轮廓的质心:

改进后的方法能够较好地对目标进行跟踪。图3为程序运行时的效果图,可以看到,当人物模型在沙盘上任意移动时,其底部的红、蓝两个LED灯能被准确且实时的跟踪到。通过该方法,即能实时对人物模型在沙盘上的移动进行跟踪和定位。同时,在程序运行时的帧率基本稳定在23帧/秒,能基本满足对运动目标跟踪的实时性。

图3 跟踪效果图

3 单目平面定位

实验中,固定于沙盘下方的摄像头由于制作精度等因素,很难通过人为的调整使其成像平面严格平行于沙盘平面。而当摄像头和目标平面有一个倾斜角地情况下,采集到的图像会存在透视畸变。为了准确的求得人物模型在沙盘平面上的位姿,针对空间中的平面坐标,提出通过透视变换进行平面标定的方法,使摄像头视图转换到从下到上的正视视图,利用在正视视图中,固定尺度所占的像素个数与实际值的对应比例关系,即可以实现平面定位的目的。

图像中的像素坐标只提供了二维信息,而空间坐标是三维信息,只有让空间坐标的一维为0或固定值,才可以测得平面信息距离。摄像头坐标系和世界坐标系模型如图4。

图中(xc,yc,zc)为点P的相机坐标,(u,v)为点P的图像坐标,f为相机焦距。

令Zw=0来定义物体平面,则摄像机坐标系和世界坐标系的位姿关系如下:

式中,r1,r2为旋转矩阵的前两个分量,t为平移向量。

把Zc作为缩放因子,上式可转换成如下形式:

因此,只要知道单应性矩阵H,就可进行平面标定。

图4 摄像头坐标系和世界坐标系模型

由于沙盘材质的透明度很高,要想在图像中直接提取沙盘自身的特征信息尤为困难。本文中,我们利用贴在沙盘背面用于定位各个设备区域的矩形标识,使用图像分割技术提取其角点作为特征点,用于计算单应性变换矩阵H。图5为标定后的摄像头所拍摄图像的裁剪图。图中显示了贴有包括闸机、售票机、电梯、手扶梯共9个设备区域的矩形标识,空白处为人物模型的漫游范围。

图5 沙盘背面拍摄图像

下面对基于平面标定的人物模型在实体沙盘上的定位方法进行介绍。

3.1 角点提取

(1)图像分割

把拍摄的图像做高斯滤波后,利用Canny算子提取边缘信息,过滤掉无法闭合的边缘,把设备区域标识边缘的外部轮廓提取出来。

(2)曲线拟合

由于提取的边缘可能是不规则的曲线,本文中采用Douglas-Peucker算法对各个边缘曲线用多边形逼近拟合,设定逼近精度如式(5):

L为轮廓的周长,0.02为经验系数。逼近精度约束了近似曲线与原始曲线间的最大值。

(3)提取角点

经过拟合后的边缘轮廓线,我们压缩其水平方向、垂直方向和对角线方向元素,只保留该方向的终点坐标,则每个标识的边缘轮廓可以用四个角点来表示。再次过滤掉不符合四点表示的边缘轮廓,最终可以得到所有设备区域标识的角点。

理论上,单应性矩阵的计算只需要4组对应点,因此可以任选其中一个矩形标识,用代表标识的四个角点坐标来进行平面标定。本文中选择代表电梯区域的标识,如图 6 所示,图中(a)为电梯标识,(b)为标识经过拟合的边缘轮廓,图(c)标记出了标识边缘轮廓的四个角点。

图6 电梯标识的角点提取

3.2 平面标定

(1)平面坐标系的定义

定义一个平面坐标系。由于所选标识的实际形状是一个正方形,而从图中可以看出,标识的经过拟合后的边缘轮廓有轻微变形,这便是摄像头的成像平面未能严格平行沙盘平面而产生的透视畸变效果所导致。为了消除这种畸变,这里我们把标识的左上角点定义为平面坐标系原点,根据左上、左下、右下、右上的角点顺序,依次把四个角点在世界中的平面坐标定义为(0,0)、(0,d)、(d,d)、(d,0),坐标中的d为方形标识的实际边长。

(2)计算单应性矩阵

把角点的平面坐标和图像坐标按对应顺序代入式(4),可求得最终用于平面标定的单应性矩阵H。最后,通过单应性矩阵H把原图像帧的视图转换为正视视图,即实现了的平面标定的目的。

3.3 尺度比例计算

把所求得的单应性矩阵H应用于原图像帧,通过式(6)得到目标图像帧:

其中,x、y为原图像帧中的像素坐标;xdst,ydst为目标图像帧中的像素坐标。

为矩阵H中所对应的元素。

式(6)为一个非线性方程组,

故可把s、t、k看作常量。经过变换,可以把式(6)转换为线性的形式,如式(7):

由式(7)分析可知,单应性矩阵H的元素H33与坐标呈线性单减关系,故可通过调整H33的值对转换后的图像进行缩放,从而设置一个合适的尺度便于平面定位的计算。本文中,通过调整H33=15,使方形电梯标识的实际边长d在图像中对应85个像素,即尺度比例T为d:85。当得到图像帧中目标物的像素坐标时,就可以通过该尺度比例的换算,计算出目标物的实际坐标,从而实现了目标物的平面定位。图7为图5经过标定后的正视图,图中的坐标系为3.2节中定义的平面坐标系。最后把所得到的矩阵H应用于摄像头拍摄到的全幅图像帧中即可实现全图的平面标定。

图7 平面标定后的正视图

3.4 误差分析与校正

由于对红、蓝两灯的跟踪与定位情形相同,只需选择其中一个进行精度分析即可。试验中选择红色LED灯进行分析,分别对LED灯到平面坐标系x轴和y轴距离的计算值和测量值进行对比。截取程序运行过程中的几幅图像帧,如图8所示,图中的红色框为跟踪到的人物模型,框内的两个黑色点为LED灯的质心。对图中红色LED灯的平面二维坐标计算结果如表1。

图8 实验中截取的图像帧

表1 红色LED灯的二维坐标

从表1中可以看出,在截取的后两幅图像帧中,计算得到的LED灯质心的坐标值与实际测量值之间有较大误差。通过多次采样对比发现,当LED灯质心与坐标系x轴的距离大于35mm时,误差开始增大。经过分析,误差产生的主要原因是因为相机镜头的标定误差导致。但这种误差是系统误差,可以通过校正得到解决。根据实验中的采样结果,我们做以下调整:当LED灯质心与坐标系x轴的距离为35mm-50mm时,调整尺度比例T为d:88.2;当距离大于50mm时,调整尺度比例T为d:90.5。调整后,再次随机截取图像帧进行采样分析,定位结果如表2所示。表2中的分析结果显示,当经过误差校正后,LED灯坐标的误差值均不超过1cm,最大误差率控制在5%范围内,这表明本文提出的方法能够满足沙盘平面定位的精度要求。

表2 校正后的红色LED灯二维坐标对比结果

4 实现效果展示

本文提出的目标跟踪程序与平面定位程序均通过OpenCV实现。综合程序运行时所获取的朝向、方位角与平面二维坐标信息,通过平面坐标系变换把在现实场景漫游时人物模型的位姿转换成虚拟场景中漫游的人物位姿。把编译后的程序导入Unity3D的三维场景中,通过人物控制器脚本的调用,可达到良好的同步漫游效果。图(9)为联动交互效果图,从图中可看出,当使白色的人物模型在实体沙盘上漫游至电梯模型处时,虚拟场景中的人物也会同步漫游至电梯处,如图(a);当使人物模型漫游至售票机处时,虚拟场景中的人物同样会同步漫游至售票机处,如图(b),且人物漫游定位精确,较好地实现了地铁站厅虚实场景漫游的联动交互,丰富了沙盘交互的体验性和功能性。

图9 虚实场景漫游的联动交互效果

[1]程忠波.浅析数字沙盘的设计与应用[J].电子制作,2014(24):68-68.

[2]王亚丽.基于图像的激光光斑识别和特性分析[D],长春理工大学,2008.

[3]陈海汉.面向航迹规划的电子沙盘技术研究[D],2009.

[4]J Molina,M Escudero-Viñolo,A Signoriello,M Pardàs,C Ferrán.Real-Time User Independent Hand Gesture Recognition from Timeof-flight Camera Video Using Static and Dynamic Models[J].Machine Vision&Applications,2013,24(01):187-204.

[5]Mischa Spiegelmock.Leap motion Development Essentials[M].Birmingham,UK:PacktPublishing,2013,10:47-61.

[6]LinDaogui.Research on Presentation of Multime-Dia Interactive Electronic Sand Table[C].2015 International Conference on Education Technology and Economic Management.Atlantis Press,2015.

[7]严一鸣,郭星.基于计算机视觉的交互式电子沙盘系统研究[J].计算机技术与发展,2017(06):195-198.

[8]Pollefeys M,Koch R,Vergauwen M,et al.Three-Dimensional Scene Reconstruction from Images[C].Three-Dimensional Image Capture and App licationsⅢ,Washington:SPIE,2000:215-226.

[9]Deng Y,Wu L,He Y.A Novel Approach to Analyzing Object Motion Behavior[A].Eighth International Conference on Intelligent Information Hiding and Multimedia Signal Processing[C].IEEE Computer Society,2012:395-398.

[10]Exner D,Bruns E,Kurz D,et al.Fast and Robust CAMShift Tracking[A].IEEE Computer Society Conference on Computer Vision&Pattern Recognition-workshops[C].IEEE,2010:9-16.

[11]F Gasparini,R Schettin.Color Correction for Digital Photographs[C].Proceedings of the 12th Intemational Conference on Image Analysis and Processing.IEEE 2003.

[12]史榕.自动白平衡算法的研究与实现[J],2012(03):85-93.

猜你喜欢

沙盘漫游坐标系
独立坐标系椭球变换与坐标换算
沙盘游戏
ERP电子模拟沙盘在高校创新创业教育中的应用
沙盘活动设计、实施和反思——以武夷山一中沙盘活动开展为例
拒绝入侵
霹雳漫游堂
霹雳漫游堂
坐标系背后的故事
三角函数的坐标系模型
求坐标系内三角形的面积