APP下载

使用三角网的户外增强现实注册方式的研究

2010-01-01黄有群胡超博李志鹏

图学学报 2010年3期
关键词:三角网视点视线

黄有群, 胡超博, 李志鹏

(沈阳工业大学信息科学与工程学院,辽宁 沈阳 110178)

增强现实技术(Augmented Reality,简称AR)是随着虚拟现实技术(Virtual Reality,简称VR)迅速发展和实际应用需要而出现的一种新技 术[1]。与传统虚拟现实技术所要达到的完全沉浸 的效果不同,增强现实技术致力于将计算机生成的虚拟物体叠加到现实景物上[2]。由于AR具有很大的应用和发展潜力,因此正越来越引起人们的关注,已经逐步应用到医学、机械、设计、娱乐、军事等各个领域[3]。

AR系统的技术关键是三维跟踪注册[4](虚拟物体与真实物体的对准),即首先根据采集的图像或视频建立以视点为中心的观察坐标系,然后在图像或视频中根据指定虚拟物体的二维插入点计算该点的三维坐标,再根据该点空间位置及视线角度将三维虚拟物体做透视投影,最后融合真实场景与虚拟物体投影图像,从而实现周围世界真实场景与计算机生成的虚拟增强信息的结合。

增强现实技术发展至今,户外环境是一个更为广阔的应用天地。目前实用的计算机视觉和增强现实系统,包括结构光[5]方案和基于ARToolkit[6]的标记方案,其都采用了基于单摄像机的注册方式,大家知道,3D场景映射到2D图像或视频后,都丢失了图像点的深度信息,在计算机视觉中需要两幅图像交叉计算才能得到深度。结构光方案是用一个投影仪来代替一个摄像机,从而在场景中出现辅助运算的结构光条或网格,而ARToolkit则需要在场景中摆放特殊标记来辅助运算,但结构光方案不能用于强光环境,标记的制作和摆放也不适用于大规模和复杂环境,因此都不能直接应用于户外环境。现阶段所检索到的户外增强现实应用依靠传感器技术来实现跟踪与定位,如全球定位系统[7](GPS)、惯性导航系统[8]等,但是GPS设备成本昂贵、必须抵达实地测量点且GPS信号要能正常接收、惯性系统跟踪误差会随时间增加而增大,因此这些方案的应用尤其在复杂环境或不可达环境中的应用仍受很大限制。

为了更好的解决基于单摄像机的户外增强现实应用中虚实结合参数计算问题,笔者提出了在真实场景中主要目标物体上建立表面网格的方案,在视频或图像上指定一个像素后,确定了一条视线,用该视线与表面网格的交点作为实际表面点的近似,从而省略了两幅图片间寻找对应点的立体匹配和联立方程组的计算。本文以三维地形为例,将地形三角网[9]叠加到真实场景中, 用三角网辅助系统完成注册,系统的关键技术是通过对网格的顶点的实时检测获得视点和视线方向,并根据图像中指定的2D点坐标计算其三维坐标,其优点就是仅通过单幅图像就能够完成三维信息的计算并进行快速的虚实合成。表面网格节点的3D坐标的采样和计算采用基于计算机视觉的数码照片加激光测距仪的方法,将在另文阐述。本文工作的基础假定表面网格节点的三维坐标已由上述方法求出且三维网格已经生成,虚实合成是基于视频进行的,其在设计领域有着广泛的应用[10]。

1 表面网格注册算法

虚拟表面网格节点的坐标依赖于以视点为中心的观察坐标系,而在视频录像中,各帧的视点是不断变化的,虚拟表面网格相对的姿态和位置也应随之变化。在增强现实应用中,视点的变化要从图像中求出。由于虚拟表面网格的节点都对应物体表面的某些特征点,因此在视频中识别这些特征点就成为算法的关键步骤,考虑到视频中相邻帧的差别不大,识别时采用基于特征和基于局部图像的算法相结合的算法,依据图像对应点邻域内的灰度的相关性来进行识别。这样整个工作分为网格节点识别、实时计算视点和视线、表面网格与真实地形的实时对准以及在图像上指定虚实结合点进行快速的虚实合成操作。

1.1 网格节点识别

本文采用基于特征的算法和基于局部图像的算法相结合的算法识别虚拟网格的特征顶点,首先由用户去指定需要跟踪识别的虚拟网格特征顶点,在户外真实场景录像中直接提取特征得到点的坐标,然后利用基于局部图像的算法在特征点邻域内进行搜索检测,缩小了后续帧中特征点的坐标的检测范围,在检测过程中大大的减少了计算量。网格顶点检测步骤如下:

(1) 对当前图像帧进行特征点灰度提取,得到构建网格的特征点的集合Pk(k=1, 2, …)并记录下当前帧的图像信息以及特征点与网格三维数据的对应关系。

(2) 在下一图像帧中的Pk(k=1, 2, …)的M×N 窗口内进行特征点检测,以检测到的特征点集合Qk(k=1, 2, …)为候选匹配点。

(3) 对每一候选匹配点Qk(k=1, 2, …)与点Pk(k=1, 2, …)之间进行灰度级相关计算,以相关系数最大且大于一定阈值的点Q 作为匹配点。

