论文阅读:CenterFormer: Center-based Transformer for 3D Object Detection

目录

概要

Motivation

整体架构流程

技术细节

Multi-scale Center Proposal Network

Multi-scale Center Transformer Decoder

Multi-frame CenterFormer

小结


论文地址:[2209.05588] CenterFormer: Center-based Transformer for 3D Object Detection (arxiv.org)

代码地址:GitHub - TuSimple/centerformer: Implementation for CenterFormer: Center-based Transformer for 3D Object Detection (ECCV 2022)

概要

    CenterFormer,这是一种基于中心的变压器网络,用于3D目标检测。CenterFormer首先使用中心热图在标准基于体素的点云编码器之上选择中心候选。然后它使用中心候选的特征作为转换器中的查询嵌入。设计了一种通过交叉注意融合特征的方法,能进一步聚合多帧的特征。最后,添加回归头来预测输出中心特征表示上的边界框。整体设计降低了变压器结构的收敛难度和计算复杂度;与无锚目标检测网络强基线相比有显著改进。

Motivation

  1. 与图像域目标检测相比,LiDAR数据中的扫描点可能是稀疏且不规则的,这取决于与传感器的距离;
  2. 目前的两阶段网络缺乏上下文和全局信息学习,它们只使用提案的局部特征(RoI)来优化结果,其他方框或相邻位置中的特征也可能有利于细化,但这些特征被忽略;
  3. 自动驾驶场景的环境不是静止的。当使用扫描序列时,局部特征学习有更多的局限性;
  4. 变压器解码器使用大的特征映射,查询嵌入很难在训练过程中集中;
  5. DETRstyle编码器-解码器变压器网络有两个主要问题:随着输入大小的增加,计算复杂度呈二次增长,限制了转换器仅将低维特征作为输入,这导致小对象的性能较低;查询嵌入是通过网络学习的,使得训练很难收敛。

整体架构流程

  一种基于中心的变压器网络,称为中心变压器(CenterFormer),用于三维目标检测。具体来说,首先使用标准的基于Voxel的骨干网将点云编码为BEV特征表示。接下来,使用多尺度中心提议网络将特征转换为不同的尺度并预测初始中心位置。所提出的中心的特征被输入Transformer解码器作为query embedding。在每个Transformer 模块中,使用可变形交叉注意力层来有效地聚合来自多尺度特征图的特征。然后输出对象表示回归到其他对象属性以创建最终的对象预测。

    如下图所示,该方法可以对对象级连接和远程特征注意力进行建模。为了进一步探索变压器的能力,还提出了一种多帧设计,通过交叉注意融合来自不同帧的特征。

    上图中,center前与 RCNN 样式检测器的比较。RCNN 在 RoI 中聚合点或网格特征,而居中前可以通过注意力机制学习对象级上下文信息和远程特征。

    上图所示为CenterFormer的整体架构。该网络由四个部分组成:将原始点云编码为 BEV 特征表示的体素特征编码器、多尺度中心提议网络 (CPN)、基于中心的Transformer解码器和用于预测边界框的回归头。

技术细节

Multi-scale Center Proposal Network

  DETR 风格的 Transformer 编码器需要将特征图压缩成小尺寸,以便计算成本可以接受。这使得网络失去了对检测小物体至关重要的细粒度特征,这些小物体通常占据 BEV 地图中小于 1% 的空间。因此,提出了一个多尺度中心提议网络(CPN)来代替 BEV 特征的Transformer编码器。为了准备多尺度特征图,使用特征金字塔网络将 BEV 特征表示处理成3个不同的尺度。在每个尺度结束时,添加一个卷积块注意力模块 (CBAM),以通过通道和空间注意力来增强特征。

  使用最高比例特征图 C 上的中心Head来预测目标中心的 l 通道Heatmap。每个通道包含一个类的Heatmap分数。将前 N 个Heatmap分数的位置作为中心提案。在实验中凭经验使用 N = 500。

Multi-scale Center Transformer Decoder

    在建议的中心位置提取特征作为Transformer解码器的query embedding。使用线性层将中心的位置编码为位置嵌入。传统的 DETR 解码器使用可学习的参数初始化query。因此,在解码器中获得的注意力权重在所有特征中几乎相同。通过使用中心特征作为初始query embedding,可以引导训练专注于包含有意义的目标信息的特征。

    在 vanilla Transformer 解码器中使用相同的自注意力层来学习目标之间的上下文注意力。计算中心query对所有多尺度 BEV 特征的交叉注意力的复杂度为 :

