Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D 论文笔记

原文链接:https://arxiv.org/abs/2008.05711

本文的关键是将图像特征转化为BEV特征。

虽然本文仅进行了BEV物体分割、地图分割和运动规划任务的实验,但理论上应该也适用于其余可基于BEV表达的任务,如目标检测。

1 引言

将单目检测扩展到多视图图像检测的方法可以是分别检测各视图物体后使用相机内外参旋转平移到自车坐标系。特点:

(1)平移不变性:物体像素坐标移位导致输出结果相同移位。卷积网络大致具有这一属性。

(2)排列不变性:最终结果与各视图的排列顺序无关。

(3)自我坐标系的平移/旋转不变性:若图像内容不变,则无论相机相对于自车姿态是什么,图像内的物体均会被检测到。即自车坐标系平移/旋转,输出结果相应平移/旋转。

但缺点是无法利用跨图像信息。

本文提出Lift-Splat网络,保留了上述3个特点,且是端到端可微的方法。首先通过生成棱台形状的上下文特征点云,将图像“提升(lift)”到3D,然后将这些棱台“splat(可理解为投影)”到参考平面,以便于进行运动规划的下游任务。此外,还提出“shoot(也可理解为投影)”提案轨迹到参考平面的方法来进行可解释的端到端运动规划。实验表明本文方法能够学习到从可能的输入分布中融合信息的有效机制。

3 方法

3.1 Lift:潜在的深度分布

本文方法的第一阶段独立地处理每个相机图像。该阶段的目的是将2D图像提升到所有视图共享的3D空间。

由于深度信息是转换过程中必要的,而图像存在深度模糊性,故本文方法为每个像素在所有可能的深度处都生成表达。将深度空间离散化为段,则可生成的点云(对应一个棱台状空间)。

具体而言,网络对每个像素预测一个上下文向量(即常规的卷积特征)和深度分布。则点云处的上下文特征为,如下图所示。

若网络估计为独热向量,则该方法与伪激光雷达方法相同;若网络估计深度均匀分布,则该方法与OFT(见此文的4.3.1节第一个方法)相同。因此本文方法可以灵活地在两者范围内选择。

3.2 Splat:柱体池化

使用PointPillars方法处理点云,即将每个点分配到其最近的柱体,然后使用求和池化得到的BEV特征图,再使用2D CNN处理即可。

Lift-Splat框架如下图所示。

此外,在处理每个柱体时,本文未使用填充操作,而是使用了一个累加和小技巧(见4.2节)来加速求和池化,且该操作有解析的梯度,从而加速训练。

3.3 Shoot:运动规划

测试阶段若使用推断的代价图进行规划,可以通过将不同轨迹投影到BEV平面,评估代价后选择代价最小的轨迹。

本文将“规划”视为预测给定传感器观测下自车个模板轨迹的分布,即,定义为

其中是给定观测时预测的代价图在处的值,因此可以通过优化专家轨迹的对数概率来进行端到端训练。该定义可以使得模型学习到可解释的空间代价函数。

对于给定真实轨迹,寻找中最近邻模板轨迹,然后使用交叉熵损失训练。

实际应用中,模板轨迹集是通过数据集中专家轨迹的均值聚类得到的。

4 实施

4.2 棱台池化累积和技巧

该技巧是基于本文方法用图像产生的点云形状是固定的,因此每个点可以预先分配一个区间(即BEV网格)索引,用于指示其属于哪一个区间。按照索引排序后,按下列方法操作:

可以通过计算该算法的解析梯度,而非使用自动梯度计算以加快训练。该方法被称为“棱台池化”。

5 实验与结果

5.3 鲁棒性

由于BEV CNN能学习融合不同相机信息的方法,可以使其对简单噪声模型(如外参误差或摄像机损坏)具有鲁棒性。

例如训练时随机丢弃部分摄像机图像,在测试时面对这一问题的性能会更优。实验表明,若在训练时随机丢弃一张图像,则不丢弃图像测试时,相应的性能会达到最优。这可能是由于丢弃图像使得模型能学习到不同相机之间的相关性,类似于dropout的效果。

此外如果在训练时使用含噪声的外参,在测试时外参噪声较大的情况下会有更好的性能,且性能对测试时外参噪声不敏感;但在测试时外参噪声较少时,使用不含噪声的外参训练的模型性能最优。

此外,本文还比较了各个视图的“重要性”,该重要性与丢弃某视图带来的性能下降程度相关。实验表明视野范围更广的相机丢失时带来的性能下降最大。

5.4 泛化性

