Localization and Mapping using Instance-specific Mesh Models 2019

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

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

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

1. 简介

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

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

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

2. 问题建模/表示

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

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

    其中位姿 R o n ∈ S O ( 3 ) R_{on} ∈SO(3) RonSO(3),坐标 p o n ∈ R 3 p_{on}∈R^{3} ponR3,形状 μ n = ( V n , F n ) μ_{n} = (V_{n},F_{n}) μn=(Vn,Fn),角点 V n ∈ R 3 × ∣ V n ∣ V_{n}∈R^{3×|Vn|} VnR3×Vn ,面 F n ∈ R 3 × ∣ F n ∣ F_{n}∈R^{3×|Fn|} FnR3×Fn

  • 关键点关联矩阵: A n ∈ R ∣ V n ∣ × ∣ K n ∣ A_{n}∈R^{|Vn|×|Kn|} AnRVn×Kn

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

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

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

预测的 语义分割mask: s l t ^ = R m a s k ( c t ^ , o n ^ ) \hat{s_{lt}}=R_{mask}(\hat{c_{t}},\hat{o_{n}}) slt^=Rmask(ct^,on^)

预测的 语义keypoints: y l t ^ = R k p s ( c t ^ , o n ^ , A n ) \hat{y_{lt}}=R_{kps}(\hat{c_{t}},\hat{o_{n}},A_{n}) ylt^=Rkps(ct^,on^,An)

然后根据真值 s l t 、 y l t s_{lt}、y_{lt} sltylt计算预测值的损失: L m a s k , L k p s L_{mask},L_{kps} Lmask,Lkps来对模型进行优化。

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

损失函数: 在这里插入图片描述

3. 论文方法

对每一帧:

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

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

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

    • 计算 y l t y_{lt} ylt:(keypoints的像素坐标)

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

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

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

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

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

4. 实验和结论

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

实验只有定性结果。

在这里插入图片描述

在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值