欢迎光临散文网 会员登陆 & 注册

公开课精华 | 基于事件相机的SLAM/VO

2020-12-11 11:57 作者:深蓝学院  | 我要投稿

本次公开课总结于香港科技大学Postdoc Research Fellow,澳大利亚国立大学的周易博士在深蓝学院的关于“Towards Event-based SLAM”的公开课演讲内容。Event-based表示的是一种基于事件相机的方法,相比于传统RGB相机,事件相机拥有其很多独特的优良特性。

公开课视频链接见底部,全文约4000字

  1. Introduction to Event-based Cameras.关于事件相机的简要介绍,包括其特性和工作原理等。

  2. Event-based SLAM/VO.回顾一下基于事件相机的SLAM/VO现在的发展状况。

  3.  ESVO System.介绍作者团队最近的开源项目。

  4. Conclusion.最后做一个总结。

1、Introduction to Event-based Cameras.

首先解决为什么需要事件相机这个问题。传统的相机(就是现在最常见RGB相机,如手机上的相机)我们称之为Standard Cameras,早期的图像处理(其实现在更多也是)都是基于传统相机来做的,然而传统相机在应用中有两个很明显的问题。

一个是运动模糊,当场景中的运动速度超过相机的采样速率之后,就会产生运动模糊,如下图左图所示,虽然可以通过算法弥补运动模糊,但是计算开销很大,不满足实时需求。

另一个问题是由于光线的问题造成曝光不足或者过曝的动态范围问题,强烈的阳光可能会使传统相机无法看清视野物体,如下图中图所示。比如在无人机灾后救援中,基于传统相机的无人机,就会受到运动模糊和动态范围不足的干扰,如下图右图所示。而事件相机就没有上述的问题。

事件相机从传感器层面解决上述问题。同传统相机不同,事件相机只观测场景中的“运动”,确切地说是观察场景中的“亮度的变化”。 

它的理论时间分辨率高达一百万hz,因此产生的延迟非常低,低于常见场景中的绝大多数的运动速率,因此就不会出现运动模糊问题。除此之外,事件相机的每个像素点是独立异步工作的,所以动态范围很大。事件相机还有能耗低的优势。 

总结就是,传统相机以固定的帧率对场景进行全帧拍摄,所有像素同步工作。事件相机是每个像素独立异步工作,采样率高达一百万hz,且仅对亮度变化(event)进行输出,一个事件(event,亮度变化)包括发生的时刻、发生的像素坐标和事件发生的极性。 

所谓事件发生的极性表示的是亮度相比于前一次采样是增加还是减少,如下图所示,红点表示为正极性,蓝色表示为负极性。

可以说,传统相机获取的是场景的静态画面,而事件相机捕捉的是场景中的运动画面,可想而知,如果场景中没有运动物体,那么事件相机就什么都看不到了。

如下图,在运动过程中,传统相机和事件相机获取的画面的不同。

事件相机由于其独特的优良特性,有着非常多的应用。如物联网中低功耗的在线监测和监控设备,自动驾驶中低延迟和高动态范围需求,VR/AR中的低延迟需求,以及工业自动化中的基于事件相机的快速拾取和放置。下图是5个事件相机的供应商,价格都比较贵。

2、Event-based SLAM/VO.

这一部分,作者将带大家简单过一下近年来基于事件相机的SLAM/VO的主要工作。 

基于传统相机的VO问题是解决mapping和tracking两个子问题,工程实践中两个子问题一般放在独立线程处理,一般mapping相比于tracking要占用较多的运算资源,因为mapping要处理大量的3D点深度估计问题。而基于事件相机的SLAM/VO也是要处理这两个子问题。 

首先基于事件相机的mapping,深度估计问题。这方面的工作可以分为两类。 

一类是Instantaneous Stereo(瞬时双目深度估计)。这类方法都是使用一对标定好的双目事件相机,包括外参数标定和时钟同步。 

瞬时双目深度估计,顾名思义就是进行一瞬间的深度估计,一瞬间可以短到逐个event的量级,比如对于左目相机的一个event,在右目相机中都要找到对应的匹配event,然后便可以通过视差来感知深度距离,我们聚焦于如何找到匹配event。

 寻找匹配事件的通常方法如通过判断发生时间是否接近、通过几何上的关联、通过时空邻域来进行关联。读者想了解这方面的工作可以阅读“neuromorphic event-based generalized time-based stereo vision”这篇论文。 