由于 BEV 特征图的分辨率需要相对较大以保持小目标的细粒度特征,因此将所有 BEV 特征用作attending keypoints是不切实际的。或者,将attending keypoints限制在每个尺度的中心位置附近的一个 3×3 小窗口,如上图 所示。这种交叉注意力的复杂度为 O(9SN),比正常实现更有效。由于具有多尺度特征,因此能够在提议的中心周围捕获广泛的特征。多尺度交叉注意力可以表述为:

其中p表示中心建议,这里的Ωj是中心周围的窗口,s是尺度的索引。前馈层也保持不变。

Multi-frame CenterFormer

    多帧通常用于 3D 检测以提高性能。当前基于 CNN 的检测器无法有效融合快速移动物体的特征,而由于注意力机制,transformer 结构更适合融合。为了进一步探索 CenterFormer 的潜力,提出了一种使用交叉注意力transformer的多帧特征融合方法。使用相同的骨干网络单独处理每个帧。前一帧的最后一个 BEV 特征被转换为当前坐标,并与中心头和交叉注意力层中的当前 BEV 特征融合。

小结

  • 引入了一种基于中心的变压器网络进行3D目标检测。
  • 使用中心特征作为初始查询嵌入query embedding来促进Transformer的学习。
  • 提出了一种多尺度交叉注意层来有效地聚合相邻特征,而不会显著增加计算复杂度。
  • 建议使用交叉注意Transformer来融合来自不同帧的对象特征。
  • 方法大大优于所有以前发布的方法,在Waymo开放数据集上设置了新的最先进的性能。

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

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

相关文章

WSL Ubuntu 22.04.2 LTS 安装paddle踩坑日记

使用conda安装paddlepaddle-gpu: conda install paddlepaddle-gpu2.5.1 cudatoolkit11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge 等待安装... 报错处理: (1)(1)PreconditionNotMetError: Cannot load cudnn shared libr…

205、使用消息队列实现 RPC(远程过程调用)模型的 服务器端 和 客户端

目录 ★ RPC模型(远程过程调用通信模型)▲ 完整过程:代码演示总体流程解释:ConstantUtil 常量工具类ConnectionUtil RabbitMQ连接工具类Server 服务端Client 客户端测试结果服务端客户端 完整代码ConstantUtil 常量工具类Connecti…

AMD AFMF不但能用在游戏,也适用于视频

近期AMD发布了AMD Software Adrenalin Edition预览版驱动程序,增加了对平滑移动帧(AMD Fluid Motion Frames,AFMF)功能的支持,也就是AMD的“帧生成”技术,与DLSS 3类似,作为FidelityFX Super Re…

137. 只出现一次的数字 II

题目 题解 方法一 直接用 哈希表出现 3 次则从 哈希表移除&#xff0c;最后剩下的就是结果 class Solution { public int singleNumber(int[] nums) { Map<Integer, Integer> map new HashMap<>(); for (int num : nums) { Integer i…

React添加文件路径时使用@符号代替src目录(非creae-react-app)

在其它项目中看到的可以用符号来代替src目录&#xff0c;那么在自己的react项目中也必须得尝试一下。本人的项目不是通过create-react-app脚手架来创建的&#xff0c;无法使用craco或者的方案来实现。 jsconfig.json配置 用的vscode进行开发&#xff0c;查看项目当中是否存在js…

css 如何让元素内部文本和外部文本 一块显示省略号

