牛津大学,CVPR-2018,建图
1.论文摘要
论文设计了一个可导、端到端的建图模块,能够将传感器感受到的、相机中心视角的环境信息转化为世界坐标系下的表示,即建图。得到的地图是环境的2.5D表示,存储了深度神经网络模块从RGBD输入中提取的信息。该地图与SFM方法得到的结果不同,包含能够支持多种任务的信息。
2.简介 && 相关工作
深度学习在以图像为中心的任务中取得了 巨大的成就(分割、检测、分类),但是在图像理解上仍然有待深入研究,其中之一就是对3D空间和几何结构的推理。传统SLAM使用基于原始信息(点云、图像patches)的增量式建图方法,虽然works well ,但是不能提供自然的可学习的特征表达。这种高纬的特征是十分有用的,比如人无论在大小尺度的环境中都可以有效的进行导航,即使没有传统slam那样的精确重建地图。
本文提出了一种可以用于深度学习方法的3D环境的分布式表达,即建图模块。RNN网络负责使用该表达来编解码摄像头看到的真实环境。
建图模块的实现: dynamic spatial memory (动态空间记忆),根据相机的观测可以进行增量更新。使得RNN可以记忆已经到达过的场景,并对相机位姿进行重定位。
论文贡献:
-
设计的模型将自我中心和异地中心的信息考虑在内。(待理解)
这里自中心与异中心的差别在于坐标系的选择,异地中心指以世界坐标系为中心,自中心指相机中心
-
解决了如何确定将何种信息存储到地图中的问题
3.论文方法
提出了一个可以根据相机数据动态构建环境表达的RNN,其核心组件是一个 allocentric spatial memory module(异地记忆模块)
-
模型步骤:
在时间步T,输入RGBD(可以将后面回归CNN的预测结果作为深度图)经过CNN提取器后,通过Ground projection模块被投影为2.5D的表达O_t,再旋转r次得到O_t’用于重定位。
记异步空间记忆中t-1时刻的状态为m_t-1,(h , w),接下来使用稠密匹配算法将当前观测O_t融合注册到m_t-1中去。
使用LSTM模块执行更新,向地图中加入更多细节。
作者最终通过推导证明了,定位模块实际上是卷积操作,融合模块实际上是反卷积操作。
3.1 定位
定位模块的目标:根据异中心世界地图(世界坐标系地图)来确定相机的位置和方向。
因此需要将当前观测O_t不断旋转来与进行记忆中的地图m_t-1匹配。
具体的,将观测O_t(size: s x s x n)通过类似于卷积核的一批旋转函数O’_t实现旋转操作,O‘ _t(size: s x s x n x r),n为通道数,r为卷积核的数目。以上操作可以通过标准卷积核来实现,速度快。
得到对观测的位置和旋转的估计,即概率场p_t:
,其中星号为相关运算, σ 为softmax函数。
p_t最大的值代表当前观测与记忆m_t-1重合度最高的地方
3.2 融合
该步骤根据最大的p_t∈(h×w×r) 编码的位置和方向来平移和旋转O_t∈(sxsxn)得到融合的观测 O^t∈(h×w×n)。
首先定义变换函数T: ,
其中u,v,w为平移旋转的参数。表示将观测O经过uvw的平移旋转之后得到的张量。
假设Z ∈(h×w×r) 是坐标(u,v,w)的one-hot编码向量,则上述注册操作(3)可以写为(*表示卷积):
其中 ,表示上文中提到的旋转卷积核。
根据以上推导,有推论:
- 张量表示与o′相同的滤波器组,只不过输入输出的维度被转置。因此注册操作(3)可以通过在转置滤波器上单独应用卷积操作(4)来实现
- 转置滤波操作与反向传播应用于卷积时执行的计算完全相同。 因此只要调用深度学习框架中实现的“反卷积”,就可以跳过转置操作。
- 在one-hot张量上使用反卷积即可达到融合注册的目的
在实际中,P_t由于使用softmax操作,其已经是接近one-hot 的向量(所有值在01之间,和为1),因此可直接使用P_t作为权重对T加权求平均:
结合(4)式以及卷积的线性,得到:
该式仅使用卷积和反卷积操作执行注册,没有任何空间转换的操作,非常高效
与空间变换操作[11]不同,(7)可以处理p_t中的多模分布,估计值p_t中的任何不确定性都将反映为输出端的不确定性
3.3 更新
等到新的观测被定位并被注册到当前空间记忆m_t-1中,当前空间记忆必须被更新,得到m_t。
由于被定位和注册过的观测已经与记忆m_t-1对齐,因此将二者进行更新并不困难。作者选择使用LSTM更新(因为LSTM已经有成熟的读写门机制)
为了保持空间不变性,论文将同一个LSTM独立地用于所有的空间位置:
给定一个隐藏状态h,输入x,以及可训练参数W,函数LSTM(h,x,w)返回LSTM的(单步)更新状态。
3.4 地面投影
至此模型的输入O_t 假定是在3D空间表示的,但实际输入为RGBD 图像(x_t,d_t)。该步骤则将输入x_t转换为O_t.
首先假定地平面的方向是假定已知的(图像下方)
对于输入的RGB图像 x_t∈h′×w′×3,使用标准CNN得到提取的特征 x′t 。
根据对应的深度图d_t ∈h′×w′和相机内参,可以将特征x’t投影到以相机为中心的三维坐标系中,得到离散的、以自我为中心的观测向量O_t ∈s×s×n。但是这种投影不是一一映射,图像特征的0,1等多个元素可以投影到o_t的任何元素上。
对此,作者提出选择最大值作为最终结果,若没有候选值则取0。 这种三维点的聚集形式是由Qi等人在PointNet中提出的,作者发现它优于平均或求和。 具体的:
-
投影公式:
3D点云坐标(水平位移,高度,深度):
K为相机内参,f为焦距 -
这些点被映射成SxS领域空间中的列O_tk:
-
得到最后的投影结果:
3.5 loss函数
RNN采用端到端训练来解决RGBD输入序列的定位问题。
t时刻的位置可以离散化为{1,…,h},{1,…,w},朝向可以离散化为{1,…,r}
优化目标是最小化每个t时刻的负对数概率:
4.实验
这里传统slam的SOTA,orb-slam2表现很差,作者解释是由于传统SLA非常依赖于输入的时间连续性,而该数据集(AVD)的帧率非常低。
5. Conclusions
本文讨论了利用神经网络生成3D空间的异中心表示,使得可以对环境进行动态更新,解决了建图以及导航的问题,并将观测值的定位和注册问题简化为在存储空间中应用卷积/反卷积算子操作。
本文的主要发现是,该系统使用的表示方式明显比传统的映射算法简单,但仍然可以获得良好的定位性能,健壮、高效,并且以提供端到端学习作为更复杂系统的一个组件的方式。