小型增强现实工作空间的并行自主导航与地图构建

本文介绍一种适用于小型增强现实(AR)工作空间的手持相机并行追踪与地图构建(PPTAM)方法。该方法将追踪和地图构建分离为两个独立线程,利用关键帧和批处理技术构建精确地图,实现高效稳健的相机追踪。

Parallel Tracking and Mapping for Small AR Workspaces

作者: Geoge Klein, David Murray         2007年


小型增强现实工作空间的并行自主导航与地图构建

翻译:Taylor Guo                    2016年2月24日

        本文并不一字一句翻译,而是根据实际项目需求和产品应用,略去次要部分,选取主要部分,以求快速掌握实际应用方案。

如需完整文档,请自行学术搜索。


        概要:本文主要讲在未知场景中,对摄像头位姿估计的方法。与机器人中采用SLAM类似,我们针对小型增强现实工作空间里手持式相机进行自主导航和定位。

        自主导航和地图构建将分成两个线程:追踪相机的运动和从图像帧里处理3D导航地图的点特征。这里会涉及到优化技术和应用的实时性:本应用里面的地图在自主导航里面使用上千个地标,是最新的精确的健壮的系统。


1. 应用简介

        增强现实使用给用户提供更多信息的环境。可以用于城市导航地图、零件的CAD模型、甚至是一些离散的信息。该应用可以使用户和静止的物体动态交互,如果模型或地图对机器或程序来说易于理解,那么增强现实应用的注册信息就可以直接执行,这其实也是基于相机的增强现实的主流方法。


        不幸的是,机器程序易于理解的地图并不存在,它需要物体被标记。因此,需要传感器来获取这些特征,而传感器又有使用范围和质量的限制。信息的注册也就限制了追踪效果。那么,在增强现实应用中,就会使用扩展的追踪方法,就是在未知的场景里预先添加信息来获取最初需要的信息,这样就避免之前传感器检测不到某些未知地图的状况。最开始地图是一个比较小的点阵,后面的版本mono-SLAM算法已经可以不需要预先提供初始信息或地图了。


        本文讨论使用校准过的相机在未知场景中构建环境地图。建立环境场景后,将虚拟物体放入场景中,在这个过程中可以精确地与真实物体关联。

        我们并没有预先加入足够的信息到用户使用环境中,很多增强现实应用就不适用。我们的方法是通过远程专家提供有意义的提示和注解,本应用中采用预先虚拟模拟的沙盘。

        我们从地图的云点估计一个飞机的模型,这可以推广到一般的物体的虚拟特征。如图所示。实际上,我们将平面物体(有纹理)转换成互动的立体的虚拟影像,在这个阶段,我们开发了简单的游戏。相机界面变成了同时观察和用户交互的工具。



        为了能让用户更自由地与虚拟环境交互,我们需要快速、精确和健壮的相机追踪算法,当进入新场景时,能重构地图,那么这样就有一些限制,场景要尽可能小,要静止画面不能扭曲。小,意味着用户需要花更多的时间在同一个地方,如桌子、房间角落或单一建筑物前。我们也考虑到应用的扩展,扩展到大型的增强现实工作空间,如城市。


2. SLAM方法

方法总结:

a.    自主导航和地图构建分离,用两个并行的线程;

b.    地图构建基于关键帧,使用批处理方法(使用Bundle Adjustment 减小误差)

c.    地图的初始化采用立体匹配

d.    更新的点阵通过极值点获取

e.    获取大量的点用来构建地图


       这里可以比较一下目前最新的方法。手持相机的同步导航和地图构建,EKF-SLAM和FAST SLAM,导航和地图构建紧密地关联,相机的位姿和图标的位置根据每幅图像帧同时更新。我们认为手持相机比移动的机器人更难追踪:机器人获取的数据可以测得距离;机器人可以以很慢的速度移动。相反,单目手持相机无法应用在这种场景中,数据融合产生错误,不可避免。而上面的两种方法,可能会加大这种错误。即使通过JCBB和RANSAC算法增强系统的健壮性,增强现实仍然无法使用。

       这样自主导航和地图重构就要分开。两个功能分开后,导航就没有必要依赖于基于概率论的地图构建,健壮的自主导航方法就可以加入。实际上,两个功能之间并没有数据关联。由于计算机多线程处理能力,自主导航功能就贯穿于整个图像处理过程中,并增强性能。

       当相机没有移动的时候,图像帧里包含足够多的信息,没有必要每一帧都拿来做地图构建。我们主要处理少量有用的关键帧。这些关键帧的能实时地处理,这个过程是在下一个关键帧进来之前完成。然后,用高度精确的批处理算法处理后面的地图构建,这个算法如Bundle Adjustment.

      Bundle Adjustment 在视觉里程导航中被证明行之有效,我们觉得采用这个方法。首先,通过立体5点构建初始地图,然后用本地Bundle Adjustment追踪相机最近的N个位姿,以获取较长距离下的期望精度。当系统初始化后,我们使用本地地图更新,我们试图构建全局地图,那些特征点可以再次被访问,这样就可以提供全幅地图优化。最后,我们不采用2D追踪而使用极值特征搜索。


