BEVDet 论文解读

BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View

作者单位

PhiGent Robotics

目的

2D 的视觉感知在过去的几年里有了急速的发展,涌现出一些优秀的范式工作,这些工作有较高的性能,可扩展性,以及多任务的兼容性(比如 Mask R-CNN)。
但是在自动驾驶感知领域,最新的一些 benchmarks 还是有很多不同的范式。比如在 nusences 数据集上,就有一些 基于图像的方法,比如 FCOS3D,PGD等,还有一些基于 BEV 的方法,比如 PON,LSS,VPN。
因此本文提出了 BEVDet,尝试以一种统一的框架解决不同的任务。

方法

网络结构

在这里插入图片描述

BEVDet采用了模块化的设计,共由四个模块组成:

  1. image-view 编码器
  2. view transfomer
  3. BEV encoder
  4. task-specific head

Image-view Encoder

backbone + neck 的结构
backone:resnet,SwinTransformer
neck:FPN,FPN-LSS,FPN-LSS只是将1/32输入分辨率的特征上采样到1/16输入分辨率,并将其与 backbone 生成的 concat 起来。

View Transformer

view transfomer 的作用是将图像特征 转换到 BEV 空间下。这里采用的是 LSS

BEV Encoder

BEV encoder 进一步 编码 BEV 空间中的的特征。bev encoder 的结构与 backone 和 neck 类似,就是一些残差块组成的网络。

Head

就是一些基于不同任务的head。3D目标检测的 head 的目标是检测出 可移动物体的位置,scale,方向和移动速度等属性。
这里直接使用了 centerpoint中的 第一阶段的head,基于 LiDAR 的head PointPillar 和 VoxelNet。

数据增强策略

图像空间下的增强策略:

对于一些常见的数据增强策略,比如 翻转, 裁剪,旋转,都可以使用一个 3x3的转换矩阵来表示。
当我们将图像空间的坐标投影到3D空间时,可以通过数据在增强的转换矩阵,来实现数据增强的操作,这样不会改变数据的在BEV空间分布。

BEV空间下的数据增强策略

多个view 图像只能生成一个 BEV 空间下的样本,所以模型容易拟合 BEV空间下的特征。于是采用了一些 2D空间下的增强策略,包括翻转,缩放,旋转。在实践中,需要同时在 view transformer 输出的特征 和 3D目标 上作相应的操作,以保证空间一致性。需要注意的是,这种增强方法的先决条件是 view transfomer 可以将 image view encoder 和 后续的模块解耦、

Scale-NMS

在2D图像空间下,因为透视关系的存在,多个物体之间存在遮挡重叠,所以使用 经典的 nms 可以降低冗余的预测。但是在 BEV空间下,预测的物体几乎是没用重叠的,也就是说 物体的 iou 几乎是0,所以传统的 iou 就失效了。
于是本文提出了 scale-nms,在执行 nms 之前先对不同类别的物体 乘上各自的 scale(除了障碍物类别之外,因为障碍物的大小范围太过),这样就可以使 nms 重新发挥作用了。

相关资料

https://zhuanlan.zhihu.com/p/557613388

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【目标检测】epoch、、batch、、batch_size理解

1 epoch 当一个完整的数据集通过神经网络一次并且返回一次的过程称为一个epoch。 然而,当一个epoch对于计算机太过庞大时,就需要把它分成多个小块。 2 batch 在不能将数据一次性通过神经网络的适合,就需要将数据集分成几个batch。 3 batch…

【数学建模】--典型相关分析

典型相关分析(Canonical Correlation analysis)研究两组变量(每组变量中都可能有多个指标)之间相关关系的一种多元统计方法。它能够揭示出两组变量之间的内在联系。 例子: 典型相关分析定义: 列题分析&…

JDBC 批处理(Batch)

批处理 批处理允许您将相关的SQL语句分组到一个批中,并通过对数据库的一次调用提交它们。 当您一次将多个SQL语句发送到数据库时,可以减少通信开销,从而提高性能。 Statement、 PreparedStatement 和 CallableStatement 的 addBatch ()方法…

golang学习之七:for 语句的常见“坑”与避坑方法

for循环的两种方式 for-range 常见“坑”与避坑方法 坑1:循环变量的重用 下面这个示例是对一个整型切片进行遍历,并且在每次循环体的迭代中都会创建一个新的,Goroutine(Go 中的轻量级协程),输出这次迭代…

OpenCV自带的HAAR级联分类器对脸部(人脸、猫脸等)的检测识别

在计算机视觉领域,检测人脸等是一种很常见且非常重要的应用,我们可以先通过开放计算机视觉库OpenCV来熟悉这个人脸识别领域。另外OpenCV关于颜色的识别,可以查阅:OpenCV的HSV颜色空间在无人车中颜色识别的应用HSV颜色识别的跟踪实…

苹果账号被禁用怎么办

