LSS 和 BEVDepth算法解读

前言

当前BEV的研究大都基于深度学习的方法,从组织BEV特征信息的方式来看,主流方法分属两类:自底向上方法和自顶向下方法。

自底向上方法比较早的代表工作是LSS,后来BEVDet、BEVDepth等也是基于LSS的框架来进行优化。自底向上方法核心是:Lift——对各相机的图像显性地估计像平面下采样后特征点的深度分布,得到包含图像特征的视锥(点云);Splat——结合相机内外参把所有相机的视锥(点云)分配到BEV网格中,对每个栅格中的多个视锥点进行sum-pooling计算,形成BEV特征图;Shoot——用task head处理BEV特征图,输出感知结果。本文就是通过解读LSS和BEVDepth两篇论文,来深度剖析自底向上构建BEV方法。

自顶向下方法的典型代表是Tesla用Transformer构建BEV,2020年10月发布的FSD Beta软件视觉感知模块已开始应用此方法,在2021年Tesla AI-Day上Andrej Karparthy披露了更多技术思想,核心是:先预定义待生成的BEV特征图,利用Transformer全局感知能力在多个视角图像的特征中多次查询相应信息,并把信息融合更新到BEV特征图中。上海AILab团队做了类似的技术实现,并以BEVFormer公布了相关工作。

BEV网格

在自车周围俯视平面x-y方向划分n个网格,每个网格表示特定物理距离d米。如200200的BEV网格,每格代表0.5米,这个网格就表示100米100米的平面范围。如果恰好自车中心(自动驾驶的的车辆中心一般指后轴中心)在网格中心位置,那么网格就表示自车前、后和左、右各50米的范围。注意这里强调用网格划分平面空间,并不涉及网格内放什么内容。
在这里插入图片描述

图1. BEV网格示意

BEV特征图

在BEV网格的所有格子中都填充C个通道的特征值作为内容(contex),就组成了BEV特征图。注意,为了让BEV特征图保留BEV网格x-y方向距离的意义,这里每个格子中C通道特征值都要来自格子所对应空间的特征信息,而不是胡乱地填充其它地方的特征信息。

形象地解释,假如某个格子所对应空间有个锥桶,那么这个格子里填充的一定是用来描述这个锥桶的特征值,而不是远方天空或红绿灯的特征值。

无论是自顶向下还是自底向上方法,核心目标是:为BEV网格中每个格子组织并填充合适的特征信息,得到BEV特征图。

本文解读BEV自底向上方法的两篇重要论文:LSS和BEVDepth。LSS提出了一整套自底向上构建BEV Representation的框架(ECCV2020),为后续很多相关工作奠定了系统性基础。BEVDepth在保持LSS框架的基础上,重点围绕如何获取更准确的深度估计进行优化,另外还提出了高效计算Voxel Pooling过程的方法,引入了多帧融合,这些工作使BEVDepth取得了不错的提升效果。

1. 自底向上方法框架-LSS

参考如下:

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

视锥点云和Lift操作

用单目相机进行距离、尺寸类的感知,关键是如何恢复图像中的深度信息。

2D图像中每个像素点可以理解成世界空间中某点到相机中心的一条射线,仅利用图像不能确定此像素具体来自射线上哪个位置(也就是不知道该像素的深度值),如下图3中的P,投影到P^{'},丢失了深度信息Z。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/92e2447c5f5b41d7bee1f1f0d08c238e.png

图3 相机成像原理,三位空间某点P投影道像素平面,损失深度信息Z。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c38a80de92874ca9913a9ec99c8c9050.png)

视锥点云的空间位置

官方代码中生成视锥点云的实现方式是:如下图4所示,定义距离图像特征平面4m到44m、间隔1m的多个平面,这样每个图像特征点有D=41个可能的离散深度值。每个点相对相机的描述的位置是[h, w, d],利用相机内、外参,可以把这个位置转换成用车辆坐标系下的空间位置来表示,其维度也是HxWxDx3,即HxWxD个[x, y, z]。
在这里插入图片描述

图4 相机视锥模型,由深度范围在4m~44m、间隔1m的41个平面组成。

有了视锥点云,以及每个点所对应的空间位置,那么如何获得每个点的有效特征信息呢?这就由Lift-2“给每个点生成特征值(contex)”来实现。