3. 更进一步工作

系统采用UKF,使用了很少的特征点构建地图。

还有采用了学习算法,预先标记点追踪,识别特征,在训练阶段采用经典的Bundle Adjustment 算法,追踪性能不错,但没有经过学习后,没有后续尝试。还有通过其他的估计方法发了论文,说更精确,更健壮,但牺牲了系统性能,处于不稳定状态。

还有采用了SfM方法,加入了惯性传感器和鱼眼透镜,从3D位姿估计中耦合了2D特征导航算法,健壮性增强。


4. 地图

地图由M个特征点构成,位于世界坐标w下。地图Pj中的j点,坐标为Pjw=(xjw,yjw,zjw,1)T。每个坐标由nj个像素点组成。

地图系列由N个关键帧。每个关键帧以相机为中心点的坐标系,第i个关键帧是ki.

世界坐标系与关键帧坐标系的转换为:Ekiw.

每个关键帧有4个8bpp灰度值的图像金字塔;第0层存了一幅640x480的照片,第3层子抽样分辨率是80x60。


并不是每个像素都单独存储,观察到每帧的特征点后,只存储这个帧的特征点。每个地图有一个关键帧,每个关键字有一个金字塔组合,像素位于金字塔的层级中。

在金字塔层级中,每块是8x8的像素方块;在世界坐标系下,块的大小取决于金字塔层数,到关键帧中心的距离,还有块的方位。


后面的例子里,每个地图上有2000到6000个特征点M,有关键帧N=40到120个。


5. 自主导航

在3D地图估计方法构建后,将设计基于特征点的自主导航系统。

导航系统获取图像,实时估计相机位姿构建地图。

基于这样的估计,虚拟的增强图像可以画在相机动画帧的上面。

每帧画面上,系统执行如下导航步骤:

1. 获取新的图像帧,根据运动模型预先估计位姿;

2. 根据图像帧的位姿估计,地图特征点投射到照片上;

3. 根据少量的(50)粗略的特征搜索图像;

4. 根据这些粗略匹配更新相机位姿;

5. 根据大量的(1000)特征点映射的图像再次搜索;

6. 在所有匹配后,最终的关键帧的位姿估计就计算出来了。


5.1  截取图像

相机可以提供640x480像素的图像帧,速率30Hz。这些帧可以转换成8bpp灰度,用于自主导航和增强现实显示。

导航系统构建4层图像金字塔,每层用FAST-10 conrner detector扫描。

相机位姿的估计模型:decaying velocity model. 有点像a-b constant velocity model,但缺少测量,预估过程速度会下降,最终停下来。


5.2  相机的位姿和映射

为了将地图上的点投影到飞机图片上,需要将世界坐标系转换成以相机为中心的坐标系C。

可以通过矩阵4x4 Ecw 与矩阵的相乘(线性变换与线性变换的乘积),获得相机的位姿: Pjc=Ecw x Pjw (1)










5.3  图块搜索




5.4  位姿更新








5.5  导航优化

        为了增强导航系统对相机运动、图块搜索和位姿更新的适应能力,我们需要做两次。初步粗略搜索只搜索当前图像金字塔的当前帧的最上面一层50个点。这样搜索范围就比较大。新的位姿就可以计算出来。然后,1000个图像块继续搜索。更精细的搜索将在更高一级的金字塔图像块中。最终的位姿就是这样一个由从粗到细的过程。


5.6  导航功能质量与错误恢复




6  地图构建







6.1  地图初始化






6.2  关键帧插入和极值搜索


6.3  Bundle Adjustment






6.4  数据关联精细化



6.5  程序执行备注



7  结果


7.1  视频导航性能




7.2  地图构建状况




7.3 与EFK SLAM合成对比分析








7.4 与EFK SLAM子集对比分析


7.5 手持式相机AR


8 后续工作的不足



8.1 失败分析

8.2 地图构建不充分


9 结论






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值