Unifying Voxel-based Representation with Transformer for 3D Object Detection

本文主要是介绍Unifying Voxel-based Representation with Transformer for 3D Object Detection,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Paper name

Unifying Voxel-based Representation with Transformer for 3D Object Detection

Paper Reading Note

URL: https://arxiv.org/pdf/2206.00630.pdf

TL;DR

  • NIPS 2022 文章,提出了在 voxel 特征空间统一多模态输入的方式(UVTR),便于跨模态融合及知识蒸馏

Introduction

背景

  • 基于多模态传感器进行 3d 检测很重要,比如 lidar 获取精准定位信息,camera 获取丰富的上下文信息
  • 需要在一个统一的特征空间进行多模态的整合,从而便于知识蒸馏和跨模态特征融合。其中一个难点是 camera 缺乏准确的深度标注,从而图片难以像点云这样被天然转换到 voxel space 中

在这里插入图片描述

  • 当前的跨模态输入表达方式的特点

    • a:基于图像预测的深度将图像转换成伪点云
      • 预测深度不准确导致的误差
    • b:将 lidar 点云转换到 range-view 下
      • 几何结构压缩导致空间结构信息被破坏
  • 当前的跨模态特征表达方式的特点

    • c:图像特征转换为 frustum,然后压缩到 BEV 域下
      • BEV 下每个位置的高度压缩聚集了不同对象的特征,从而引入了语义模糊性
  • 本文认为比较合适的特征表达空间

    • d: 根据图像深度的得分和几何约束在图像特征空间采样得到 voxel 特征;lidar 点云因为有准确的位置信息,可以基于特征提取 backbone 自然地转换到 voxel 特征中
      • 在 voxel 特征基础上使用 transformer decoder 得到 3d 检测结果,环境语义模糊性

本文方案

  • 提出了在 voxel 特征空间统一多模态输入的方式(UVTR),便于跨模态融合及知识蒸馏,数据增广也可以在相同的空间中做
    • nuscenes test 集的精度:69.7%(lidar), 55.1%(camera), and 71.1%(fusion)
    • AMOTA tracking 精度:67.0%(lidar), 51.9%(camera), and 70.1%(fusion)

Dataset/Algorithm/Model/Experiment Detail

实现方式

在这里插入图片描述

  • 整体流程比较直观
    • 图像经过2d backbone 提取特征,经过 view tranform 过程转换到 voxel 空间,然后经过 voxel encoder 得到 voxel 特征
    • 点云经过 voxel backbone 转换到 voxel 空间,通过 voxel encoder 得到 voxel 特征
    • 其中两个模态经过 voxel encoder 后的特征可以进行知识蒸馏,也可以直接加权融合
    • 基于 transformer decoder 在 voxel 特征提取得到 3d 检测结果
Image Voxel 空间
  • 基于 2d backbone 提取多视角或多帧图像的特征, 基于 FPN 用于生成 FI (H×W×C尺寸) 图像特征,不同 fpn stage 的 hw 不同

  • 受到 lss 启发设计了一个 view transform 方案,基于 view transform 将图像特征转换到 voxel 空间上
    在这里插入图片描述
    首先基于单层 conv 将 FI 处理为 D 维度,然后基于 softmax 算子得到深度分布
    在这里插入图片描述
    对于体素中的点 (x, y, z),基于相机外参内参可以对应到图像 plane 中的某个 (u, v, d) 点,即可以通过图像特征转换到 voxel 空间上
    在这里插入图片描述
    其中 D I ( u , v , d ) D_{I}(u, v, d) DI(u,v,d) 代表图像特征 F I ( u , v ) F_{I}(u, v) FI(u,v) 在 voxel (x, y, z) 的occupancy probability

  • 多帧处理方式:

    • 所有帧都基于外参对齐到初始帧上,并将先对时间的 offsets 加到 channel 维度上,从而保存时域线索
    • 将所有帧的 voxel concat 起来,经过卷积得到最终的体素输出
Point Voxel Space
  • 将输入的点云分成规则的 voxel,然后利用 voxel backbone (sparse convolution) 对 voxel 进行处理
  • 不同 strides 的并行 heads 用于提取多尺度的特征,主要是在每个 h 维度上进行不同 strides 的 2d 卷积,然后上采样回相同的尺度
  • 多帧也是将相对时间 offset 附到点云上
Voxel Encoder
  • 考虑到 image 生成的 voxel 上不同视角图片投影得到的相邻 voxel 是没有交互的,所以用 3层卷积来对 voxel 进一步处理
    在这里插入图片描述
    其中知识蒸馏是作用于最后的 bn 层输出
知识蒸馏
  • 体素层面直接用 partial L2 距离 loss
    在这里插入图片描述
  • transformer 的 object queries 直接取平均进行蒸馏
    在这里插入图片描述
跨模态融合
  • 对跨模态的体素直接相加即可,然后基于一层卷积融合

实验结果

与 SOTA 模型对比

在这里插入图片描述

在这里插入图片描述

分析实验
  • 相对远距离(20-30m) fusion 相对于 lidar 涨点幅度最大;lidar 和 camera 低照下精度都低;雨天基于 camera 融合涨点幅度较大
    在这里插入图片描述

  • fusion 精度优势
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Thoughts

  • voxel 作为跨模态统一的特征空间看起来确实有相应优势的,不过保留高度维度后如果能利用上轻量级别的 head 还有待研究
  • 显存占用还是挺大的,大部分模型都得用 v100 训练,小部分模型需要用 a100

这篇关于Unifying Voxel-based Representation with Transformer for 3D Object Detection的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/559625

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

模具要不要建设3D打印中心

随着3D打印技术的日益成熟与广泛应用,模具企业迎来了自建3D打印中心的热潮。这一举措不仅为企业带来了前所未有的发展机遇,同时也伴随着一系列需要克服的挑战,如何看待企业引进增材制造,小编为您全面分析。 机遇篇: 加速产品创新:3D打印技术如同一把钥匙,为模具企业解锁了快速迭代产品设计的可能。企业能够迅速将创意转化为实体模型,缩短产品从设计到市场的周期,抢占市场先机。 强化定制化服务:面

WPF入门到跪下 第十三章 3D绘图 - 3D绘图基础

3D绘图基础 四大要点 WPF中的3D绘图涉及4个要点: 视口,用来驻留3D内容3D对象照亮部分或整个3D场景的光源摄像机,提供在3D场景中进行观察的视点 一、视口 要展示3D内容,首先需要一个容器来装载3D内容。在WPF中,这个容器就是Viewport3D(3D视口),它继承自FrameworkElement,因此可以像其他元素那样在XAML中使用。 Viewport3D与其他元素相

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

Transformer从零详细解读

Transformer从零详细解读 一、从全局角度概况Transformer ​ 我们把TRM想象为一个黑盒,我们的任务是一个翻译任务,那么我们的输入是中文的“我爱你”,输入经过TRM得到的结果为英文的“I LOVE YOU” ​ 接下来我们对TRM进行细化,我们将TRM分为两个部分,分别为Encoders(编码器)和Decoders(解码器) ​ 在此基础上我们再进一步细化TRM的