视锥点云的特征(Context)

在这里插入图片描述
在这里插入图片描述

图5:Lift操作可视化原理。

BEV Pillar和Splat操作

有了视锥点云(包含空间位置和特征),就可以根据视锥点的空间位置把每个视锥点的特征(contex)放到BEV网格中的合适位置,组成BEV特征图。

BEV网格由200x200个格子(BEV Pillar)组成,每个格子对应物理尺寸为0.5米x0.5米。即BEV网格对应车辆前、后和左、右各50m,且高度不限的3维空间。

上面通过相机的内外参,已经把视锥点云转换到车辆坐标系下的空间位置。排除掉BEV网格所表示空间范围(以自车为中心100mx100m范围)以外的点,就可以把剩余有效的视锥点云分配到每个BEV Pillar里。

注意,这里存在同一个BEV Pillar可能分配多个视锥点的情况,这是由两个原因引起:

1.单张2D图像不同的像素点可能投影在俯视图中的同一个位置,例如垂直于地面的电线杆,它成像的多个像素点可能投到同一个BEV Pillar。
2.相邻两相机有部分成像区域重叠,相机图像中的不同像素点投影在同一个BEV Pillar。例如不同相机画面中的同一个目标。
对于一个BEV Pillar分配多个视锥点,作者使用了sum-pooling的方法,把视锥点的特征相加,最后得到了200x200xC的BEV特征图,源码中C取64。
在这里插入图片描述

图5. Lift-Splat-Shoot 完整过程概览。

Shoot: Motion Planning

Lift-Splat已经输出了由N个相机图像编码的BEV features,接下来就是再接上Head来实现特定的任务,这部分由Shoot来实现。

LSS的关键是可以仅使用图像就可以实现端到端的运动规划。在测试时,用推理输出cost map进行规划的实现方法是:”Shoot”输出多种轨迹,并对各个轨迹的cost进行评分,然后根据最低cost轨迹来控制车辆运动。这部分的核心思想来自《End-to-end Interpretable Neural Motion Planner》。

pipeline

论文中对方法实现描述不清楚,把方法实现的pipeline整理到如下几个部分:
在这里插入图片描述

cumsum_trick(): 池化累积求和技巧

模型中使用Pillar累积求和池化,“累积求和”是通过bin id 对所有点进行排序,对所有特征执行累积求和,然后减去 bin 部分边界处的累积求和值来执行求和池化。无需依赖 autograd 通过所有三个步骤进行反向传播,而是可以导出整个模块的分析梯度,从而将训练速度提高 2 倍。 该层被称为“Frustum Pooling”,因为它将 n 个图像产生的截锥体转换为与摄像机数量 n 无关的固定维度 CxHxW 张量。

计算原理的过程示意图:
在这里插入图片描述

图6. cumsum_trick 计算原理示意。

2. 出于蓝胜于蓝的自底向上方法BEVDepth

BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection

BEVDepth在保持LSS框架的基础上,重点围绕如何获取更准确的深度估计进行优化,另外还提出了高效计算Voxel Pooling过程的方法,引入了多帧融合,这些工作使BEVDepth取得了显著提升效果。

Motivation

近期基于视觉的自动驾驶技术中,包括自底向上的BEV方法,非常依像素赖深度估计。虽然这些方法非常受欢迎,但自然而然地还是会有疑问:这些方法中深度估计的质量和效率怎么样?已经满足了高精、高效的3D目标检测任务要求了吗?

BEVDepth论文工作中从定量和定性两方面分析了深度估计。BEVDet的深度估计和真值之间的关系如图7(a)所示,会发现深度估计准确性非常不充分。这么差的深度估计对3D目标检测的影响有多大呢?作者把BEVDet中视角转换用到的深度预测值换成了深度真值,对比结果如图7©所示,采用深度真值后mAP和NDS分别提高了18.8%和18.2%。另外,translation erro(mATE)从0.750大幅下降至0.393。这些现象表明,优化深度估计质量是提升多视角3D目标检测的关键。图7(b)中展示了BEVDepth的主要工作效果,对深度估计进行修正后,深度预测值分布非常接近真值。
在这里插入图片描述

