CenterNet Objects as Points

Task: Object Detection
Method: anchor-free, keypoint
Venue: CVPR
Year: 2019
Paper: https://arxiv.org/abs/1904.07850
Code: https://github.com/xingyizhou/CenterNet

目录
  1. 问题描述
  2. 核心思想
  3. 方法概述
  4. 网络结构
  5. 创新点
  6. 实验结论
  7. 局限性与失效场景
  8. 复杂度分析
  9. 工程应用与多任务扩展
  10. 相关工作与对比
  11. 研究启示
  12. 复现注意事项
  13. 改进与优化方向
  14. 论文贡献与影响

问题描述

目标检测的发展中,两大主流方案各有局限:

两阶段方法(Faster R-CNN、Mask R-CNN):

  • 穷举大量潜在物体位置
  • 对每个候选框重新计算图像特征
  • 需要额外后处理(NMS),难以端到端训练
  • 低效且复杂

单阶段方法(SSD、YOLO、RetinaNet):

  • 设计复杂的 anchor 排列,在图像上滑动
  • 需要人工设计 anchor 尺度和比例
  • 正负样本极度不平衡(大量背景anchor)
  • 仍然需要 NMS 后处理(不可微分)
  • 无法端到端训练

核心痛点:通过 bounding box 将目标检测”降维”为分类任务,但这种”降维”引入了额外的设计复杂度和冗余计算。

核心思想

将目标检测彻底重新定义为 关键点检测问题

$$\text{Object Detection} = \text{Center Point Detection} + \text{Size Regression}$$

不再枚举候选框,而是直接预测物体中心点的位置,用单个点表示目标。中心点处的 heatmap 峰值对应物体位置,中心点特征预测物体宽高。

方法概述

基本流程:输入图像 → Backbone(stride=4)→ 3 个预测头 → 峰值检测 → 目标框

三个预测头

预测头 输出尺寸 功能
Heatmap $H/4 \times W/4 \times C$ 检测目标中心点(每类一通道)
Size $H/4 \times W/4 \times 2$ 预测宽高
Offset $H/4 \times W/4 \times 2$ 修正量化误差(±0.5像素)

关键设计

  • Size/Offset 跨类别共享参数(减少参数量)
  • Heatmap 用高斯核标注:$Y_{xyc} = \exp\left(-\frac{(x-c_x)^2 + (y-c_y)^2}{2\sigma^2}\right)$,多物体重叠取最大值
  • Offset 补偿 stride=4 引入的 0-3 像素偏差,提升 1.2% AP

网络结构

                          输入图像

[H, W, 3]

┌───────────────────────┐
│ Backbone(stride=4) │
│ ResNet-18/DLA-34/ │
│ Hourglass-104 │
└───────────────────────┘

[H/4, W/4, C]

┌─────────────────────┼─────────────────────┐
│ │ │
↓ ↓ ↓
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Heatmap │ │ Size Head │ │ Offset Head │
│ Head │ │ │ │ │
│ Conv 1×1 │ │ Conv 1×1 │ │ Conv 1×1 │
└─────────────┘ └─────────────┘ └─────────────┘
↓ ↓ ↓
[H/4,W/4,C] [H/4,W/4,2] [H/4,W/4,2]
↓ ↓ ↓
└─────────────────────┼─────────────────────┘

┌────────────────────────────┐
│ Peak Detection + Decoding │
│ - Local max pooling │
│ - Top-K keep 100 │
│ - offset correction │
│ - size regression │
└────────────────────────────┘

输出检测框
[N×(cx,cy,w,h,conf)]

损失函数

$$L = L_{heatmap} + 0.1 L_{size} + L_{offset}$$

其中 heatmap 使用 focal loss,size 和 offset 使用 L1 loss。

创新点

  1. Object = Point:用单个中心点表示目标,消除 anchor、proposal、NMS
  2. 为什么中心点最优:相比 CornerNet(需匹配角点)和 ExtremeNet(需匹配 5 个点),中心点检测无需匹配过程,且在 keypoint-based 方案中性能最高(45.1% vs 40.5%/40.2%)
  3. 完全 Anchor-free:无先验设计,无样本不平衡问题
  4. 参数共享:Size/Offset 跨类别共享,减少参数和计算量
  5. 高斯软监督:Heatmap 用高斯核而非硬标签,对噪声更鲁棒

实验结论

Datasets: MS COCO, KITTI (3D), nuScenes

实验结果:

  • MS COCO: CenterNet (Hourglass-104) 达到 45.1% AP(2019 年当时的最高精度之一)
  • 速度: ResNet-18 backbone 可达 142 FPS,DLA-34 达到 52 FPS
  • 多任务: 可同时完成检测、3D检测、姿态估计