作者认为此类方法在相机静止的时候,环境中出现运动的物体,可以得到不错的结果,但是当相机开始运动,会产生更多的事件,届时就会遇到计算量瓶颈问题,因此基于逐个event匹配的方法不适合SLAM。

第二类工作是Temporal Stereo,其多见于单目深度估计领域,且已知相机运动的前提下,在一个较长的时间窗口进行事件信息的融合,没有直接使用逐个event匹配,而是采用multi-view的方法。作者推荐了两个相关的论文工作。

第一个是emvs: event-based multi-view stereo,其认为同一个3D点的观测向量会汇聚到3维空间的一点,因此对每一个event对应的射线,投回3维空间,实现建图。

第二个工作是A Unifying Contrast Maximization Framework for Event Cameras, with Applications to Motion, Depth, and Optical Flow Estimation,其引入对比度Contrast 的概念,作为误差项,支持连续的优化。 

接下来讲述基于事件相机的tracking,运动估计问题。作者从运动复杂度从低到高进行回顾,如下图的Planar Motion、3D Rotation、6-DoF Motion。

首先Planar Motion,解决的是地面移动平台的运动估计问题,一共有3个自由度,两个平移自由度加一个旋转。 

参考论文是“simultaneous localization and mapping for event-based vision systems”,它是观测天花板上的2D结构图案来进行定位。更为复杂的是3D Rotation,即3个自由度的旋转问题。 

参考论文是"imultaneous mosaicing and tracking with an event camera”和”accurate angular velocity estimation with an event camera”。最复杂的是6自由度的运动估计,主要应用在AR/VR这种小尺度的环境,参考论文是"vent-based 6-dof camera tracking from photometric depth maps”和”event-based direct camera tracking from a photometric 3d map using nonlinear optimization”。 

从环境角度来看,最早的是在环境中布置一些几何结构已知的图案,用于运动估计,对于传统相机难度较大,因为运动模糊很严重。更为复杂的是没有已知图案的现实环境。如上图的6自由度运动估计问题。 

目前来看,基于事件相机的SLAM的全系统工作几乎是寥寥无几,原因是在16年之前基于单目事件相机的深度估计问题没有很好解决。因此早期工作都是使用其它传感器来解决深度估计问题,有的是使用传统相机,有的是深度相机。 

从工程实现角度,这些解决方法都是可以的,但是由于引入了传统相机,整个系统的动态范围就降低了,需要解决跨模态的标注和同步等问题。

如果系统中仅使用单目事件相机进行slam系统构建,作者介绍了以下两个工作。

第一个工作是“real-time 3d reconstruction and 6-dof tracking with an event camera”。这篇工作包含了3个模块,分别是Tracks global 6-DoF camera motion、Estimates the log intensity gradients in a keyframe image、Estimate the inverse depths of a keyframe。 

首先是第一个模块,Tracks global 6-DoF camera motion,如下图。采用的是扩展卡尔曼滤波EKF。在预测阶段使用constant position motion model。观测模型计算了同一个像素在对数域上的亮度变化。更新部分就是正常的EKF的更新。

第二个模块,Estimates the log intensity gradients in a keyframe image,如下图。依旧是关注观测模型,两个时域上相邻的坐标一致的event,投射到关键帧,进行计算梯度,并且做了恢复对数域上的超分辨的亮度图。

第三个模块,Estimate the inverse depths of a keyframe,如下图。这里的做法和LSD-SLAM基本一致,不同的是这里是关注的是亮度变化并且是在对数域上衡量的。 

最后再加一个regularization操作,目的是让深度图更加平滑,达到降噪的效果。

第二个工作是“EVO: A Geometric Approach to Event-Based 6-DOF Parallel Tracking and Mapping in Real Time”。该工作分为tracking和mapping两个子问题。 

首先是tracking运动估计问题,如下图。方法是 image-to-model alignment。即通过当前获得的图像,与所对应的3D model进行对齐配准,得到运动参数。 

将短时间的事件累积得到2D的累积图。再从Mapping得到的相邻关键帧对应的local map中,选取具有逆深度的地图点,假设当前相机位置将这个local map投影到当前图像平面,再利用LK方法进行对齐。

然后是mapping问题,如下图。这个方法是基于前面提到的emvs方法,将3D空间进行体素化,将event射线投射到空间中,统计射线的intersection的密集程度,做了voting得到深度值。

