一、CenterNet概述
CenterNet是在2019年论文Objects as points中提出,相比yolo,ssd,faster_rcnn依靠大量anchor的检测网络,CenterNet是一种anchor-free的目标检测网络,在速度和精度上都比较有优势,值得学习下。
CenterNet是一种无锚对象检测架构。 这种结构的一个重要优势在于它在后期处理中用一种更优雅的算法取代了经典的 NMS(非最大抑制),这对于 CNN 流程来说是很自然的。 这种机制可以实现更快的推理。
1、网络结构
除了检测任务外,CenterNet还可以用于肢体识别或者3D目标检测等,因此CenterNet论文中提出了三种backbone的网络结构,分别是Resnet-18, DLA-34和Hourglass-104, 三种backbone准确度和速度如下:
1、Resnet-18 with up-convolutional layers : 28.1% coco and 142 FPS
2、DLA-34 : 37.4% COCOAP and 52 FPS
3、Hourglass-104 : 45.1% COCOAP and 1.4 FPS

可以发现CenterNet网络比较简单,主要包括resnet50提取图片特征,然后是反卷积模块Deconv(三个反卷积)对特征图进行上采样,最后三个分支卷积网络用来预测heatmap, 目标的宽高和目标的中心点坐标。值得注意的是反卷积模块,其包括三个反卷积组,每个组都包括一个3*3的卷积和一个反卷积,每次反卷积都会将特征图尺寸放大一倍,有很多代码中会将反卷积前的3x3的卷积替换为DCNv2(Deformable ConvetNets V2)来提高模型拟合能力。
CenterNet的模型计算流程如下:
-
图片缩放到512x512尺寸(长边缩放到512,短边补0),随后将缩放后1x3x512x512的图片输入网络
-
图片经过resnet50提取特征得到feature1尺寸为1x2048x16x16
-
feature1经过反卷积模块Deconv,三次上采样得到feature2尺寸为1x64x128x128
-
将feature2分别送入三个分支进行预测,预测heatmap尺寸为1x80x128x128(表示80个类别),预测长宽尺寸为1x2x128x128(2表示长和宽),预测中心点偏移量尺寸为1x2x128x128(2表示x, y)

2、与锚点检测对比
基于锚点的检测的问题在于它会生成许多垃圾预测:例如,YOLOv3 为每张图像预测超过 7K 的框。然后,后处理块需要对重叠预测运行成对检查,如果重叠很高(通常 IoU > 0.7 与 COCO 测试集),则假设预测指的是同一个对象,并且置信度较低的预测是丢弃。这种方法有两个主要缺陷:
- 它的复杂性与预测数量的平方成正比——对于基于锚的高精度模型(使用高分辨率输入)尤其不利。
- 它迫使网络在 NMS 之前解码所有预测,对大多数不相关的预测执行更多的时间和功耗操作。
Zhou等人于2019年出版。,论文Objects as Points探讨了无锚定预测。在准备训练集时,他们在地面实况 (GT) 盒子中心绘制了一张具有 delta 函数的地图。然后,他们使用高斯滤波器涂抹这些中心,生成在对象中心达到峰值的平滑分布。然后该模型使用两个预测头:一个训练来预测置信度热图,其中另一个头部训练与其他检测器一样,预测框尺寸和偏移量的回归值,这是指第一个头预测的框中心。见下图。
我们可以直接使用置信度热图来删除不相关的预测,无需解码框,也不会破坏深度 CNN 流。见下图:
- 在热图上运行 maxpool 3x3/1。这将提升每个细胞一点点,除了在最高峰。在非常靠近峰顶的地方创建了一个小的平坦区域。
- 在 maxpool 输入和输出之间运行布尔元素比较。将值作为 FP 值返回(0. 或 1.)。这将创建一个新的热图,其中除局部最大值(值为 1)外,处处为 0(因为 maxpool 操作提升了每个值)。
- 在阶段 2 的输出和 maxpool 的输入之间运行元素乘法。这会将每个局部最大值返回到其置信水平,将非最大值保留为 0。
- 像在其他检测器中一样应用置信度阈值。
- 仅解码与幸存最大值相对应的框。

二、参考网址
目标检测网络CenterNet详解(四) - silence_cho - 博客园CenterNet是在2019年论文Objects as points中提出,相比yolo,ssd,faster_rcnn依靠大量anchor的检测网络,CenterNet是一种anchor-freehttps://www.cnblogs.com/silence-cho/p/13955766.htmlhttps://towardsdatascience.com/centernet-explained-a7386f368962
https://towardsdatascience.com/centernet-explained-a7386f36896211. Predict with pre-trained CenterNet models — gluoncv 0.11.0 documentation
https://cv.gluon.ai/build/examples_detection/demo_center_net.htmlCenterNet Baseline (Keras) [Training] | KaggleExplore and run machine learning code with Kaggle Notebooks | Using data from Global Wheat Detection
https://www.kaggle.com/greatgamedota/centernet-baseline-keras-training https://arxiv.org/abs/1904.08189
https://arxiv.org/abs/1904.08189