[Paper] CenterNet: Objects as Points

Abstract: This blog post offers an overview of the 2019 paper “Objects as Points”, proposing a keypoint-based approach to object detection by modeling objects as bounding box centers with regressed attributes. It explains the principles of heatmap peaks for centers and direct regression for size/offset; the fully convolutional structure with multi-head outputs; implementation details like focal loss variants and backbones such as Hourglass/DLA; and experimental highlights on COCO, including superior speed-accuracy trade-offs and extensions to 3D detection and pose estimation.

这篇论文让检测可以不靠锚框滑动分类,而是把物体当成中心点来估计。论文的方法端到端,避开NMS那种后处理,还能扩展到3D和姿态。现在检测领域到处是keypoint-based方法,这篇是先驱。

背景和动机:传统检测的浪费和痛点

传统检测像Faster R-CNN或YOLO,都用轴对齐框表示物体,然后枚举一堆潜在位置(锚框或提案),分类每个是物体还是背景。这些方法都比较低效,锚框多达上万,计算冗余,还需NMS去重(IoU计算,非可微)。论文想简化:物体就一个中心点,其他属性(如大小、3D)从点回归。像关键点估计(keypoint detection),全卷积网生成热图,峰值是中心。端到端,推理单次前向,无后处理。快准,还泛化到3D检测和姿态。

核心原理:中心点 + 属性回归

CenterNet把检测当成关键点问题。物体用框中心点表示,热图峰检测中心,特征从峰回归属性。

  • 热图估计:全卷积网输出热图Y,每类一个通道。高斯核标注真值中心,焦点损失(focal loss变体)训练。峰是物体。
  • 属性回归:从中心特征回归大小(w,h)、偏移(offset,补下采样误差)。损失L1。扩展:3D加深度、方向、尺寸;姿态加偏移向量到关节。

原理上,避枚举,复杂度低(热图峰少)。端到端可微,无先验锚框。

模型结构:全卷积骨干 + 多头输出

结构简单:骨干网 + 上采样头。输入图像,输出热图 + 属性图。

  • 骨干:Hourglass、DLA或ResNet,提取特征。
  • :卷积生成热图Y ($H/4 × W/4 × C$类),峰提取中心。回归头:大小图 (2通道)、偏移图 (2通道)。
  • 推理:热图找峰(局部最大),取top-100,回归属性得框。无NMS。

变体:3D加深度/方向头;姿态加关节偏移头。整体像CornerNet,但单点简洁。

实现细节:训练和工程小窍门

实现用PyTorch,骨干预训ImageNet。输入512x512,下采样4x。训练:焦点损失热图,L1回归。超参:α=2, β=4焦点;λ_size=0.1, λ_off=1。aug:翻转、缩放。推理:单尺度或多尺度测试。扩展任务:3D用KITTI,姿态COCO keypoints,改头回归相应属性。

细节上,峰提取用3×3 max pool。Hourglass慢但准,DLA快。

实验部分

第5节在COCO上测,train 118k,val 5k。DLA-34单尺度AP 37.4% @52 FPS;Hourglass-104多尺度45.1% @1.4 FPS。比YOLOv3、RetinaNet快准。消融:分辨率高AP升但慢;L1优于Smooth L1;长训(230epoch)好。3D KITTI:AP 27.0% moderate。姿态COCO:AP 64.0%,实时。PascalVOC:AP 80.5%。这些显示CenterNet权衡佳,泛化强。

一点感想

CenterNet的框架是点估计 + 回归,思想简化检测,端到端优雅。影响了YOLOv5等,但原作的纯净值得回味。