转载:苹果账号被禁用怎么办 目录 禁用的原因 解除Apple ID禁用 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UKQ1ILhC-1689932607373)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw)]​编辑 …

fiddler抓取,Android真机测试

1.配置Fiddler抓取并解密HTTPS包 Fiddler默认是不抓取HTTPS包的,需要进行相应的配置。 打开Fiddler,选择“Tools->Fiddler Options...” 2.在弹出的对话框中选择“HTTPS”选项卡: 3.勾选“Capture HTTPS CONNECTs”,接着勾选…

TCP/IP网络编程 第二十四章:制作HTTP服务器端

实现简单的Web服务器端 现在开始在HTTP协议的基础上编写Web服务器端。先给出Windows平台下的示例,再给出Linux下的示例。在这里我假设各位都有了有关HTTP的知识,如果不知道HTTP协议的具体内容可以参考的往期博客,有了这些基础就不难分析源代…

第三天 运维高级 MySQL主从复制

1.理解MySQL主从复制原理 1、master(binlog dump thread)主要负责Master库中有数据更新的时候,会按照binlog格式,将更新的事件类型写入到主库的binlog文件中。 2、I/O thread线程在Slave中创建,该线程用于请求Master&…

uniapp 微信小程序 Picker下拉列表数据回显问题

效果图&#xff1a; 1、template <template><view class"items select-box"><view class"items-text">品牌型号</view><picker change"bindBrandType" :value"brandIndex" :range"brandList"…

HTTP 什么样的响应才会被缓存

下面来讨论什么样的响应会被缓存&#xff0c;以及使用好已经缓存好的条件是什么。 缓存分为两步&#xff0c;首先将响应缓存下来&#xff0c;第二步将要发起一个请求的时候检查当前缓存是否可以使用缓存了的响应。 (1) 请求方法可以被缓存理解&#xff08;不只于 GET 方法&…

17 界面布局--登录界面

要点&#xff1a; 利用widgets做布局&#xff1a;水平&#xff0c;垂直&#xff0c;栅格 利用弹簧设置收缩 widget宽高比实际控件大很多&#xff1a;设置Fixed 如果需要去除其余边框间隙可以设置layout 将最小尺寸和最大尺寸设置为固定即为固定尺寸 设置窗口标题&#xff1a;wi…

SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter

1. 自动配置流程 导入starter依赖导入autoconfigure寻找类路径下 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件启动&#xff0c;加载所有 自动配置类 xxxAutoConfiguration 给容器中配置功能组件组件参数绑定到 属性类中。xxxPrope…

前端技术Vue学习笔记--001

前端技术Vue学习笔记 文章目录 前端技术Vue学习笔记1、Vue2和Vue3比较2、Vue简介3、Vue快速上手4、插值表达式{{}}5、Vue响应式特性6、Vue指令6.1、v-html指令6.2、v-show指令和v-if指令6.3、v-else指令和v-else-if指令6.4、v-on指令6.4.1、v-on指令基础6.4.2、v-on调用传参 6.…

Kubernetes_核心组件_kubelet_kubelet服务全解析(二)

文章目录 前言kubelet 架构kubelet 职责Node管理(节点管理)Pod管理 kubelet管理Podkubelet如何管理当前节点上所有Podkubelet三个端口kubelet获取Pod清单kubelet通过CRI接口管理Pod以及里面的容器 PodWorker的工作细节PodWorker的工作细节PLEG组件PLEG报错 kubelet创建并启动Po…

arcgis-利用等高线数据生成dem栅格

1、打开cass&#xff0c;展高程点&#xff0c;绘制三角网&#xff0c;绘制等高线&#xff0c;删除三角网和高程点。如下&#xff1a; 2、得到的等高线图&#xff0c;如下&#xff1a; 3、保存文件为dwg格式&#xff0c;随后打开arcmap软件&#xff0c;打开dwg的线层数据&#x…

Linux yum 运行时提示编码问题错误

报错&#xff1a; UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal 解决&#xff1a; 这个报错是编码问题导致的 在文件头加上 # -*- coding:utf-8 -*- 对需要比较的中文字符变量如&#xff…

网络安全防御篇之安全问题及防火墙简介

网络安全常识及术语 网络的脆弱性 什么样的网络是安全的

单片机_按键——单击,双击,长按

#define KEY_DOWN_return 1 //单击 #define KEY_Double_return 2 //双击 #define KEY_Long_return 3 //长按 #define KEY_LONG_FREE_return 6 //长按结束#define double_time_MIN 80 //双击按键,在这个时间范围内,按下两次则认为有…

Java当中的深拷贝和浅拷贝

文章目录 一、前提二、浅拷贝1. BeanUtils实现浅拷贝 三、深拷贝1. 实现Cloneable接口并重写clone()方法&#xff1a;2. 使用序列化与反序列化&#xff1a; 一、前提 在计算机的内存中&#xff0c;每个对象都被赋予一个地址&#xff0c;该地址指向对象在内存中存储的位置。当我…