论文阅读: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
- 与图像域目标检测相比,LiDAR数据中的扫描点可能是稀疏且不规则的,这取决于与传感器的距离;
- 目前的两阶段网络缺乏上下文和全局信息学习,它们只使用提案的局部特征(RoI)来优化结果,其他方框或相邻位置中的特征也可能有利于细化,但这些特征被忽略;
- 自动驾驶场景的环境不是静止的。当使用扫描序列时,局部特征学习有更多的局限性;
- 变压器解码器使用大的特征映射,查询嵌入很难在训练过程中集中;
- 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 小窗口,如上图 所示。这种交叉注意力的复杂度为 ,比正常实现更有效。由于具有多尺度特征,因此能够在提议的中心周围捕获广泛的特征。多尺度交叉注意力可以表述为:

其中p表示中心建议,这里的Ωj是中心周围的窗口,s是尺度的索引。前馈层也保持不变。
Multi-frame CenterFormer
多帧通常用于 3D 检测以提高性能。当前基于 CNN 的检测器无法有效融合快速移动物体的特征,而由于注意力机制,transformer 结构更适合融合。为了进一步探索 CenterFormer 的潜力,提出了一种使用交叉注意力transformer的多帧特征融合方法。使用相同的骨干网络单独处理每个帧。前一帧的最后一个 BEV 特征被转换为当前坐标,并与中心头和交叉注意力层中的当前 BEV 特征融合。
小结
- 引入了一种基于中心的变压器网络进行3D目标检测。
- 使用中心特征作为初始查询嵌入query embedding来促进Transformer的学习。
- 提出了一种多尺度交叉注意层来有效地聚合相邻特征,而不会显著增加计算复杂度。
- 建议使用交叉注意Transformer来融合来自不同帧的对象特征。
- 方法大大优于所有以前发布的方法,在Waymo开放数据集上设置了新的最先进的性能。
相关文章:
论文阅读: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 (arx…...
Arduino驱动BNO055九轴绝对定向传感器(惯性测量传感器篇)
目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序 BNO055是实现智能9轴绝对定向的新型传感器IC,它将整个传感器系统级封装在一起,集成了三轴14位加速度计,三轴16位陀螺仪,三轴地磁传感器和一个自带算法处理的32位微控制器。...
MQTT测试工具及使用教程
一步一步来:MQTT服务器搭建、MQTT客户端使用-CSDN博客 MQTT X 使用指南_mqttx使用教程-CSDN博客...
yolov7改进优化之蒸馏(一)
最近比较忙,有一段时间没更新了,最近yolov7用的比较多,总结一下。上一篇yolov5及yolov7实战之剪枝_CodingInCV的博客-CSDN博客 我们讲了通过剪枝来裁剪我们的模型,达到在精度损失不大的情况下,提高模型速度的目的。上一…...
视频美颜SDK,提升企业视频通话质量与形象
在今天的数字时代,视频通话已经成为企业与客户、员工之间不可或缺的沟通方式。然而,由于网络环境、设备性能等因素的影响,视频通话中的画面质量往往难以达到预期效果。为了提升视频通话的质量与形象,美摄美颜SDK应运而生ÿ…...
webmin远程命令执行漏洞
文章目录 漏洞编号:漏洞描述:影响版本:利用方法(利用案例):安装环境漏洞复现 附带文件:加固建议:参考信息:漏洞分类: Webmin 远程命令执行漏洞(CV…...
docker离线安装和使用
通过修改daemon配置文件/etc/docker/daemon.json来使用加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://ullx9uta.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo syste…...
解决 MyBatis 一对多查询中,出现每组元素只有一个,总组数与元素数总数相等的问题
文章目录 问题简述场景描述问题描述问题原因解决办法 问题简述 笔者在使用 MyBatis 进行一对多查询的时候遇到一个奇怪的问题。对于笔者的一对多的查询结果,出现了这样的一个现象:原来每个组里有多个元素,查询目标是查询所查的组,…...
这应该是关于回归模型最全的总结了(附原理+代码)
本文将继续修炼回归模型算法,并总结了一些常用的除线性回归模型之外的模型,其中包括一些单模型及集成学习器。 保序回归、多项式回归、多输出回归、多输出K近邻回归、决策树回归、多输出决策树回归、AdaBoost回归、梯度提升决策树回归、人工神经网络、随…...
基于闪电连接过程优化的BP神经网络(分类应用) - 附代码
基于闪电连接过程优化的BP神经网络(分类应用) - 附代码 文章目录 基于闪电连接过程优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.闪电连接过程优化BP神经网络3.1 BP神经网络参数设置3.2 闪电连接过程算…...
Linux性能优化--性能工具:网络
7.0 概述 本章介绍一些在Linux上可用的网络性能工具。我们主要关注分析单个设备/系统网络流量的工具,而非全网管理工具。虽然在完全隔离的情况下评估网络性能通常是无意义的(节点不会与自己通信),但是,调查单个系统在网络上的行为对确定本地配置和应用程…...
【Linux】线程互斥与同步
文章目录 一.Linux线程互斥1.进程线程间的互斥相关背景概念2互斥量mutex3.互斥量的接口4.互斥量实现原理探究 二.可重入VS线程安全1.概念2.常见的线程不安全的情况3.常见的线程安全的情况4.常见的不可重入的情况5.常见的可重入的情况6.可重入与线程安全联系7.可重入与线程安全区…...
敏捷开发中,Sprint回顾会的目的
Sprint回顾会的主要目的是促进Scrum团队的学习和持续改进。在每个Sprint结束后,团队聚集在一起进行回顾,以达到以下目标: 识别问题: 回顾会允许团队识别在Sprint(迭代)期间遇到的问题、挑战和障碍。这有助于…...
排序【七大排序】
文章目录 1. 排序的概念及引用1.1 排序的概念1.2 常见的排序算法 2. 常见排序算法的实现2.1 插入排序2.1.1基本思想:2.1.2 直接插入排序2.1.3 希尔排序( 缩小增量排序 ) 2.2 选择排序2.2.1基本思想:2.2.2 直接选择排序:2.2.3 堆排序 2.3 交换排序2.3.1冒…...
人大与加拿大女王大学金融硕士项目——立即行动,才是缓解焦虑的解药
!在这个经济飞速的发展的时代,我国焦虑症的患病率为7%,焦虑已经超越个体范畴,成为整个社会与时代的课题。焦虑,往往源于我们想要达到的,与自己拥有的所产生的差距。任何事情,开始做远比准备做更会给人带来成…...
老卫带你学---leetcode刷题(46. 全排列)
46. 全排列 问题: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1:输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2&#x…...
6.6 图的应用
思维导图: 6.6.1 最小生成树 ### 6.6 图的应用 #### 主旨:图的概念可应用于现实生活中的许多问题,如网络构建、路径查询、任务排序等。 --- #### 6.6.1 最小生成树 **概念**:要在n个城市中建立通信联络网,则最少需…...
100问GPT4与大语言模型的关系以及LLMs的重要性
你现在是一个AI专家,语言学家和教师,你目标是让我理解语言模型的概念,理解ChatGPT 跟语言模型之间的关系。你的工作是以一种易于理解的方式解释这些概念。这可能包括提供 例子,提出问题或将复杂的想法分解成更容易理解的小块。现在…...
Linux:mongodb数据逻辑备份与恢复(3.4.5版本)
我在数据库aaa的里创建了一个名为tarro的集合,其中有三条数据 备份语法 mongodump –h server_ip –d database_name –o dbdirectory 恢复语法 mongorestore -d database_name --dirdbdirectory 备份 现在我要将aaa.tarro进行备份 mongodump --host 192.168.254…...
凉鞋的 Godot 笔记 109. 专题一 小结
109. 专题一 小结 在这一篇,我们来对第一个专题做一个小的总结。 到目前为止,大家应该能够感受到此教程的基调。 内容的难度非常简单,接近于零基础的程度,不过通过这些零基础内容所介绍的通识内容其实是笔者好多年的时间一点点…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