图7. 关于深度修正及其性能的定型分析。

Methods

本文提出利用具有鲁棒性的显性深度监督(Explicit Depth Supervision)来优化深度估计,具体实现还包括深度修正(Depth Correction)和具有相机感知能力的深度估计(Camera-aware Depth Prediction)。另外,还提出了高效体素池化(Efficient Voxel Pooling)来加速BEVDepth方法,以及多帧融合(Multi-frame Fusion)来提高目标检测效果和运动速度估计。BEVDepth方法的概览如图8所示。
在这里插入图片描述

图8. BEVDepth框架。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/cca4ba355a4741398df11f667ab3f778.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ee40046932b1463ea049cae531d17f79.png)
图9. DepthNet的结构。

在这里插入图片描述
在这里插入图片描述

图10. 实现Efficient Voxel Pooling的细节示意图。

在这里插入图片描述
在这里插入图片描述

图11. 多帧融合的pipeline。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/704923.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

redis 一些笔记1

redis 一、redis事务二、管道2.1 事务与管道的区别 三、主从复制3.13.2 权限细节3.3 基本操作命令3.4 常用3.4.1 一主几从3.4.2 薪火相传3.4.3 反客为主 3.5 步骤3.6 缺点 一、redis事务 放在一个队列里,依次执行,并不保证一致性。与mysql事务不同。 命…

滚雪球学Java(82):快速上手Java线程通信:零基础学习指南

咦咦咦,各位小可爱,我是你们的好伙伴 bug菌,今天又来给大家手把手教学Java SE系列知识点啦,赶紧出来哇,别躲起来啊,听我讲干货记得点点赞,赞多了我就更有动力讲得更欢哦!所以呀&…

泰迪智能科技携手广西科技大学理学院共建“上进双创工作室”

6月12日,广东泰迪智能科技股份有限公司携手广西科技大学理学院在泰迪智能科技产教融合实训中心举行“上进双创工作室”签约揭牌仪式,标志“泰迪科技广西科大上进双创工作室”的正式启动。 仪式由泰迪智能科技运营中心总监翁梦婷主持。广西科技大学理学院…

组件二次封装,通过属性事件透传,插槽使用,组件实例方法的绑定,深入理解 Vue.js 组件扩展与插槽

