港科大开源 | 基于事件的双目视觉里程计

2022-06-16 16:27:56 浏览数 (1)

1

摘要

本文提出了一种双目事件相机的视觉里程计方法.我们的系统遵循并行跟踪和建图的方法,建图模块以概率的方式融合来自多个局部视点(通过时空一致性获得)的深度估计,构建场景的半稠密三维地图.跟踪模块通过解决由于选择的地图和事件数据表示而自然产生的配准问题来恢复双目相机的位姿.在公开数据集和我们自己的记录上的实验证明了该方法在一般6自由度运动的自然场景中的通用性.该系统成功地利用了基于事件的相机的优势,在具有挑战性的照明条件下进行视觉里程计估计,如低光和高动态范围,同时在一个标准的CPU上实时运行.

官方Demo可扫码观看:

开源代码地址:

代码语言:javascript复制
https://github.com/HKUST-Aerial-Robotics/ESVO

1 依赖安装

代码语言:javascript复制
$ cd ~/catkin_ws/src 
$ git clone https://github.com/HKUST-Aerial-Robotics/ESVO.git
代码语言:javascript复制
$ cd ~/catkin_ws/src
$ sudo apt-get install python3-vcstool
$ vcs-import < ESVO/dependencies.yaml
$ sudo apt-get install autoreconf
$ cd ~/catkin_ws/src 
$ git clone https://github.com/jbeder/yaml-cpp.git
$ cd yaml-cpp
$ mkdir build && cd build && cmake -DYAML_BUILD_SHARED_LIBS=ON ..
$ make -j

2 安装ESVO

代码语言:javascript复制
$ cd ~/catkin_ws/src 
$ git clone https://github.com/HKUST-Aerial-Robotics/ESVO.git
代码语言:javascript复制
$ catkin build esvo_time_surface esvo_core
$ source ~/catkin_ws/devel/setup.bash

3 运行

该程序实现了一个节点,该节点不断更新双目时间图(即时间平面).要独立启动它,请打开一个终端并运行以下命令

代码语言:javascript复制
$ roslaunch esvo_time_surface stereo_time_surface.launch
代码语言:javascript复制
$ roslaunch esvo_time_surface stereo_time_surface.launch

更多细节请参考项目主页

2

介绍

事件摄像机是一种新颖的仿生传感器,可以在事件发生时同步报告像素级的强度变化.因此,它们不输出灰度图像,也不像传统相机那样以固定速率运行.这种异步和差分操作原理抑制了时间冗余,因此降低了功耗和带宽.事件相机具有微秒分辨率,能够捕捉高速运动.此外,事件相机有一个非常高的动态范围(HDR)(例如140dB相比于60 dB的标准相机),这使它们可以用于广泛的照明条件.

本文利用自然场景中的事件摄像机和任意6自由度运动来解决双目视觉里程计问题.为此,我们设计了一个系统,实时处理双目事件流,输出双目的自我运动和三维场景的地图(图1).该系统基本上遵循并行跟踪-建图原理,主要模块以交错的方式运行,分别估计自我运动和三维结构(系统的更详细概述见图2).综上所述,我们的贡献如下:

  • 提出基于目标函数优化的一种新方法,旨在测量双目事件流的时空一致性
  • 提出了一种基于反深度估计概率特征的融合策略,以提高复原三维结构的密度和精度
  • 一种新的基于3D-2D配准的相机跟踪方法,利用了紧凑和有效的事件表示的固有距离场的性质
  • 一个广泛的实验评估,在公开的数据集证明该系统是计算效率,在一个标准的CPU上实时运行.并且开源

3

系统介绍

提出的双目VO系统仅以来自校准摄像机的原始事件作为输入,并设法同时估计双目事件相机的姿态,同时使用半稠密深度地图重建环境.系统的概述如图2所示,其中核心模块用虚线突出显示.与经典的SLAM系统类似,我们系统的核心由两个交错的模块组成:建图和跟踪.此外,还有第三个关键组件:事件预处理

4

实验

1 主要设备以及结果

首先,我们展示了作为事件数据来源的数据集和设备.然后,通过两组实验对该方法的性能进行了评价.

在第一组中,我们通过使用一个外部运动捕捉系统提供的地面真位姿来展示建图模块的有效性.然后我们将所提议的建图方法与三条双目三维重建模块进行比较.在第二组实验中,我们通过只输入事件并将估计的摄像机轨迹与地面真实轨迹进行比较来评估整个系统的性能.我们进一步展示了我们的方法的能力,以释放基于事件的相机的优势,以便在困难的照明条件下执行VO,如低光和HDR.最后,我们分析了VO系统的计算性能并讨论了该方法的局限性.

(图十二)

图12:建图.利用不同的立体视觉算法对多个序列的结果(深度估计)进行定性比较.第一列显示了来自DAVIS相机的强度帧(没有使用,只是为了可视化).第2-5列分别显示了GTS、SGM、CopNet和我们方法的逆深度估计结果.深度图是彩色编码的,在黑色背景上从红色(接近)到蓝色(远),在范围0.55-6.25 m为最上面的四行(来自[21]的序列),在范围1-6.25 m为最下面的两行(来自[56]的序列).

(图十三)

图13:基于运动捕捉系统提供的地面真实摄像机轨迹的两种跟踪方法的比较.第1至3列表示平动自由度(单位为米).最后一列显示的是SO(3)中测地线距离的旋转误差(ground truth rotation与估计的相对旋转的角度).每行对应一个不同的序列,地面真相用红色(-)表示,“SGM ICP”方法用蓝色(-)表示,我们的方法用绿色(-)表示.在误差图中,ground truth对应于参考点,即0.rpg序列[21]是用一个在局部循环行为下移动的手持双目相机捕获的(前四行).相比之下,upenn飞行序列[56]是通过安装在无人机上的双目装置获得的,该装置主要以转换方式在悬停和移动之间切换(下两行).

(图十四)

图14:估计的摄像机轨迹和中国香港科大实验室序列的三维重建.在所选视点上计算的反向深度映射按顺序从左到右可视化.强度框架显示仅为可视化目的.

(图十五)

图15:弱光和HDR场景.第一行:结果在一个黑暗的房间;最下面一排:结果是一个有定向灯的暗室.从左到右:灰度帧(仅为可视化目的),时间表面,估计深度地图.在时间表面底片上的重投影地图(跟踪),和三维重建与叠加摄像机轨迹估计.

(图十六)

图16:深度不确定性可以过滤不可靠的估计.

2 其他结果

5

结论

本文针对一对标定和同步的事件摄像机,提出了一套完整的基于事件的双目视觉里程计系统.据我们所知,这是第一个解决这个问题的工作.在公开可利用的数据集已经证明了我们的系统的通用性.它的性能是可比的成熟,我们也展示了事件相机带来的双目SLAM在困难的照明条件下的潜在优势.该系统计算效率高,并在一个标准的CPU上实时运行. - END -

0 人点赞