论文地址:https://arxiv.org/pdf/1904.07850
论文代码:https://github.com/xingyizhou/CenterNet
这篇论文的标题是《Objects as Points》,作者是Xingyi Zhou、Dequan Wang和Philipp Krähenbühl,来自UT Austin和UC Berkeley。论文提出了一种新的对象检测方法,名为CenterNet,它将对象建模为一个点——其边界框的中心点。
引言
- 当前的对象检测器通过列举潜在对象位置的几乎穷尽列表并进行分类来识别图像中的对象,这种方法效率低下且需要额外的后处理。
- CenterNet通过将对象表示为边界框中心的单一点来简化这一过程,其他属性如对象大小、尺寸、3D范围、方向和姿态直接从中心位置的图像特征中回归得到。
为什么要提出 CenterNet
- anchor-based 的目标检测算法难以端到端训练:一个目标会对应多个anchor box,需要使用后处理 NMS 抑制掉重复的 box,这种后处理是难以微分的, 因而大多数检测器不是端到端的训练。
- 基于滑动窗口的目标检测算法,需要计算所有可能的目标位置和尺寸,运算冗余。
CenterNet算法简介
- CenterNet是一个基于Anchor-free的目标检测算法,与单阶段目标检测算法yolov3相比,该算法在保证速度的前提下,精度提升了4个百分点。与其它的单阶段或者双阶段目标检测算法相比,该算法具有以下的优势:
- 该算法去除低效复杂的Anchors操作,进一步提升了检测算法性能;
- 该算法直接在heatmap图上面执行了过滤操作,去除了耗时的NMS后处理操作,进一步提升了整个算法的运行速度;
- 该算法不仅可以应用到2D目标检测中,经过简单的改变它还可以应用3D目标检测与人体关键点检测等其它的任务中,即具有很好的通用性。
CenterNet 改进
- 每个目标使用 bbox中心点表示,目标尺寸、方位、姿态等其他属性,从位于中心位置的图像特征回归得到。
- 将图片输入到全卷积网络中生成heatmap,heatmap的峰值位置对应着物体的中心。
- 在推断时,只要做一次前向传播,无需NMS后处理。
Objects as Points
- 论文介绍了如何将对象检测问题转化为关键点估计问题,通过预测对象的中心点和大小来实现。
- 在推理时,通过提取热图中的峰值来检测所有响应,这些峰值的值大于或等于其8个连接的邻居,并保留前100个峰值。
3D检测
- 目标:估计每个对象的三维边界框。
- 额外属性:深度、3D尺寸、方向。
- 深度估计:
- 采用sigmoid函数的逆变换来计算深度。
- 使用单独的输出通道,并通过L1损失在原始深度域中训练。
- 3D尺寸估计:
- 直接回归到对象的绝对尺寸(以米为单位)。
- 使用单独的输出头和L1损失函数。
- 方向估计:
- 方向用8个标量编码,分为两个bin,每个bin包含角度的正弦和余弦值。
- 使用softmax分类和L1损失进行训练。
- 预测的方向从8个标量编码中解码得到。
人姿态估计
- 目标:估计图像中每个人的2D关节位置。
- 关键点参数化:
- 将姿态视为中心点的偏移量。
- 直接回归到关节偏移量,并使用L1损失进行训练。
- 不可见关键点处理:
- 通过掩码损失忽略不可见的关键点。
- 关键点热图估计:
- 估计人体关节热图,使用focal损失和局部像素偏移进行训练。
- 关键点检测改进:
- 将初始预测的关键点匹配到最近的检测关键点。
- 使用中心偏移量作为分组线索,将单个关键点检测分配给人实例。
- 对于每个关节类型,提取热图中的关键点位置,并分配回归的位置给最近的关键点。
实现细节
- 实验架构:研究了四种不同的网络架构,包括ResNet-18、ResNet101、DLA-34和Hourglass-104,并对部分架构进行了改进,如添加可变形卷积层。
- Hourglass网络:
- 使用堆叠的Hourglass网络,该网络通过对称的5层向下和向上的卷积网络以及跳跃连接来降低输入尺寸。
- 通常能提供最佳的关节点估计性能。
- ResNet网络改进:
- 在标准的残差网络上增加了三个上采样网络,以实现更高分辨率的输出。
- 修改了上采样层的通道数,并在每个上采样之前增加了可变形卷积层。
- DLA网络改进:
- 使用深度层聚合(DLA)网络,该网络具有层次跳跃连接。
- 在DLA的跳跃连接中增加了来自较低层的可变形卷积。
- 在每个输出头之前增加了一个256通道的3x3卷积层。
- 训练过程:
- 输入分辨率为512×512,输出分辨率为128×128。
- 使用随机翻转、随机缩放、裁剪和颜色抖动作为数据增强。
- 使用Adam优化器来优化整体目标。
- 对于3D估计分支,不使用数据增强,因为裁剪或缩放会改变3D测量值。
- 不同网络的训练细节:
- ResNet和DLA使用8个GPU进行训练,批大小为128,学习率为5e-4,训练140个周期。
- Hourglass-104使用5个GPU进行训练,批大小为29(主GPU批大小为4),学习率为2.5e-4,训练50个周期。
- 检测任务中,Hourglass-104从ExtremeNet进行微调。
- 下采样层使用ImageNet预训练权重,上采样层随机初始化。
- 推理过程:
- 使用三种级别的测试增强:无增强、翻转增强和翻转加多尺度(0.5, 0.75, 1, 1.25, 1.5)增强。
- 对于翻转增强,平均网络输出后再解码边界框。
- 对于多尺度增强,使用NMS合并结果。
- 这些增强提供了不同的速度-准确性权衡。
实验
- 实验目的:评估CenterNet在MS COCO数据集上的对象检测性能,并与其他实时检测器的性能进行比较。
- 数据集:MS COCO数据集包含118k训练图像、5k验证图像和20k测试图像,覆盖80个类别。
- 评估指标:使用平均精度(AP)及其在不同IoU阈值下的表现(AP50和AP75)来评估检测性能。
- 不同网络性能对比:
- 使用不同骨干网络(如Hourglass-104、DLA-34、ResNet-101和ResNet-18)的CenterNet模型在COCO验证集上的表现。
- 比较了有无测试增强(如翻转测试和多尺度增强)对性能的影响。
- 与现有技术的比较:
- 在COCO测试集上,CenterNet与现有的最先进技术(包括两阶段和一阶段检测器)进行了比较。
- CenterNet在多尺度评估下,使用Hourglass-104骨干网络达到了45.1%的AP,超过了所有现有的一阶段检测器。
- 额外实验:
- 研究了两个不同对象可能共享同一个中心点的“碰撞”情况,并与其他方法的漏检情况进行了比较。
- 验证了CenterNet不需要基于IoU的NMS后处理,即使用了NMS后性能提升不大。
- 对模型的新超参数进行了消融研究,包括训练和测试分辨率、回归损失、尺寸回归权重和训练计划。
- 3D检测实验:
- 在KITTI数据集上进行3D边界框估计实验,评估了CenterNet在3D检测任务上的性能。
- 使用DLA-34作为骨干网络,并调整了损失权重,与现有的3D检测方法(如Deep3DBox和Mono3D)进行了比较。
- 人体姿态估计实验:
- 在MS COCO数据集上进行人体姿态估计实验,评估了CenterNet在估计人体关节位置上的能力。
- 使用DLA-34和Hourglass-104网络,并采用了直接回归和匹配到最近关节检测的方法。
- 结果显示,CenterNet在人体姿态估计任务上达到了与最先进技术相竞争的性能。
结论
- 核心贡献:提出了一种新的对象检测方法CenterNet,它通过将对象建模为它们边界框中心的点,并直接从这些中心点回归对象的其他属性,如大小、3D位置、方向和姿态。
- 方法优势:
- 简单性:CenterNet的算法简单,易于实现和理解。
- 速度:检测速度快,能够在实时环境中高效运行。
- 准确性:在MS COCO数据集上达到了与最先进技术相媲美的检测精度。
- 端到端可微分:整个检测流程是端到端可微分的,这意味着可以直接从输入图像到最终的检测结果进行优化,无需额外的后处理步骤。
- 通用性:CenterNet不仅适用于2D对象检测,还能估计对象的一系列额外属性,如姿态、3D方向、深度和范围,这表明了其广泛的应用潜力。
- 实验结果:在多个数据集(包括MS COCO和KITTI)上的实验结果表明,CenterNet在对象检测、3D边界框估计和人体姿态估计等任务上均表现出色,与现有的复杂多阶段方法相比具有竞争力。
- 未来方向:尽管CenterNet在初步实验中表现出了鼓励的结果,但它也开辟了实时对象识别及相关任务的新方法