centerPoint
PDF: 《Center-based 3D Object Detection and Tracking》
Code: https://github.com/tianweiy/CenterPoint
一、大体内容
anchor-based的3D目标检测算法都需要基于预定义的anchor去回归目标的位置,但是3D物体通常具有各种各样的尺寸和朝向,为了检测精度往往需要很多的anchor用于模型的训练和推理,这不仅增加了大量的计算负担,而且基于anchor的方法也不能很精确地回归出3D目标的尺寸和朝向,如下图所示在水平方向还行,但倾斜了效果就不太行,而Center-based由于点绕自身旋转具有不变性,减少了检测器的搜索空间的同时还简化了下游操作(如:目标追踪),基于此本文提出了两阶段Center-based检测方法CenterPoint。
CenterPoint第一阶段首先使用3D骨干网络(如voxel或pillar的形式)提取激光雷达点云的BEV特征,然后用2D检测头找到物体中心并使用中心特征回归出完整的3D边界框(中心,长宽高,航向角,速度)。第二阶段是将第一阶段的预测框点特征传递到MLP,去进一步优化置信度score和和3D box信息。
二、贡献点
其实这一篇没有太多的创新点,主要是将CenterNet的思路用到了3D目标检测上。不过还是罗列下:
- 基于Center-based方法由于点没有内在的方向,大大减少了目标检测器的搜索空间。
- 简化了下游任务。如跟踪,因为物体是点,点的移动轨迹就是空间和时间中的路径,可以方便预测目标在连续帧和关联目标之间的相对偏移(速度)。
- 基于点能够设计一个高效的两阶段优化模块,其速度远快于以往的方法,在Waymo Open和nuScenes数据集上比Anchor-based方法要增加3-4个mAP,第两阶段优化进一步得到的2 mAP提升,且计算开销很小(< 10%)。
三、细节
3.1 CenterNet回顾
《Objects as points》
CenterNet结构优雅简单,直接检测目标的中心点和大小,是真anchor-free模型,图片作为输入,输出包含了的热力图,每张热力图对应一个类别,然后还有的特征图用于存放距离中心点的宽度和高度,以便回归出目标的大小。
3.2 中心热力图分支(Center heatmap head)
同CenterNet,输出张热力图,每张热力图对应一个类别,热力图中亮的点作为中心点(多个物体就会有多个亮点,可以通过阈值控制)。
但考虑到在地图视图中,车辆占据的区域很小(图像中一些大物体可能占据位置),为了解决这个问题,作者设置了动态的高斯函数的半径,通过扩大每个目标中心呈现的高斯峰值来增加对目标热图的正向监督,其计算方式如下:
3.3 回归分支(Regression head)
除了物体的中心点,还需要3D尺寸和朝向等信息才能得到一个完整的3D边界框。CenterPoint从中心特征中去进一步回归下面的几个属性:
- 位置修正值,用于减少由于体素化和骨干网络中的stride引起的量化误差。
- 离地面的高度,用于帮助在3D空间中定位目标和添加因为映射到鸟瞰图而丢失的高度信息。
- 3D尺寸,目标的长宽高信息,回归时用对数函数表示,因为实际的物体可能会有各种大小的尺寸。
- 朝向角,用朝向角的正弦和余弦值作为连续的回归目标。
3.4 速度与目标追踪
为了对目标进行跟踪,CenterPoint添加了一个回归分支用于预测每个检测到的物体的二维速度。
与其他属性不同的是,速度估计需要前一帧和当前帧的特征图作为输入,目的是预测目标在当前帧与在前一帧中的位置偏移。
在推理阶段,把目标在当前帧中的中心点通过负速度估计的方法映射回前一帧中,然后用最近距离匹配的方式将它们与已跟踪的目标进行匹配。
这里与SORT目标跟踪算法一样,如果一个目标连续3帧没有匹配成功就将其删除。下图是跟踪算法的伪代码
3.5 第二阶段优化
一阶段中基于中心点的方法去检测目标并回归得到目标的属性信息,虽然这种检测头非常简单有效,但是由于目标所有的属性信息都是从目标中心的特征推断出来的,因此可能因缺少足够的特征信息对目标进行精准的定位,因此作者又设计了一个轻量级的点特征提取网络对目标的属性进行二阶段的优化。
在这个阶段中,需要从第一个阶段预测出的边界框每个面的3D中心去提取点特征。考虑到边界框的中心、顶部和底部的中心在鸟瞰图中会被投影到同一个点,因此作者仅考虑边界框的中心和四个侧面的中心。
首先从骨干网络输出的特征图中通过双线性插值来提取每个点的特征,然后将提取的特征堆叠起来送入一个MLP网络中用来对前一阶段预测出的边界框进行优化。
这个阶段还会预测一个置信度分数,训练过程中的计算公式如下:
其中表示第个候选框与ground-truth之间的3D IoU值。损失函数采用二值交叉熵损失,公式如下:
其中表示预测的置信度分数。在推理过程中,置信度分数 的计算方式如下:
其中和分别表示第一阶段和第二阶段对目标预测出的置信度分数。
四、效果
4.1 目标检测
- Waymo数据集
- nuScenes数据集
4.2 目标追踪
-
Waymo数据集
-
nuScenes数据集
4.3 不同方法效果对比
4.4 消融实验
- 对比Anchor-based和Center-based方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!