论文:Objects as Points
论文链接:https://arxiv.org/pdf/1904.07850.pdf
论文代码:https://github.com/xingyizhou/CenterNet

文章目录

  • 1 为什么要提出 CenterNet ?
  • 2 CenterNet 网络框架
  • 3 CenterNet 实现细节
    • 3.1 什么是关键点 heatmap?
    • 3.2 关键点损失如何计算?
    • 3.3 为何要将目标中心点处理成高斯圆分布?
    • 3.4 Loss的设计
  • 4 CenterNet 性能效果
  • 5 总结

CenterNet 是 anchor-free 的目标检测经典算法,今天我们就一起来分析分析这个算法。代表性的二阶段和一阶段目标检测算法如 Faster-rcnn 和 Yolo 都是 anchor-based 算法,即先在特征图上生成 anchor box,随后调整这些anchor box 的位置和尺寸生成最后的预测值。而本文提出单阶段的 anchor-free 目标检测算法,无需事先生成 anchor。下面我们开始今天的正题!

1 为什么要提出 CenterNet ?

之前目标检测算法有如下不足:

  • anchor-based 的目标检测算法难以端到端训练:一个目标会对应多个anchor box,需要使用后处理 NMS 抑制掉重复的 box,这种后处理是难以微分的, 因而大多数检测器不是端到端的训练。
  • 基于滑动窗口的目标检测算法,需要计算所有可能的目标位置和尺寸,运算冗余。

CenterNet 做了如下改进:

  • 每个目标使用 bbox中心点表示,目标尺寸、方位、姿态等其他属性,从位于中心位置的图像特征回归得到。

  • 将图片输入到全卷积网络中生成heatmap,heatmap的峰值位置对应着物体的中心。

  • 在推断时,只要做一次前向传播,无需NMS后处理。

2 CenterNet 网络框架

CenterNet 是一种单阶段目标检测算法,该算法网络框架如下所示:

  • 输入端 — 输入端表示输入的图片。该网络的输入图像大小 WWW 和 HHH 为为512,该阶段通常包含一个图像预处理阶段,对图片进行随机翻转,随机缩放(0.6~1.3倍),图片裁剪和颜色增强。
  • 基准网络 — 基准网络用来提取图片特征。论文分别试验了ResNet-18,ResNet-101,DLA-34和 Hourglass-104。
  • Head输出端 — Head用来完成目标检测结果的输出。输出端的分支有3个,分别为 heatmap、offset和size,对应的输出尺度为(W/RW/RW/R, H/RH/RH/R, CCC)、(W/RW/RW/R, H/RH/RH/R, 222) 和(W/RW/RW/R, H/RH/RH/R, 222),其中 RRR 为 stride,论文中取4,CCC 为目标种类。

3 CenterNet 实现细节

3.1 什么是关键点 heatmap?

对于每个标签图(ground truth)中的某一 类 ccc,其 bbox 标签为(x1,y1,x2,y2)(x_1,y_1,x_2,y_2)(x1​,y1​,x2​,y2​),则关键点坐标为:
p=(x1+x22,y1+y22)p=\left(\frac{x_1+x_2}{2},\frac{y_1+y_2}{2} \right) p=(2x1​+x2​​,2y1​+y2​​)
计算得到低分辨率(经过下采样)上对应的关键点:
p~=(p~x,p~y)=⌊pR⌋\widetilde p=(\widetilde p_x,\widetilde p_y)=\lfloor \frac {p}{R}\rfloor p​=(p​x​,p​y​)=⌊Rp​⌋
RRR 为下采样因子,论文采用下采用数为 R=4R=4R=4 。进一步将 GT 关键点通过高斯核分散到热力图上:
Yxyc=exp(−(x−p~x)2+(y−p~y)22σp2)Y_{xyc}=exp\left(\frac{-(x-\widetilde p_x)^2+(y-\widetilde p_y)^2}{2\sigma^2_p} \right) Yxyc​=exp(2σp2​−(x−p​x​)2+(y−p​y​)2​)
式中 σp\sigma_pσp​ 是目标尺度-自适应 的标准方差,热力图值的范围是0-1,即 Y∈[0,1]WR×HR×CY \in [0,1]^{\frac {W}{R}×\frac {H}{R}×C}Y∈[0,1]RW​×RH​×C, 值为1时,代表此点为目标的中心点,也就是要预测要学习的点,如果对于同个类 ccc (同个关键点或是目标类别)有两个高斯函数发生重叠,选择元素级最大的,得到热力图如下:

