加利福尼亚大学,定位和建图,语义建图,单目

本文着重于使用单目相机建立语义地图,包括目标姿态和形状.

本文贡献在于,提出了一个针对特定实例的网格模型,该模型可以利用相机图片中提取的语义信息在线优化.

1. 简介

人工感知技术的基础在于集几何推理和语义内容推理。当前研究的一个主要挑战是在VIO和SLAM算法中如何利用深度学习提供的信息(如语义边缘,目标关键点等)来建立有精确形状,结构和功能的目标模型.

本文开发了一个基于三角形网格和可微函数的实例特定对象形状模型,这些可微函数用于测量模型投影与检测到的语义信息在图像平面上的差异.

利用语义关键点和分割mask作为观测值来优化误差函数。从预定义的平均类别级模型初始化,优化步骤受到最近提出的可微网格渲染器(《Neural 3d mesh renderer”》)的启发,该渲染器允许对渲染图像上测量的mask误差进行反向传播,来更新网格顶点

2. 问题建模/表示

  • 相机位姿:C={ct}t=1T,ctSE(3)C = \{c_t\}_{t=1}^{T}, c_t∈SE(3)

  • 目标状态:On=(μn,Ron,pon)O_{n}=(μ_{n},R_{on},p_{on})

    其中位姿RonSO(3)R_{on} ∈SO(3),坐标ponR3p_{on}∈R^{3},形状μn=(Vn,Fn)μ_{n} = (V_{n},F_{n}),角点VnR3×VnV_{n}∈R^{3×|Vn|} ,面FnR3×FnF_{n}∈R^{3×|Fn|}

  • 关键点关联矩阵:AnRVn×KnA_{n}∈R^{|Vn|×|Kn|}

    该矩阵从所有网格角点中生成|Kn|个关键点VnAnV_{n}A_{n}

模型输入:图像序列I={it}t=1TI=\{i_{t}\}^{T}_{t=1}以及对应的相机位姿序列{ct}t=1T\{c_{t}\}^{T}_{t=1},目标状态

模型输出:对每张图片iti_{t},模型输出场景内的目标框位置以及类别ξltξ_{lt}、目标框内的分割mask slt^\hat{s_{lt}},以及语义关键点在图像中的像素坐标ylt^\hat{y_{lt}}

预测的 语义分割mask: slt^=Rmask(ct^,on^)\hat{s_{lt}}=R_{mask}(\hat{c_{t}},\hat{o_{n}})

预测的 语义keypoints: ylt^=Rkps(ct^,on^,An)\hat{y_{lt}}=R_{kps}(\hat{c_{t}},\hat{o_{n}},A_{n})

然后根据真值sltylts_{lt}、y_{lt}计算预测值的损失:Lmask,LkpsL_{mask},L_{kps}来对模型进行优化。

问题:给定目标观测Z1:T={ξlt,slt,ylt}Z_{1:T} = \{ξ_{lt},s_{lt},y_{lt}\},求相机位姿C,目标状态O使得损失函数最小。

损失函数: Localization and Mapping using Instance-specific Mesh Models 2019

3. 论文方法

对每一帧:

  1. 使用Mask-RCNN 得到目标框、框内实例的分割mask以及目标类别,

  2. 然后使用叠加沙漏模型提取目标框内的语义keypoints。模型来自《starmap for category-agnostic keypoint and viewpoint estimation》

  3. 接下来开发观测模型RmaskR_{mask}RkpsR_{kps},该模型指定了当位姿为(Rc,pc)(R_{c},p_{c})、内参为K的相机观测一个类别为ξ、姿态为(R0,p0)(R_{0},p_{0})、网格形状μ=(V,F)μ= (V,F)、关键点关联矩阵为A的目标时,应该输出的语义观测Z1:T={ξlt,slt,ylt}Z_{1:T} = \{ξ_{lt},s_{lt},y_{lt}\}

    • 计算ylty_{lt}:(keypoints的像素坐标)

      定义x:=VAekR3x:=V Ae_{k}∈R3,表示在目标帧中(世界坐标?)的keypoints,eke_{k}表示标准偏移向量(???),则其像素坐标为:
      y(k)=Kπ(RcT(Rox+popc))R2π() y^{(k)}=K*π(R^T_c(R_ox+p_o−p_c))∈R^2 \quad \pi()为透视投影
      对所有keypoints(即V*A)进行相同的操作:
      Rkps(c,o,A):=Kπ(RcT(RoVA+(popc)1T)) R_{kps}(c,o,A) :=K*π(R^T_c(R_o*V*A+ (po−pc)1^T))

    • 定义RmaskR_{mask}:
      Rmask(c,o):=Raster(Rkps(c,o,I),F) R_{mask}(c,o) :=Raster(R_{kps}(c,o,I),F)
      其中函数Raster(·)负责将目标的三维网格面F”栅格化“并投影到图像坐标系中,来自(《Neural 3d mesh renderer》)

      所有操作均可微,因此用损失函数(1)来进行优化。

    论文将定位和建图分开来实现:

    1. 在定位任务中,使用惯性里程计初始化摄像机位置,惯性里程计是通过积分测量得到的。通过损失函数(1)在每两幅图像之间依次优化摄像机姿态,得到目标级视觉惯性里程算法。
    2. 在建图任务中,为了初始化目标模型,从多个帧中收集高质量的关键点,直到丢失对象。
      1. 首先使用 Levenberg-Marquardt算法来优化LkpsL_{kps}得到这些关键点的3D位置坐标。
      2. 使用具有已知关键点的预定义类别级网格模型(mean model),应用Kabsch算法初始化对象姿态(将检测到的3D关键点转换为类别级模型关键点)。
      3. 为了得到光滑的网格模型,使用离散化的连续Laplace-Beltrami算子来执行正则化操作(《differential representations for mesh processing,》)
      4. 通过直接将网格形状模型定义为对称,可以强化对称对象类别的约束

4. 实验和结论

实验使用来自单目相机的图像和惯性里程表信息,专注于检测、定位和重建汽车。

实验只有定性结果。

Localization and Mapping using Instance-specific Mesh Models 2019

Localization and Mapping using Instance-specific Mesh Models 2019

这项工作证明了目标类别,形状和姿态可以从视觉语义观测中恢复。关键的创新点是开发了可微的关键点和分割mask投影模型,使物体形状可以用于同时进行语义建图和定位。与现有技术相比,该方法结合多视图语义信息,生成多个对象的精确实例级重构。

相关文章: