BEV(Bird’s-eye-view)三部曲之一:综述

2023-05-16

论文名:Delving into the Devils of Bird’s-eye-view Perception: A Review, Evaluation and Recipe
Github
论文网址

零、摘要

BEV perception 主要的4个问题是:

  • 如何通过从perspective view 到 BEV视角的重构丢失的3D信息
  • 如何获取BEV网格的ground truth 标注
  • 如何公式化合并从不同sources和views获取的特征的pipline
  • 如何在不同场景下传感器参数变化时,训练一个适配的、泛化性好的算法

一、Introducation

1.1 Big Picture at a Glance

本文基于输入的数据,将BEV研究分为:

  • BEV camera:仅视觉 或 以视觉为中心的目标检测/分割算法,多摄像头
  • BEV LiDAR :点云作为输入
  • and BEV fusion:多模态输入,例如camera,LiDAR,GNSS,odomerty,HD-Map,CAN-bus

1.2 Motivation to BEV Perception Research

  • Significance.
    • 当前在nuScenes数据集上,仅视觉的算法比基于LiDAR的算法NDS指标低20%;在Waymon数据集上,甚至低超过30%。
    • 单个相机的价格低于LiDAR的1/10
  • Space.
  • Readiness.
    • 数据集:KITTI、Waymo、nuScenes、Argoverse
    • 结构:Transformer,ViT, Mased Auto-encoders, CLIP

二、Background in 3D perception

2.1 Task Definition and Related Work

  • 基于单目摄像头的3D目标检测:从单张RGB图预估深度时ill-posed problem, 因此表现较差。
  • 基于LiDAR的3D目标检测:效果往往比基于摄像头的要好很多,因为多了深度的先验信息
  • 传感器融合:摄像头、激光雷达、雷达融合

2.2 Datasets and Metrics

2.2.1 数据集

主要的数据集如下:
在这里插入图片描述

  • KITTI:3D目标检测两个衡量指标:3D目标检测指标 & BEV指标
  • Waymo: 5 LiDARs and 5 views (左,左前,前,右前,右)
  • nuScenes: 6 views, 1 LiDAR, and 5 Radars + HD-Map and CAN-bus data.

2.2.2 Evaluation Metrics

  • LET-3D-APL:类似于3D-AP,但给纵向位置一定的容许偏差.
  • mAP: 在BEV视角下,根据不同距离阈值
  • NDS:The nuScenes detection score,综合考虑mAP, mATE (Average Translation Error), mASE (Average Scale Error), mAOE (Average Orientation Error), mAVE (Average Velocity Error) and mAAE (Average Attribute Error)给出的分数。

三、Methodology of BEV perception

近期主要的文献有如下:
[Image]

这些方法的表现如下表
[Image]

我们比较关心使用LiDAR和不适用的差距,由标黄的部分可以发现,两者差距还是较大。
与仅仅使用雷达的算法,例如CenterPoint,仍有部分差距。但已经超过了PointPillars.

3.1 BEV Camera

3.1.1 BEV Camera

  • 算法主要分为:
    • 2D特征提取器:backbone;
    • 2D<->3D的转换矩阵:两种视角转换,2d->3d和3d->2d. 使用物理先验或者3D监督。
    • 3D解码器:输入2D/3D的特征,输出3D bbox、BEV视角的地图分割、3D车道线

3.1.2 View Transformation

视角转换在仅摄像头的3D感知中非常关键。主要由两种思路:

  • 使用2D特征来估计深度信息(bin-wise distribution to voxel space),将2D特征lift到3D空间
  • 使用3D-2D映射关系将2D特征编码到3D空间,基于Inverse Perspective Mapping (IPM),投影矩阵由相机的内参和外参建模。
    3.2 BEV LiDAR
    在这里插入图片描述

提取的3D点云特征转换为BEV特征图,再有一个解码器获得输出。3D点云->BEV的两种思路:

  • Pre-BEV特征提取
    原始点云->体素化点云为离散的网格->3D卷积和3D稀疏卷积
  • Post-BEV特征提取
    3D卷积计算量太大,因此转换为BEV grid, 网格中点的height、instensity、density来表示grid特征,常用的PointPillars、PointNet正是类似的思路

3.3 BEV Fusion

基于IPM,使用相机的内参&外参,将图像和点云特征在BEV视角内做融合。

  • LiDAR-camera Fusion:以BEVFusion为代表
  • Temporal Fusion:利用时序,将之前的BEV特征等利用起来。

3.4 Industrial Design of BEV Perception

在这里插入图片描述

将PV特征映射到BEV空间的四种方法:

  • Fixed IPM: 假设路面是平的,固定的转换矩阵
  • Adaptive IPM:仍假设路面是平的,使用SDV的外参数
  • Transformer:不需要先验信息,数据驱动,使用一个dense transormer,广泛应用到Tesla,Horizon, HAOMO
  • ViDAR: 与LiDAR类似,使用pixel-level depth来映射
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BEV(Bird’s-eye-view)三部曲之一:综述 的相关文章

  • Grails:如何更改默认视图位置?

    我有控制器AdminTagController 默认情况下视图将位于 adminTag文件夹 是否可以将此控制器的默认文件夹更改为 admin view 我可以为每个方法指定视图 但这并不酷 谢谢 可以用以下命令更改它拦截器后 http g
  • JSF 2.0 隐式导航,不同的观点

    我正在寻找对 JSF 2 0 隐式导航及其如何与视图一起工作的良好解释 更准确地说 我知道从操作方法中我可以返回一个字符串 它是操作的结果 如果存在文件名与结果匹配的 JSF 视图 那么这就是隐式导航 现在 我的问题是 如果从文件夹内的视图
  • Pandas:了解操作何时影响原始数据帧

    我喜欢 pandas 并且已经使用它很多年了 并且非常有信心我能够很好地掌握如何对数据帧进行子集化并适当地处理视图与副本 尽管我使用了很多断言来确保 我还知道有很多关于SettingWithCopyWarning的问题 例如如何处理Pand
  • rspec 视图存根和部分视图

    我正在使用 RSpec Rails 3 2 8 上的 2 12 测试视图 我正在使用 CanCan 有条件地在页面上显示某些元素 这需要一个控制器方法 current user 在我的一些规范中 我已经能够删除 current user 例
  • 如何测试 PARTIAL 视图在 C# ASP .NET MVC 中呈现

    我有一个视图 它内部有部分视图渲染 div class partialViewDiv Html RenderPartial partial Model SomeModelProperty div 和一个返回此视图的控制器 public Ac
  • java.lang.IllegalStateException:无法为 X 创建层 - 使用硬件层时

    我在自定义视图上使用硬件层 以便在为其 Alpha 制作动画时获得更好的性能 在我的崩溃记者上看到这次崩溃 Fatal Exception java lang IllegalStateException Unable to create l
  • CodeIgniter:将参数从视图传递到控制器?

    编辑 现在使用下面的代码 我不确定如何正确打印书签和标签 我对 CI 完全陌生 最近遇到了障碍 我非常不确定如何将函数参数从视图文件传递到控制器 以便我可以在函数上使用它 我在视图上有一个 foreach 循环 遍历函数 get lates
  • 无法找到与 from-view-id '/pages/index.xhtml' 匹配的导航案例

    我在 JSF 页面之间导航时遇到问题 我的大部分导航都是在您单击命令按钮时发生的 命令按钮的操作返回一个字符串 我的登录页面是我的欢迎页面 它位于我的 web xml 中
  • 如何创建克隆重复视图?

    在我的 Android 应用程序中 我想创建重复的ImageButton已经创建的Imagebutton 我想创造新的Imagebutton以编程方式与 XML 文件中已创建的按钮具有相同的宽度 高度 背景 图像源 边距等 简而言之 我想创
  • 如何将变量传递给 django 中的所有模板? [复制]

    这个问题在这里已经有答案了 我正在尝试将变量 浏览器变量 传递给我的应用程序中的所有模板 关于如何让它发挥作用有什么建议吗 View def browser request primary cat list Categories objec
  • Android:我可以创建一个不是矩形的视图/画布吗?圆形的?

    我有一个圆形视图 悬停在主要内容上方 gt 从屏幕出来的 z 轴方向 当有人点击屏幕时 我希望选择主要内容或悬停在上方的视图 当它覆盖主视图时 到目前为止效果很好 我在透明画布上有一个圆形物品 这意味着您可以看到该圆圈之外的背景的所有内容
  • 使用什么来移动 UIView self.frame 或 self.transform 属性?

    这个问题我有点困惑 我知道我可以改变观点self frame origin 但我发现有一个名为 变换 的属性 我认为这是用于在屏幕上移动我的视图等 也许我有点不明白 所以我想知道 我必须使用哪个房产来搬家UIView 或者它的子类 另一个类
  • Android 上的自定义视图和窗口属性

    我想要做的是在我的应用程序顶部添加一个视图 该视图类似于过滤器视图 我想操纵屏幕的颜色 并且我还希望能够同时更改屏幕的亮度时间 这两件事似乎是分开起作用的 但不能一起起作用 这是我的代码 添加视图 colourView new Layer
  • 为级联子列表构建一个空的 MVC DropdownListFor

    我想构建一个空的下拉列表来接收先前下拉列表选择的结果 实际视图 div Html DropDownListFor m gt m Make Id Model MakeList HeelpResources DropdownlistMakeFi
  • 用dagger 2查看依赖注入

    我有一个自定义视图扩展TextView 我应该在哪里调用我的组件来注入视图 component inject customTextView 因此 我发现我需要在自定义视图的构造函数中添加注入 在所有视图中 或者使一个调用另一个 Exampl
  • 基于两个数据库表之间的数据比较创建oracle视图

    我有下表 我想创建视图以便descr O 以及对于常见的id isin两个表中的字段值 检查ratio字段并只取其中的行ratio字段值低 for descr O 如果 id isin 存在于一个表中但不存在于另一个表中 则获取这些行 双向
  • Django:登录用户并在同一页面上刷新而不定义模板?

    我正在尝试使用引导下拉登录表单来让用户登录 我可以对我的用户名和密码进行硬编码并进行身份验证 但我试图在不进入登录屏幕的情况下让用户登录 这是我的代码 模板 我使用操作来调用 logUserIn url 以便表单可以发布到该视图 ul cl
  • 什么时候应该使用视图控制器的 addSubview 方法?

    我正在为 iPhone 编程 我想知道何时使用视图的 addSubview 方法以及何时使用模态视图控制器 presentModalViewController 更复杂的是 如果您使用导航控制器 我没有 并且可以使用 PushViewCon
  • 在视图中获取路线名称

    我尝试设计导航菜单 我有 3 个这样的项目 仪表板 Pages List Add Articles List Add 现在我想大胆Pages当用户处于此部分时 如果在Add页面我都想要粗体Pages and Add my routes ph
  • 具有自定义标题颜色和图像的 UITabBarItem

    我正在尝试在 xcode ios 中自定义我的 TabBar 但是我刚刚发现 ppl 说这是不可自定义的 另外 我确实找到了某种解决方案 但它们都不适合我 我几乎想更改 UITabBarItem 标题 文本 颜色 并更改其中的 2 张图像

随机推荐