(4) 按(1)、(2)、(3)步骤寻找Q 在前一幅图像中的匹配点,当匹配不到特征点时,选择三角网中其它的顶点进行计算。

以4 个特征点A、B、C、D 为例,图1 展示了该算法对指定特征点的跟踪效果。

图1 跟踪识别

1.2 视点与视线的计算

增强现实系统需要实时计算视点与视线方向才能够实现真实场景与虚拟物体的融合显示。本文采用线性相机模型,利用文献[5]中的公式

该方程组刻画了空间三维坐标与图像上二维坐标之间的关系。其中,(Xwi, Ywi, Zwi)为第i 点空间坐标,(ui, vi)为第i 点图像坐标,在方程中为已知条件,mij为所求摄像机参数矩阵M 的第i 行第j 列元素。若已知n 个点(n>=6)的空间和图像坐标,就可以得到2n 个关于M 矩阵的元素的线性方程,由最小二乘法可以求得M 矩阵。

根据参数矩阵M 通过分解就能够得到摄像机的所有外参数(平移分量和旋转分量),平移分量可得到视点位置,旋转分量计算可以得到视线的方向。参数矩阵M 与摄像机内外参数的关系[5]如下

1.3 三角网动态对准

基于三角网的注册算法是为了能够快速准确地将计算机所建的三维虚拟模型准确地融合到摄像机拍摄到的真实场景中并能够根据需要进行调整,针对本算法,要解决的问题就是如何做到随着视角的移动三角网投影也做相应的改变。前文已经求得摄像机的位置和朝向,当三角网在世界坐标系中的位置固定时,需要实时根据视点和视线方向构建观察坐标系,从而得到网格节点在观察坐标系下的表示,然后再进行投影变换和视区变换,最后在屏幕上显示。整个流程如图2 所示。Direct3D 是基于微软的通用对象模式COM(Common Object Mode)的3D 图形API,设置Direct3D 的视点和视线方向与前文所求得的视点和视线方向重合, Direct3D 就能够自动构建以视点为中心视线方向为Z轴方向的观察坐标系,再根据图像的长宽值设定投影参数和视区变换参数,Direct3D 就能够自动完成一系列的数学计算工作,从而实现三角网与三维地形的实时对准显示。

本文的三角网是以三角形序列的方式存储的,还需要设置Direct3D 的顶点序列表和三角形序列表。这样就为交互式的虚实合成做好了准备工作。

图2 变换流程

2 基于三角网的虚实合成

在实现了三角网动态显示之后,为了实现虚实结合就需要知道虚拟物体插入点的三维坐标,用户可以将视频录像暂停,从而利用鼠标或者菜单与3D 网格进行方便的人机交互[10]来指定图像中某一像素点为虚实结合点。在调试过程中可以显示虚拟网格,用来验证算法的正确性,在实际计算插入点参数时则不一定需要显示,以减轻系统运行负担。从屏幕上一点计算其三维坐标的过程即为图2 所示的逆过程,详细的计算过程如下。

2.1 计算通过视点与屏幕上指定点的视线矢量

(1) 确定鼠标选取点的屏幕坐标

Windows 提供了API 来完成屏幕坐标的获取,使用GetCursorPos 获得鼠标指针位置,然后再利用ScreenToClient 转换坐标到客户区坐标系(以窗口视区左上角为坐标原点,单位为像素),设该坐标为screenPt。

(2) 计算视线矢量在观察空间的表示

在观察坐标系中,视线方向是一条从观察坐标原点出发的射线,所以只需要再确定一个该射线经过的点,就可以得到它在观察坐标系中的表示。投影坐标系以近剪切面中心为坐标原点,近剪切面上一点与屏幕坐标之间的对应关系如图3所示。

图3 对应关系

假设图形程序窗口的宽为 width,高为height,投影空间上的点projPt,根据比例关系,screenPt 与投影空间上的点projPt 之间的关系为 projPt.x = (screenPt.x-width/2)/(width/2) projPt.y = -(screenPt.y-height/2)/(height/2) projPt.z = 0

projPt.z 可任意取值,不影响最终结果。得到projPt 后,需要把该点坐标从投影空间转换到观察空间,设viewPt 为projPt 在观察空间中的表示,根据观察空间到投影空间的变换关系可以得到viewPt,观察空间与投影空间的关系为

ProjPt = viewPt*ProjMatrix

式中 ProjMatrix为透视投影矩阵,通过Direct3D中的GetTransform函数可以获得,ProjMatrix在Direct3D中的定义为

其中 Zn为近投影平面的值,w,h 是观察坐标系的水平和垂直视角,Q 是远投影平面与远近投影平面之差的比值。计算得到viewPt 坐标并将projPt 带入得到

DIRview.x=(((2*screenPt.x)/width)-1)/w

DIRview.y=-(((2*screenPt.y)/height)-1)/h

DIRview.z=1

(3) 变换视线方向到世界坐标系