消融研究

  • Offset head 对精度有明显提升(+1.2 AP)
  • Heatmap Gaussian kernel 的 sigma 对性能影响较大

性能瓶颈分析

CenterNet 的性能瓶颈几乎 100% 来自中心点检测部分。一旦中心点、尺寸、offset 都替换为 GT,检测任务几乎是”零难度”的,这说明 Size 和 offset 预测已经足够准确,提升空间在于改进 heatmap 预测。

局限性与失效场景

中心点碰撞问题:当两个不同的物体中心点完全重合时,CenterNet 无法同时检测两者。在 COCO 数据集上这种失效场景仅占 ~0.1%,远低于 Faster R-CNN (~2%) 和 Anchor-based 方法 (~20%) 的失效率。

其他限制

  • 密集/遮挡目标:多个紧密相邻的物体容易混淆,高度遮挡时性能下降明显
  • 极端尺度目标:极小目标(<50px)需要高分辨率输入,极端长宽比的边界框预测不准确
  • 3D 检测困难:深度和方向估计难以直接回归,需要特殊的数学变换处理

复杂度分析

参数量(以 COCO 80 类为例):

  • ResNet-18: ~13.6M 参数,~12 GFLOPs
  • DLA-34: ~15.3M 参数,~14 GFLOPs
  • Hourglass-104: ~50M 参数,~40 GFLOPs

内存占用

  • 训练(batch=16):6GB(ResNet-18),12GB(Hourglass)
  • 推理:<1GB(单张图片)

工程应用与多任务扩展

效率对比(COCO 数据集):

方法 AP FPS 参数量 后处理
Faster R-CNN 36.5 5 137M 两阶段,需要NMS
RetinaNet 40.8 15 88M 一阶段,需要NMS
CenterNet-Res18 28.1 142 13.6M 无需NMS
CenterNet-DLA34 37.4 52 15.3M 无需NMS
CenterNet-Hourglass 45.1 7.8 50M 无需NMS

3D 目标检测扩展

CenterNet 可直接扩展到 3D 检测。新增预测头:深度估计(使用变换 $d = \frac{1}{\sigma(\hat{d})} - 1$ 强制正值)、3D 尺寸 $(h, w, l)$、方向/旋转(使用 sin/cos 对处理周期性)。注意 3D 检测分支不应用数据增强以保持度量真实性。

多人姿态估计扩展

在 2D 检测基础上为每个人体边界框回归 17 个关键点(关节),性能与主流方法相当。

工业部署

支持 TensorRT/ONNX 格式转换,添加新任务只需增加预测头。应用场景包括监控系统、机器人感知、自动驾驶感知模块、移动端检测。

相关工作与对比

Keypoint-based 检测方法对比

方法 关键点数 匹配复杂度 精度 速度
CornerNet 2(左上/右下角) 需要配对,组合爆炸 40.5% AP 中等
ExtremeNet 5(上下左右+中心) 需要组合 5 点 40.2% AP 中等
CenterNet 1(中心点) 无需匹配 45.1% AP 快速

为何中心点方案性能最优

相比角点和极值点,中心点具有两个根本优势:

  1. 空间位置稳定:中心点相对物体的几何位置最稳定,在物体旋转、形变时变化最小
  2. 无组合问题:单个点直接代表物体,避免了多点配对的组合爆炸和匹配错误

其他结构优势:

  • 只需 3 个预测头(heatmap、size、offset),参数和计算量少
  • 推理无需后处理匹配,直接峰值即目标

Anchor-free 方法的发展脉络

2018-2019 年间,目标检测开始探索 anchor-free 范式,出现了多条并行路线:

目标检测方法演进

├─ 两阶段(Faster R-CNN 2015)
│ └─ 穷举候选,需要 NMS 后处理

├─ 一阶段 Anchor-based(2016-2019)
│ ├─ SSD(2016)、YOLOv2(2016)
│ ├─ RetinaNet(2017)
│ └─ 限制:需要手工设计 anchor,样本不平衡

└─ 一阶段 Anchor-free(2018-2019)
├─ Keypoint-based 路线
│ ├─ CornerNet (ECCV 2018):预测 2 个角点
│ ├─ ExtremeNet (CVPR 2019):预测 5 个极值点
│ └─ CenterNet (CVPR 2019):预测 1 个中心点

└─ Dense-based 路线
├─ FCOS (ICCV 2019):密集预测每像素
└─ FoveaBox (CVPR 2019):改进的密集预测

CenterNet 采用了 keypoint-based 中最简化的表示(单点),在该方向上达到了最高的精度(45.1% AP)。同期 FCOS 代表了 dense-based 方案,两者共同标志了 anchor-free 时代的开始。

与 Anchor-based 方法的核心差异