如何在SLAM中充分利用event相机的优势呢?如果将event相机复原的图像作为输入,需要大量的计算资源,所以学术届更希望找到直接作用在event相机数据上的work的方法。 

相机在3维空间中运动,对场景进行拍摄,需要我们反解出相机的运动和场景的几何信息,解SLAM问题就是对上述问题的建模,解出来状态量和观测量以及观测量之间的数据关联问题。 

在传统相机的数据关联领域,有如显式的feature correspondence,或者隐式的photometric consistency、geometric distance。在基于事件相机的数据关联领域,如之前的“real-time 3d reconstruction and 6-dof tracking with an event camera”的数据关联都是基于对数域上的常亮度假设和线性梯度假设。 

事件相机整体的方法框架和传统相机领域基本一致,即数据关联、观测模型、计算残差、解决问题。 

综上,作者提出设计事件相机SLAM需要考虑的三个问题。 

1)如何设计直接基于事件相机数据的方法,并满足计算量不高的要求。 

2)如何找到某种information,用于建立事件的数据关联。 

3)该用单目事件相机还是双目事件相机。 

接下来介绍作者团队的ESVO工作,并回答上述问题。

3、ESVO System.

ESVO系统,即Event-based Stereo Visual Odometry系统。系统分为三个模块,如下图,Event Processing模块是前端双目事件数据处理模块,然后就是mapping和tracking模块。

首先Event Processing模块。如下图是一个事件相机从上往下观测运动点的场景。得到的数据张成了平面加时间维度的三维空间,根据“HOTS: a hierarchy of event-based time-surfaces for pattern recognition”中的方法,使用time-surface map映射到一个二维的图像上,来表征三维空间事件数据。 

如果想套用基于photometric consistency这类方法的数据关联,则需要在不同视角进行观测,基于亮度不变假设进行数据关联。然而事件相机的观测不仅于视角有关,还和事件相机本身的运动有关,在单目事件相机中很难进行time-surface map的数据关联,因此作者认为单目事件相机不适合做基于事件数据的SLAM,作者因此尝试了双目事件相机的配置,效果不错。

基于双目事件相机得到的双目事件数据,理论上时间戳是相同的,像素坐标是通过可以彼此固连的刚体参数进行约束的,但是在实际中,由于会有传感器抖动现象,因此仅考虑逐个event匹配不是一个好的策略,还需要考虑空间上的邻域信息。 

如下图所示,一个像素点在左右两个time-surface map图上对应的patch的差异是最小的,这个假设作者称之为Spatial-Temporal Consistency,这就是ESVO系统中采用的数据关联的方法。

然后是mapping模块。基于上述Spatial-Temporal Consistency的假设,作者将深度估计问题设计成一个逆深度的优化问题,最优的深度对应着最低的Spatial-Temporal inconsistency,优化问题的初值采用ZNCC-block matching方法得到。

由于逆深度估计的结果通常是稀疏的,同时为了降低深度图估计的不确定性,作者团队设计了深度图的特征融合方法,如下图所示。将过去时间的深度图估计传播到当前时刻,进行融合操作。

最后是tracking模块。由于time-surface map包括了边缘运动的历史信息,map上值较大的像素对应的最近产生的event,即最近产生的边缘位置。 

作者从其之前的Canny-vo工作得到启发,提出了一个time-surface negative,将event-based tracking设计成minimization问题。问题建模如下图所示,目标函数是估计最优的相机pose,将reference frame的3D信息和time-surface map对齐。 

能量函数在每个自由度的表现如下图右上角所示,可以发现最小值和真值基本都是重叠的。

ESVO项目的主页、论文和code链接如下图所示。

4、Conclusion.

最后做一个简短的总结。事件传感器有着高动态范围、高采样率、低延时、低功耗的优点,同时也有一些诸如空间分辨率低、信噪比低、价格昂贵等缺点。 

基于事件相机的SLAM的challenge,首先需要更多的相关高质量数据集,其次需要和其它传感器协同工作。 

从一般的研究角度来看,我们需要全新的硬件来适应事件相机工作特性,同时基于事件相机的其它问题,如识别、行为理解等也需要去解决,当然以及如何更好采用深度学习的方法去处理事件数据。

公开课视频:https://www.shenlanxueyuan.com/open/course/89

公开课精华 | 基于事件相机的SLAM/VO的评论 (共 条)

分享到微博请遵守国家法律