3D检测:DETR3D

简介: 3D检测:DETR3D

前言

在这篇paper,作者提出了一个更优雅的2D与3D之间转换的算法在自动驾驶领域,它不依赖于深度信息的预测,这个框架被称之为DETR3D。这个方法主要是为了葱多视角获取 scene-specific information,作者把首先生成3D的query,生成3d reference point,通过相机参数矩阵投影到2D拿到相应的2D feature。

主要贡献:

  1. 我们提出了一个基于RGB图像进行3D目标检测的改进模型。与现有的那些在最后阶段融合不同相机图像的目标预测的工作不同,我们的方法在每一层计算中都融合了所有相机的信息。据我们所知,这是将多相机检测转换为3D set-to-set预测问题的首次尝试。
  2. 我们提出了一种通过逆几何投影将提取的2D特征和3D包络框预测连接在一起的模块。它不受二阶段网络不准确的深度预测的影响,并且通过将3D信息反投影到所有可用帧上来无缝使用多个相机的信息。

和Object DGCNN类似,我们的方法不需要后处理,比如融合每个图像或全局NMS,并且性能和现有基于NMS方法相当。在相机视野的重叠区域, 我们方法明显优于其它方法。

  1. 我们发布了代码来促进复现性和未来的研究。

Method

在这里插入图片描述

Image Feature Extracting

输入图像经过ResNet + FPN后生成了多尺度的特征图。

2D-to-3D Feature Transformation

目前已经存在的自底向上的方法会为每张image预测dense的 bounding box,并且需要一个post- processing 去处理,这种方法存在两个缺点:

  1. 依赖于depth 预测。
  2. NMS-based 方法不支持并行化。

作者为了解决上述问题,提出了自顶向下的方法,它的Decoder部分与Detr类似需要迭代六次,也可以理解为一共有6层,每一层的step如下:

  1. 随机生成 N个 object queries 并与 bounding box centre 关联。
  2. 把这些 centre point 通过 全连接层 生成BEV空间的 reference point,然后通过相机参数矩阵投影到2D 坐标。
  3. 获取从多尺度PV feature,这些2d坐标可能存在一些小数或者超过图像范围的值,前者利用bilinear interpolation ,后者通过二进制参数判断,越界置0,然后对同一个query映射到不同相机不同level的feature求和取均值。在这里插入图片描述
  4. 第一步的另一个分支,把 N个object queries 通过 Self- Multi-head-Attention内部交互,避免不同的queries 预测同一个bounding box。
  5. 把 self attention输出的 query 与 2d image feature cross attention。
  6. 把 3 ,4 步结果相加获得下一层 object queries的input。
  7. 经过attention更新后的object query通过两个MLP网络来分别预测对应物体的class和bounding box的参数。

Loss

损失函数的设计也主要受DETR的启发,我们在所有object queries预测出来的检测框和所有的ground-truth bounding box之间利用匈牙利算法进行二分图匹配,找到使得loss最小的最优匹配,并计算classification focal loss和L1 regression loss。

实验结果

在这里插入图片描述

在这里插入图片描述

目录
相关文章
Access Key ID(AK)或者Secret Access Key(AK)可能存在错误或者已失效
Access Key ID(AK)或者Secret Access Key(AK)可能存在错误或者已失效
1545 1
|
机器学习/深度学习 自动驾驶 机器人
【论文速递】BEVFormer: 通过时空变换器从多相机图像中学习BEV表示
【论文速递】BEVFormer: 通过时空变换器从多相机图像中学习BEV表示
|
Shell Docker 容器
为什么bitnami 安装的软件进入容器,用户名都是I have no name
在bitnami 安装的软件进入容器用户名都显示I have no name,这是什么原因呢?
650 0
|
测试技术
Pytest----多进程并行执行自动化测试脚本
Pytest----多进程并行执行自动化测试脚本
1480 0
Pytest----多进程并行执行自动化测试脚本
|
分布式计算 Hadoop 大数据
一口气说完MR、Storm、Spark、SparkStreaming和Flink
一口气说完MR、Storm、Spark、SparkStreaming和Flink
|
9月前
|
存储 消息中间件 人工智能
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
279 3
|
传感器 自动驾驶 测试技术
【论文速递】CoRL2021 - DETR3D:通过 3D 到 2D 查询从多视图图像中检测 3D 对象
【论文速递】CoRL2021 - DETR3D:通过 3D 到 2D 查询从多视图图像中检测 3D 对象
|
11月前
|
前端开发 JavaScript Java
Java 开发中 Swing 界面嵌入浏览器实现方法详解
摘要:Java中嵌入浏览器可通过多种技术实现:1) JCEF框架利用Chromium内核,适合复杂网页;2) JEditorPane组件支持简单HTML显示,但功能有限;3) DJNativeSwing-SWT可内嵌浏览器,需特定内核支持;4) JavaFX WebView结合Swing可完美支持现代网页技术。每种方案各有特点,开发者需根据项目需求选择合适方法,如JCEF适合高性能要求,JEditorPane适合简单展示。(149字)
1275 1
|
数据采集 数据挖掘 数据处理
Pandas实践:南京地铁数据处理分析
Pandas实践:南京地铁数据处理分析
488 2
|
机器学习/深度学习 算法 PyTorch
PyTorch Lightning:简化研究到生产的工作流程
【8月更文第29天】深度学习项目往往面临着从研究阶段到生产部署的挑战。研究人员和工程师需要处理大量的工程问题,比如数据加载、模型训练、性能优化等。PyTorch Lightning 是一个轻量级的封装库,旨在通过减少样板代码的数量来简化 PyTorch 的使用,从而让开发者更专注于算法本身而不是工程细节。
645 1