3.2 关键点损失如何计算?

论文中关键点损失定义如下:
Lk=−1N∑xyc{(1−Y^xyc)α⋅log(Y^xyc)Yxyc=1(1−Yxyc)β⋅(Y^xyc)α⋅log(1−Y^xyc)otherwiseL_k=-\frac{1}{N}\sum_{xyc} \begin{cases} (1-\hat Y_{xyc})^{\alpha}\cdot log(\hat Y_{xyc}) & Y_{xyc}=1\\ (1-Y_{xyc})^{\beta}\cdot (\hat Y_{xyc})^{\alpha} \cdot log(1-\hat Y_{xyc}) & otherwise\end{cases} Lk​=−N1​xyc∑​{(1−Y^xyc​)α⋅log(Y^xyc​)(1−Yxyc​)β⋅(Y^xyc​)α⋅log(1−Y^xyc​)​Yxyc​=1otherwise​

式中:Y^xyc\hat Y_{xyc}Y^xyc​为预测的关键点热力图值; YxycY_{xyc}Yxyc​ 为GT关键点热力图值;α\alphaα和β\betaβ 为权重。

(1) 情况 Yxyc=1Y_{xyc}=1Yxyc​=1:

当前坐标正好位于GT中心点上,当前坐标点为正样本,目标是让 Y^xyc\hat Y_{xyc}Y^xyc​ 越大越好:

(1−Y^xyc)α(1-\hat Y_{xyc})^{\alpha}(1−Y^xyc​)α的作用:

  • 当Y^xyc=1\hat Y_{xyc}=1Y^xyc​=1时, (1−Y^xyc)α=0(1-\hat Y_{xyc})^{\alpha}=0(1−Y^xyc​)α=0 ,损失为0,这是最理想的情况;

  • 当0≤Y^xyc<10\leq\hat Y_{xyc}<10≤Y^xyc​<1时,Y^xyc\hat Y_{xyc}Y^xyc​ 值越大,权重 (1−Y^xyc)α(1-\hat Y_{xyc})^{\alpha}(1−Y^xyc​)α 越小,损失越小,即会鼓励 Y^xyc\hat Y_{xyc}Y^xyc​ 值增大。

(2) 其他情况:

Yxyc≠1Y_{xyc}\neq1Yxyc​​=1 表示当前坐标点为负样本,目标是让 Y^xyc\hat Y_{xyc}Y^xyc​ 越小越好。

(Y^xyc)α(\hat Y_{xyc})^{\alpha}(Y^xyc​)α 的作用:

  • 当 Y^xyc\hat Y_{xyc}Y^xyc​ 越小,权重 (Y^xyc)α(\hat Y_{xyc})^{\alpha}(Y^xyc​)α 也越小,即让损失越小,减小惩罚;
  • 当 Y^xyc\hat Y_{xyc}Y^xyc​ 越大,权重 (Y^xyc)α(\hat Y_{xyc})^{\alpha}(Y^xyc​)α 也越大,即让损失增大,增大惩罚;

(1−Yxyc)β(1-Y_{xyc})^{\beta}(1−Yxyc​)β 的作用:

  • 当关键点远离GT中心点,YxycY_{xyc}Yxyc​ =0,此时 (1−Yxyc)β=1(1-Y_{xyc})^{\beta}=1(1−Yxyc​)β=1 ,对关键点损失没有影响;

  • 当关键点处于GT中心点的高斯圆范围内,0<Yxyc<10<Y_{xyc}<10<Yxyc​<1,此时 0<(1−Yxyc)β<10<(1-Y_{xyc})^{\beta}<10<(1−Yxyc​)β<1 ,即让关键点损失减小;

    可见(1−Yxyc)β(1-Y_{xyc})^{\beta}(1−Yxyc​)β 用于弱化GT中心点附近(高斯圆范围内)的负样本损失,而惩罚那些远离GT中心点的预测关键点。

3.3 为何要将目标中心点处理成高斯圆分布?

下图左图中,是不做高斯圆的情形,虽然绿点2更加靠近GT关键点,但是对于网络而言,红点1和绿点2处的关键点损失是一样的,所以网络没有优化方向;

下图右图中,是做一个高斯圆的情形,红点1处于高斯圆之外,将受到惩罚;而绿点在高斯圆内,越往中心,关键点损失越小,即鼓励网络学习到让预测关键点更加靠近GT中心点。

3.4 Loss的设计

CenterNet 总体Loss为:
Ldet=Lk+λsizeLsize+λoffLoffL_{det}=L_k+\lambda_{size}L_{size}+\lambda_{off}L_{off} Ldet​=Lk​+λsize​Lsize​+λoff​Loff​
式中: LkL_kLk​ 为上节中的关键点损失, LoffL_{off}Loff​ 为偏置损失,LsizeL_{size}Lsize​为尺寸损失。

偏置损失和尺寸损失的解释如下:

偏置损失:

因为CenterNet网络对图像进行了R=4R=4R=4 的下采样,将特征图重新映射到原始图像上时会带来误差,因此需要每个关键点 p~\widetilde pp​ 预测一个偏置 O^∈RWR×HR×2\hat O \in R^{\frac {W}{R}×\frac {H}{R}×2}O^∈RRW​×RH​×2。偏置损失使用L1 loss,定义如下:
Loff=1N∑p∣O^p~−(pR−p~)∣L_{off}=\frac{1}{N}\sum_p|\hat O_{\widetilde p}-(\frac{p}{R}-\widetilde p)| Loff​=N1​p∑​∣O^p​​−(Rp​−p​)∣

式中:O^p~\hat O_{\widetilde p}O^p​​ 表示关键点坐标的预测偏置; ppp 为GT关键点坐标;RRR 为下采样因子;p~\widetilde pp​ 为预测的关键点坐标。

尺寸损失:

对每个关键点预测其宽高尺寸S^pk∈RWR×HR×2\hat S_{p_k} \in R^{\frac {W}{R}×\frac {H}{R}×2}S^pk​​∈RRW​×RH​×2,尺寸损失使用L1 loss
Lsize=1N∑k=1N∣S^pk−Sk∣L_{size}=\frac{1}{N}\sum_{k=1}^N|\hat S_{p_k}-S_k| Lsize​=N1​k=1∑N​∣S^pk​​−Sk​∣
式中: SkS_kSk​为GT关键点宽高尺寸。

4 CenterNet 性能效果

在COCO数据集上,CenterNet 使用 Hourglass-104基础网络可以取得较好的检测性能,42.2% AP (7.8 FPS),比较而言,CornerNet性能为 40.5% AP(4.1 FPS),ExtremeNet性能为 40.3% AP(3.1 FPS),可见无论是精度还是速度,CenterNet都有很大的优势。

5 总结

CenterNet 论文的主要贡献包括以下几点:

  • CenterNet 提出的anchor-free算法摆脱了NMS后处理复杂计算,更加简单高效。
  • CenterNet 可以扩展应用到 3D检测,姿态估计等任务上,为实时目标识别任务提高了新的思路。
  • CenterNet 的改进版参见博客:目标检测:一文读懂 TTFNet (CVPR2020)

目标检测: 一文读懂 CenterNet (CVPR 2019)相关推荐

  1. 目标检测: 一文读懂 FCOS (CVPR 2019)

    论文:Fully Convolutional One-Stage Object Detection 论文链接:https://arxiv.org/pdf/1904.01355.pdf 代码链接:htt ...

  2. 目标检测: 一文读懂 YOLOX

    论文:YOLOX: Exceeding YOLO Series in 2021 论文链接:https://arxiv.org/pdf/2107.08430.pdf 代码链接:https://githu ...

  3. 大疆、港科大联手!双目3D目标检测实验效果大放送 | CVPR 2019

    作者 | heryms 责编 | Jane CVPR 2019的文章出来了,今天聊聊双目的 3D object detection.这是一篇来自 DJI (大疆)与港科大合作的文章<Stereo ...

  4. 从基础综述、论文笔记到工程经验、训练技巧:值得一看的目标检测好文推荐...

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文授权转自知乎作者跑者小越,https://zhuanlan.z ...

  5. ​一文读懂EfficientDet

    一文读懂EfficientDet. 今年年初Google Brain团队在 CVPR 2020 上发布了 EfficientDet目标检测模型, EfficientDet是一系列可扩展的高效的目标检测 ...

  6. 从实验室走向大众,一文读懂Nanopore测序技术的发展及应用

    关键词/Nanopore测序技术    文/基因慧 随着基因测序技术不断突破,二代测序的发展也将基因检测成本大幅降低.理想的测序方法,是对原始DNA模板进行直接.准确的测序,消除PCR扩增带来的偏差, ...

  7. 一文读懂Faster RCNN

    来源:信息网络工程研究中心本文约7500字,建议阅读10+分钟 本文从四个切入点为你介绍Faster R-CNN网络. 经过R-CNN和Fast RCNN的积淀,Ross B. Girshick在20 ...

  8. gps导航原理与应用_一文读懂角速度传感器(陀螺仪)的应用场景

    前文我们大致了解陀螺仪的来历,原理和种类,那么,它与我们的日常生活有怎样的关系呢? 陀螺仪器最早是用于航海导航,但随着科学技术的发展,它在航空和航天事业中也得到广泛的应用.陀螺仪器不仅可以作为指示仪表 ...

  9. 你真的懂数据分析吗?一文读懂数据分析的流程、基本方法和实践

    导读:无论你的工作内容是什么,掌握一定的数据分析能力,都可以帮你更好的认识世界,更好的提升工作效率.数据分析除了包含传统意义上的统计分析之外,也包含寻找有效特征.进行机器学习建模的过程,以及探索数据价 ...

最新文章

  1. 智源论坛 | 人工智能的数理基础(系列报告)
  2. mysql的一个字段最多能插入多少数据?我们存入text类型的值上限是多大?
  3. 测开之路五:异常处理
  4. C语言矩阵N*N旋转的算法(附完整源码)
  5. html文本改,编辑html格式文本可改成txt格式(可以替换或更换某文本)新手
  6. IT公司老板落水,各部门员工怎么救??
  7. 前端笔记-vue cli中v-bind动态数据实时更新
  8. linux之iftop命令
  9. 由a标签的onclick影出来的问题
  10. hosts文件分发其他机器
  11. NumPy库---介绍
  12. [33期] 穿越地平线的渴望
  13. 什么专业可以留学计算机动画,美国留学计算机动画专业怎么样?
  14. 每日一结(11.1)
  15. 北京摇号系统服务器,支付宝“城市服务”平台可查询北京小客车摇号结果
  16. SPP(Spatial Pyramid Pooling)解读
  17. 格式化 NameNode 提示 SHUTDOWN_MSG: Shutting down NameNode at xxx/xxx.xxx.xxx.xxx
  18. 从数据下载到极速土地利用变化图制作
  19. fiddler抓包工具的使用
  20. 正方形的定义和判定方法

热门文章

  1. 什么是等保?等保流程又具体包含哪些内容呢?
  2. java代码绘制简单的图形
  3. 2022年全球与中国湿钽电容器行业发展趋势及投资战略分析报告
  4. Linux系统 logrotate 详解
  5. 区块链+珠宝供应链金融:除了解决信任问题,他们想让数字资产流动起来
  6. matlab的dc程序,基于MATLAB的数字式DC/DC开关电源系统建模
  7. html5 mp4转换ogv格式,FFmpeg 批量转换HTML5视频(mp4/webm/ogv)
  8. /proc/cpuinfo参数说明查看CPU参数
  9. managed DLL 和 normal DLL
  10. Oracle表空间和数据文件