实际上还是有这样的需求的 <div class"container"><span>啊啊啊啊啊啊啊啊</span>你好啊撒撒啊撒撒撒撒啊撒撒撒撒撒说</div>还是有这样的需求的哦。 div.container {width: 200px;white-space: nowrap;text-overflow: ellipsis;overflow:…

【AI视野·今日Robot 机器人论文速览 第五十期】Mon, 9 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Mon, 9 Oct 2023 Totally 25 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Learning to Grasp: from Somewhere to Anywhere Authors Fran ois H l non, Johann Huber, Fa z Ben Amar, St phane Doncieux…

【Java 进阶篇】JavaScript DOM 编程:理解文档对象模型

在 web 开发中&#xff0c;DOM&#xff08;文档对象模型&#xff09;是一个重要的概念。DOM 是一种将网页文档表示为树状结构的方式&#xff0c;允许开发者使用 JavaScript 来访问和操作网页的内容。本篇博客将详细介绍 DOM&#xff0c;包括什么是 DOM、如何访问 DOM 元素、如何…

Pulsar-Schema 数据结构

Pulsar-Schema 数据结构 为什么需要使用Schema&#xff1f;怎么使用&#xff1f;生产者端消费者端使用用例Schema定义Schema类型基本类型复合类型KeyValue schemaStruct schemaPulsar提供了以下方法来使用结构模式staticgeneric 自动SchemaSchema验证实施Schema演化Schema版本控…

生物标志物发现中的无偏数据分析策略

目录 0. 导论基本概念 1. 生物标志物发现的注意事项2. 数据预处理2.1 高质量原始数据和缺失值处理2.2 数据过滤2.3 数据归一化 3. 数据质量评估3.1 混杂因素3.2 类别分离3.3 功效分析3.4 批次效应 4. 生物标志物发现4.1 策略4.2 数据分析工具4.3 模型优化策略 0. 导论 组学技术…

【具身智能模型1】PaLM-E: An Embodied Multimodal Language Model

论文标题&#xff1a;PaLM-E: An Embodied Multimodal Language Model 论文作者&#xff1a;Danny Driess, Fei Xia, Mehdi S. M. Sajjadi, Corey Lynch, Aakanksha Chowdhery, Brian Ichter, Ayzaan Wahid, Jonathan Tompson, Quan Vuong, Tianhe Yu, Wenlong Huang, Yevgen C…

10.2手动推导linux中file, cdev, inode之间的关系

是时候可以手动推导一下linux里面基类父类和子类的关系了 代码放最后把 简单说明版 详细流程 第一步注册驱动 cdev结构体能看做是一个基类,那么链表里面都是字符设备驱动的cdev连载一起,啥串口,lcd的,通过cdev->list_head连接 那cdev结构体里有主次设备号 第一步 使用r…

VS2022新建项目时没有ASP.NET Web应用程序 (.NET Framework)

问题&#xff1a;如图&#xff0c;VS2022新建项目时没有“ASP.NET Web应用程序 &#xff08;.NET Framework&#xff09;”的选项解决方法&#xff1a;点击跳转至修改安装选项界面选择安装该项即可&#xff1a;

SpringMVC简介

SpringMVC概述 SpringMVC是一个基于Spring开发的MVC轻量级框架&#xff0c;Spring3.0后发布的组件&#xff0c;SpringMVC可以和Spring无缝整合&#xff0c;使用DispatcherServlet作为前端控制器&#xff0c;且内部提供了处理映射器、处理适配器、视图解析器等组件&#xff0c;…

C# 往多线程传递安全参数的方法

在C#构造一个线程时&#xff0c;要向其传递一个函数&#xff0c;这个函数可以试简单的无参函数&#xff0c;也可以是参数为Object类型的函数&#xff0c;但是由于参数类型为Object&#xff0c;因此编译器无法实行类型检查&#xff0c;看下面的例子&#xff1a; class Program{…

C++学习——C++函数的编译、成员函数的调用、this指针详解

以下内容源于C语言中文网的学习与整理&#xff0c;非原创&#xff0c;如有侵权请告知删除。 从博文的分析中可以看出&#xff0c;对象的内存中只保留了成员变量&#xff0c;除此之外没有任何其他信息&#xff0c;程序运行时不知道 stu 的类型为 Student&#xff0c;也不知道它…

求直角三角形第三点的坐标

文章目录 求直角三角形第三点的坐标1. 原理2. 数学公式3. 推导过程 求直角三角形第三点的坐标 1. 原理 已知内容有&#xff1a; P1、P2 两点的坐标&#xff1b; dis1 为 P1与P2两点之间的距离&#xff1b; dis2 为 P2与P3两点之间的距离&#xff1b; 求解&#xff1a; …

算法通关村第一关-链表青铜挑战笔记

欢迎来到 : 第一关青铜关 java如何创建链表链表怎么增删改查 我们先了解链表 单链表的概念 我们从简单的创建和增删改查开始. 链表的概念 线性表分为顺序表(数组组成)和链表(节点组成) . 链表又分: 单向 双向有哨兵节点 无哨兵节点循环 不循环 链表是一种物理存储单…

计算机毕业设计 高校实习信息发布网站的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

Git 安装和配置教程:Windows / Mac / Linux 三平台详细图文教程,带你一次性搞定 Git 环境

Git是一款免费、开源的分布式版本控制系统&#xff0c;广泛应用于软件开发领域。随着开源和云计算的发展&#xff0c;Git已经成为了开发者必备的工具之一。本文将为大家介绍Git在Windows、Mac和Linux三个平台上的安装和配置方法&#xff0c;带你一次性搞定Git环境 Windows平台 …