设inverseViewMatrix 为观察矩阵的逆矩阵,可以通过Direct3D 库函数计算得到,DIRworld为世界坐标系下视线的方向,则根据世界坐标系与观察坐标系的变换关系得 DIRworld= DIRview *inverseViewMatrix。

2.2 计算射线与三角网格交点的空间坐标

本文采用三角形重心坐标和视点到交点的距离为判断依据来判断视线是否与某一个具体的三角形相交,当有多个三角形与视线相交时取离视点最近的三角形为所求的三角形。设射线起点originPoint,三角形的三个顶点V1,V2,V3,重心坐标(U,V),射线方向 Dir,射线原点到交点的距离T,交点为IntersectPoint,则根据重心坐标的性质得

IntersectPoint = V1 + U*(V2-V1) + V*(V3-V1) ;

根据视点,视线方向和视点与交点的距离得

IntersectPoint = originPoint + T*Dir;

整理得

根据T,U,V 的含义当T>0, 0<U<1,0<V<1,0<U+V<1 时该交点在三角形内部,解此方程组即可获得距离 T 进而根据 DIRworld 求得IntersectPoint。

2.3 虚实合成显示

在已知插入点三维坐标值之后,可以通过Direct3D 来进行虚拟物体与真实物体的合成显示。虚拟物体采用微软的。X 格式文件,通过Direct3D 中的D3DXLoadMeshFromX 函数读入系统,再用SetTransform 函数设置虚拟物体到指定的空间点,之后Direct3D 就能够完成虚拟物体的显示工作,详细步骤可以参考 Microsoft DirectX SDK。用户还可以对照文献[10]完成与虚拟物体的交互操作。

3 实验结果和分析

应用本算法构建简单的实验系统,并针对于户外地形视频录像进行测试,测试平台为Windows XP,CPU 主频为1.4GHz,内存为256M,结果表明,当进行特征点识别并进行虚实合成计算后,CPU 的平均利用率约为78%,内存的占用约为50MB,系统运行负荷较小,视频运行流畅,没有明显的延时和丢帧现象,能够根据快速注册算法进行虚实合成操作,效果如图4 所示,其中图(d)为图(c)中的局部进行放大后的效果。但是,使用该算法需要注意,由于当前帧虚拟网格特征点的识别是采用的在前一帧特征点的邻域内进行搜索,因此对于摄像机快速的平移或大角度旋转的情况下会出现无法识别特征点的情况,另外由于户外环境的复杂性导致的特征点误识别,尽管可以通过交互的手段予以克服,但是会影响到系统的可操作性。

4 结 论

本文提出了户外增强现实系统中在真实场景主要物体上增加表面3D 网格来实现虚实结合参数计算的复杂问题,着重研究和解决了虚拟三角网格与真实地形的对准以及基于单幅图像的虚实参数计算问题,并利用Direct3D 实现了简单的系统,经实例运行,表明该方法能够快速的进行虚实合成参数的计算,大大地减少增强现实系统的复杂度,扩大了增强现实系统的应用范围,是解决增强现实三维注册技术的一个新的思路。

图4 程序运行效果图

[1] 柳祖国, 李世其, 李作清. 增强现实技术的研究进展及应用[J]. 系统仿真学报, 2003, 15(2): 222-225.

[2] 朱淼良, 姚 远, 蒋云良. 增强现实综述[J]. 中国图象图形学报, 2004, 9(7): 767-774.

[3] 陈 靖, 王涌天, 闫达远. 增强现实系统及其应用[J]. 计算机工程与应用, 2001, 15: 72-75.

[4] 王涌天, 刘 越, 胡晓明. 户外增强现实系统关键技术及其应用的研究[J]. 系统仿真学报, 2003, 15(3): 329-333.

[5] 张广军. 机器视觉[M]. 北京: 科学出版社, 2005. 127-155.

[6] ARToolkit[EB/OL]. http://www.hitl.washington.edu/ artoolkit.

[7] Feiner S, et al. A touring machine: prototyping 3D mobile augmented reality systems for exploring the urban environment [C]//Proc. 1st Int’l Symp. Wearable Computers (ISWC ‘97), Los Alamitos, Calif., IEEE CS Press, 1997: 74-81.

[8] Azuma R, et al. A motion-stabilized outdoor augmented reality system [C]//Proc. IEEE Virtual Reality, Los Alamitos, Calif, IEEE CS Press, 1999: 252-259.

[9] 刘 春, 吴杭彬. 基于平面不规则三角网的DEM数据压缩与质量分析[J]. 中国图象图形学报, 2007, 12(5): 836-840.

[10] 黄有群, 王 璐, 常 燕. 面向设计任务的增强现实交互技术[J]. 沈阳工业大学学报, 2008, 30(2): 203-206.

猜你喜欢

三角网视点视线
要去就去视线尽头的山
结合Delaunay三角网的自适应多尺度图像重叠域配准方法
你吸引了我的视线
针对路面建模的Delaunay三角网格分治算法
视点
当代视线
让你每天一元钱,物超所值——《今日视点—2014精萃》序
两会视点
雨天戴偏光太阳镜 视线更清晰
采用传统测量技术进行复杂立交桥工程测量的方法和措施