透传,插槽,组件实例方法的绑定,深入理解 Vue.js 组件扩展与插槽 前言 Vue.js 提供了强大的组件化系统,允许开发者构建可复用、可组合的UI组件。在实际项目中,直接使用第三方库提供的基础组件(如Element UI…

如何筑牢防线,抵御.anony勒索病毒攻击?

引言 近年来,随着信息技术的飞速发展,网络安全问题日益凸显。其中,勒索病毒作为一种新型的网络威胁,给企业和个人用户带来了极大的困扰。在众多勒索病毒中,.anony勒索病毒以其独特的加密方式和勒索手段,引…

2024/6/11 英语每日一段

They found that, regardless of culture, greater mental well-being is linked with feeling emotions that we believe are appropriate to our situation, rather than just having positive emotions regardless of context--“feeling right” as opposed to “feeling g…

深度学习500问——Chapter10:迁移学习(3)

文章目录 11.3 迁移学习的常用方法 11.3.1 数据分布自适应 11.3.2 边缘分布自适应 11.3.3 条件分布自适应 11.3.4 联合分布自适应 11.3.5 概率分布自适应方法优劣性比较 11.3.6 特征选择 11.3.7 统计特征对齐方法 11.3 迁移学习的常用方法 11.3.1 数据分布自适应 数据分布自适…

【配置教程】Linux在企业端为何如此重要

目录 本节重点 先见一下什么是Linux 后台vs前台 企业为何选择使用Linux作为后台服务器 国内企业后台和用户使用Linux现状 1. IT服务器Linux系统应用领域 2. 嵌入式Linux系统应用领域 3. 个人桌面应用领域 Linux时代发展 版本更新 ​编辑 就个人找工作/能力提升来说…

sklearn深度学习指南:掌握机器学习的利器

sklearn深度学习指南:掌握机器学习的利器! 1. 简介1.1 什么是sklearn?1.2 sklearn的优势和应用领域1.3 为什么要学习和使用sklearn? 2. 安装和环境设置2.1 如何安装sklearn?安装Anaconda(Windows/macOS/Lin…

利用泽攸科技原位TEM技术揭示真空击穿过程中电场与电极材料相互作用

在高能物理设备和许多其他设备中,真空击穿(VBD)现象对高能物理设备的性能造成了严重的阻碍,包括真空断路器、X射线源、聚变反应堆以及粒子加速器等。然而由于对导致VBD的机制缺乏足够的科学理解,这些问题至今无法得到缓…

618哪些数码产品比较好?2024超高人气产品推荐!

随着6.18大促的脚步渐近,你是否已经按捺不住内心的激动,想要在网络购物的海洋中畅游,尽情享受购物的狂欢?然而,面对繁多的商品和各式各样的优惠活动,你是否感到了一丝迷茫?作为一位经验丰富的网…

一带一路情 相逢《中国缘》-诗琳探访湘西墨戎苗寨交流有感

一带一路情 相逢《中国缘》 诗琳探访湘西墨戎苗寨交流有感 5月21日至25日,《中国缘》栏目组组织的走进湘西苗疆边陲的文化交流活动,在群山环抱、绿树成荫、人文厚重的湘西古丈墨戎苗寨美丽绽放。这场以民间角度推演的中国和中亚人民的文化交流活动&am…

沉降观测点的定义、重要性、建设与选择

沉降观测点,简称沉降点,是指在建筑物、构筑物或地基等结构物上设置的用于测量其垂直位移(沉降)的特定位置。这些点通常被标记并安装相应的监测设备,以便长期、连续地监测结构物的沉降情况。 点击输入图片描述(最多30字&#xff09…

Kong AI Gateway 正式 GA !

Kong Gateway 3.7 版本已经重磅上线,我们给 AI Gateway 带来了一系列升级,下面是 AI Gateway 的更新亮点一览。 AI Gateway 正式 GA 在 Kong Gateway 的最新版本 3.7 中,我们正式宣布 Kong AI Gateway 达到了通用可用性(GA&…

MySQL 5.7详细下载安装配置教程(MySQL 5.7安装包)_mysql5.7的安装教程

记录MySQL 5.7 的下载安装教程,并提供了Mysql 安装包 ,以下是详细下载安装过程。 一、下载Mysql安装包 网盘下载: 下载MySQL 5.7安装包,网盘下载地址:点击此处直接下载 官网下载: 进入官网&#xff0c…

云消息队列 ApsaraMQ 成本治理实践(文末附好礼)

作者:家泽、稚柳 前言: 在 AI 原生应用架构浪潮中,消息队列需支持大规模数据和复杂 AI 模型训练与推理场景下的高效异步通信,其成本效益优化也日益受到重视。面对大模型或大数据量,消息量显著增加,云消息…

利用python爬虫采集苹果公司各产品销售收入统计报告

数据为2013年到2022年苹果公司各产品(iPhone、iPad、Mac等)及服务的销售收入。iPhone是苹果公司销售收入最高的产品。 数据统计单位为:亿美元 。 数据说明: 数据整理自苹果公司历年10-K文件,每年10-K文件可能对之前年…

构建企业核心竞争力:拥有自主大模型,引领行业未来

前言 随着人工智能技术的飞速发展,大模型技术已经成为推动行业进步的重要力量。在这个变革的时代,作为一位具有前瞻性的企业家,您深知拥有自主大模型对于提升公司竞争力、引领行业未来的重要性。本文将为您详细介绍大模型的市场现状以及企业…

SpringBoot的Mybatis-plus实战之基础知识

文章目录 MybatisPlus 介绍一、MyBatisPlus 集成步骤第一步、引入依赖第二步、定义mapper 二、注解TableNameTableldTableField 三、配置文件四、加解密实现步骤 在SpringBoot项目中使用Mybatis-plus,记录下来,方便备查。 MybatisPlus 介绍 为简化开发而…

亚信科技&用友,助力四川腾翔打通数据壁垒,跑出转型加速度

近日,亚信科技携手用友依托“AntDBU8C”联合产品,助力四川腾翔人力资源管理有限公司(以下简称:腾翔)打通“人力资源”与“财务”两大业务系统,实现高水平的数据互通、共享和应用,助力业务降本增…