若训练时仅使用固定的一部分相机,则测试时使用额外相机能带来性能提升。

此外,如果在nuScenes上训练,在Lyft上测试(二者的相机完全不同),与其余模型相比,本文的模型能够达到最优性能。

5.6 运动规划

通过训练Lift-Splat模型的输出为代价函数,可以评估运动规划的性能。但相比基于激光雷达的PointPillars而言还是有较大的性能差距。

Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D(LSS)相关推荐

  1. Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D

    最近两年自动驾驶领域有很多在bev视角下做3D检测的工作,纯视觉的bev下检测一个难点就是深度信息的缺失,本篇论文中提供了可选的离散深度值,让2D像素寻找在3D世界中最合理的位置,取得了不错的效果. ...

  2. Lift Splat Shoot Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D 论文阅读笔记

    Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D 论文阅读 ...

  3. 论文精读《LSS: Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting》

    LSS: Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D ...

  4. Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D

    一.introduction 目前的计算机视觉算法任务,基于输出结果是否与输入图像在同一个参考系下,可以分为两类: • 预测结果与输入不在同一个参考系:分类 • 预测结果与输入在同一个参考系:目标检测 ...

  5. [paper] Lift,Splat,Shoot论文浅析

    目录 基本信息 创新点 Method Lift(Latent Depth Distribution):潜在深度分布 Splat:柱体池化 基本信息 题目:<Lift, Splat, Shoot: ...

  6. 【LSS: Lift, Splat, Shoot】代码的复现与详细解读

    文章目录 一.代码复现 1.1 环境搭建 1.2 数据集下载 1.3 Evaluate a model 1.4 Visualize Predictions 1.5 Visualize Input/Ou ...

  7. BEV感知:BEV开山之作LSS(lift,splat,shoot)原理代码串讲

    自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲 前言 Lift 参数 创建视锥 CamEncode Splat 转换视锥坐标系 Voxel Pooling 总结 前言 ...

  8. [BEV] 学习笔记之Lift, Splat, Shoot

    在开源的BEV模型中,可以追溯到2020年nvidia开源的 Lift-Splat- Shoot这篇论文中,论文的核心是显示的估计图像的深度特征,并转化为BEV特征,作为BEV视角下的开山鼻祖,自然是 ...

  9. BEV(一)---lift splat shoot

    1. 算法原理 1.1 2D坐标与3D坐标的关系 如图,已知世界坐标系上的某点P(Xc, Yc, Zc)经过相机的内参矩阵可以获得唯一的图像坐标p(x, y),但是反过来已知图像上某点p(x, y), ...

最新文章

  1. R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符、str_sub函数指定起始位置和终止位置替换子字符串
  2. mysql编程的作用_数据库系统概论对学习编程的作用?
  3. 工业交换机和商用交换机对比
  4. LV也开启了直播首秀,一个小时吸引超1.5万人观看
  5. Linux 常用的IO接口
  6. Excel 枢纽图(Pivot)快速入门与示例
  7. Java 泛型List clone
  8. 从零基础入门Tensorflow2.0 ----九、44.1 keras 保存模型、参数
  9. 关于域名系统DNS解析IP地址的一些总结
  10. bzoj 2194: 快速傅立叶之二 FFT
  11. zte中兴客户端掉线的一种解决办法
  12. vFORUM 2018,开启多云未来
  13. 读书:在别人的盯梢儿和嚼舌根中茁壮成长 | 杂谈
  14. SpringBoot+logback优雅的配置日志!
  15. DITHER抖动算法
  16. Nuxt.js 中定制 error.vue 错误缺省页
  17. 向量范数和矩阵范数的理解
  18. 2022红帽RHCSA考题解析
  19. 华为汽车鸿蒙,华为鸿蒙来了!“碰一碰”就可实现设备互联
  20. 汇编原理自我总结 (二)

热门文章

  1. 惊喜价格解锁五大科技进化,广汽传祺影酷开启预售
  2. edge浏览器安装扩展插件报错:出现错误Download interrupted【更新版】
  3. 飞行时间约束的弹道导弹轨迹仿真算法
  4. 关于安防设备里的系统时间同步问题
  5. 微信小程序云函数调用失效
  6. 打造自己的专属--VSCode主题(仿HBuilderX绿柔主题配色)
  7. 各行各业程序员的一天
  8. 8月英语总结--细水长流
  9. 《录鼎记》——重启之回溯part03
  10. Springboot毕设项目餐饮管理系统设计与实现d9u1u(java+VUE+Mybatis+Maven+Mysql)