传统 Anchor-based 方法的设计逻辑:

  • 预定义多个 anchor 框(尺度、宽高比)
  • 对每个 anchor 分类(是否含物体)和回归(框偏移)
  • 后处理 NMS 去重
  • 问题:anchor 设计复杂,样本不平衡严重,NMS 不可微

CenterNet 的设计逻辑:

  • 直接预测物体中心位置(heatmap 峰值)
  • 在中心点处回归尺寸和偏移
  • 无需 NMS(本质上解决了样本不平衡问题)
  • 优势:设计简洁,端到端可训练,性能反而更优

研究启示

  1. 问题重新定义的力量:CenterNet 通过中心点重新定义检测任务,消除了复杂度反而提升了性能。启示:有时”简化问题定义”比”增加网络复杂度”更有效

  2. 软监督信号的优势:Heatmap 中高斯核软标签对标注噪声更鲁棒,隐含编码物体尺寸信息

  3. 精细的参数共享策略:Size/Offset 跨类别共享,不增加参数但保持精度

  4. 深入的性能分析:错误分析表明系统 100% 的失误来自中心点检测。启示:找到”木桶短板”,精准突破比盲目改进更重要

  5. 范式转变的历史意义:CenterNet 证明了完全无先验的方法可以超越 anchor-based,之后 FCOS、YOLOX 等相继出现,anchor-free 成为新主流

复现注意事项

Backbone 初始化:下采样层用 ImageNet 预训练,上采样层随机初始化。原因是下采样层学到”语义”特征(ImageNet 教过),上采样层需要学”几何/定位”(ImageNet 没教过)。

Heatmap 生成:高斯标准差 sigma 通常设为 2,范围 1-3 最优。必须可视化 GT heatmap,验证后再开始训练。

Loss 权重配置:heatmap 权重 = 1.0,size 权重 = 0.1,offset 权重 = 1.0。Heatmap 使用 focal loss 处理类别不平衡。

峰值检测:采用 3×3 max pooling 找局部最大值,只保留值 > 阈值的峰值,最多保留 100 个。

训练配置:Batch size 设为 29,学习率多步衰减(epoch 90, 120)。输入分辨率从 256×256 增加到 512×512 可提升约 8% AP。

3D 检测分支:3D 检测分支不应用数据增强(裁剪/缩放会改变 3D 度量的真实性),而 2D 检测分支仍正常使用数据增强。

推理策略:翻转测试时平均网络输出后再解码(不是平均最后的 bbox),多尺度测试用 NMS 合并不同尺度的结果。

改进与优化方向

精度提升方向

  • 多尺度融合:参考 FPN 设计,在多个尺度同时预测中心点,预期提升 +1~2% AP
  • Attention 增强:使用 CBAM 或 Self-Attention 强化关键特征表达,预期提升 +0.5~1.5% AP
  • Deformable 卷积:增强对复杂形状和遮挡的适应性,预期提升 +0.5~1% AP
  • 动态 Gaussian:根据物体尺寸动态调整 heatmap 的 sigma,预期提升 +0.3~0.8% AP

轻量化方向(速度优化):

  • 去除 Offset 头:牺牲 -1.5% AP,换取 +10% FPS,适合极致速度优先的场景
  • 轻量 Backbone:换用 MobileNet/EfficientNet-Lite 等轻量网络,精度损失 -5~10% AP,速度提升 2-3 倍,适合移动端/边缘设备
  • 单尺度训练:固定输入分辨率,简化数据处理流程,精度损失 -1~2% AP,适合特定尺度物体的检测任务

针对特定场景的优化

由于 CenterNet 的性能瓶颈在于中心点检测,可针对特定应用优化:

  • 行人检测:人体长宽比固定(0.4~0.5),可调整 heatmap sigma 以适应固定的几何约束
  • 车辆检测:车辆长宽比差异大,多尺度特征融合效果显著
  • 密集场景(如人群):中心点碰撞问题突出,可考虑偏移中心点定义或融合分割辅助信息

论文贡献与影响

技术贡献

  • 证明了用单一关键点(中心点)可以高效表示目标
  • 消除了 anchor、proposal、NMS 等复杂模块,反而提升性能
  • 支持多任务扩展(2D 检测、3D 检测、姿态估计)共用同一 backbone

性能指标(COCO 数据集):ResNet-18(28.1% AP, 142 FPS)、DLA-34(37.4% AP, 52 FPS)、Hourglass-104(45.1% AP, 7.8 FPS),精度范围覆盖轻量化到最优,适用不同应用需求。

影响力

  • 官方代码开源,已被 MMDetection 等主流框架集成
  • 工业应用广泛:监控、自动驾驶、机器人等领域
  • 开启 anchor-free 检测新方向(2019 年同期 FCOS 并行发布)
  • 在 anchor-based 到 anchor-free 的范式转变中扮演关键角色