论文学习笔记-CenterNet(Objects as Points)

『写在前面』

应用最广泛的Anchor-Free 检测模型之一。

文章标题:《Objects as Points》

作者机构:Xingyi Zhou等, UT Austin.

原文链接:https://arxiv.org/abs/1904.07850

相关repo:https://github.com/xingyizhou/CenterNet


目录

摘要

1 介绍

2 相关工作

3 预备

4 Objects as Points

4.1 3D目标检测

4.2 人体姿势估计

6 实验结果


摘要

现有的大多数检测模型都首先会枚举大量的潜在box,这是低效的,而且往往还需要额外的后处理步骤辅助。

本文提出将目标建模成其box的中心点,通过关键点估计的方式找到它,然后通过回归的方式去回归box的其他属性,如长、宽等。

CenterNet的思路可以延伸到3D目标检测、姿势估计等任务,只需要对需要回归的额外属性做改动即可。

CenterNet是端到端可微的,简单的,快速的而且比同等基于anchor的模型更准确的。

1 介绍

简而言之,Anchor based模型的思路是将目标检测简化为对大量潜在对象边界框的图像分类问题

但伴随之的问题是冗余框的剔除问题,这必须引入额外的后处理步骤(比如NMS),而这些后处理步骤往往不可微,从而无法进行端到端训练(针对two-stage型模型)。

端到端的问题在One-stage型模型中得到解决,但是One-stage这种基于滑动窗口的思路有些浪费,因为要枚举所有可能的位置和尺寸。

本文提出的CenterNet提出了 一种更简单和高效的设计,直接将图像输入一个FCN网络,网络生成一张heatmap,heatmap的峰值对应目标的中心位置,同时使用该位置的 feature 来预测目标的其余属性

模型的训练遵循常规的dense prediction模型训练方式。

2 相关工作

对比CenterNet和Anchor-based one-stage方法

相通之处

中心点可以被视作一个形状不可知的anchor

不同点

1)CenterNet根据位置来分配anchor,而不是根据框的重叠程度

2)对于每个目标,CenterNet只会分配一个正锚点,因而不需要使用NMS

3)CenterNet使用了stride = 4的输出分辨率,从而消除了对多个anchor的需求。

与CornerNet / ExtremeNet等基于关键点检测的目标检测方法相比,CenterNet的好处是不需要进行grouping等后处理操作

3 预备

给定输入图像I\in R^{W \times H \times 3},CenterNet的目标是生成一张heatmap,\widehat{Y}\in [0, 1]^{\frac{W}{R} \times \frac{H}{R} \times C},其中R是输出stride(下采样倍数),C是需要预测的关键点类别数。比如,对于人体姿势估计任务,一般C=17;而对于COCO的目标检测任务,C=80.在本文中,默认R=4.

在预测的heatmap上,值为1的地方对应检测到的关键点,反之值为0的地方对应背景。本文使用了3种不同的FCN型结构来预测heatmap:Hourglass、ResNet + Upsample、DLA.

在训练时,根据Ground Truth中的关键点,得到其在低分辨率feature map上的对应的位置,并在这些关键点上使用高斯核进行模糊处理,高斯核的标准差根据目标大小自适应调节。注意如果遇到间隔比较近的两个同类目标,在它们交界处的值取element-wise maximum,这么做的目的是防止两个目标交界处出现较高的响应,从而保证Ground Truth map上的peak一定是目标的center。

训练loss采用逐像素的交叉熵结合focal loss,如下图所示,通过除以图像中包含的关键点数目N来做规范化。

为了恢复因下采样而引起的量化误差,额外添加了2个channel(X&Y)用于预测偏移量,此处所有的类别共享相同的偏移预测。偏移量通过L1-loss进行训练,训练过程中只在Ground Truth处进行监督,其余位置不做监督。

4 Objects as Points

在得到目标中心点位置以后,还需要预测其包围框的宽高信息,CenterNet在输出heatmap上添加了2个通道分别用于预测bounding box的W&H。类似对center offset的预测,宽高的预测同样是所有类别共享的,其训练也通过L1-loss进行监督。

此处,作者没有对bounding box的宽高做任何处理,直接使用了原始坐标进行计算。进一步地,在最后的综合loss中对offset的loss和size的loss进行加权。

CenterNet使用独立的网络(均采用 3x3 conv + ReLU + 1x1 conv)分别预测关键点、偏移和尺寸,但它们共享同一个FCN backbone。对整个模型而言,其为每个feature map上的每个位置都输出一个(C + 4)维的向量。对2D目标检测任务,CenterNet的输出如下图所示,[]内表示通道数。

在做inference时怎么从点到框?

首先,提取heatmap上所有的peak,peak定义为8-邻域内的极值点,具体实现中可以借助3x3 max pooling op

然后,根据score排序,得到top-100的极值点;

最后,结合预测出的offset和size,得到目标的包围框信息如下。所有的输出结果都直接从feature map上获得,而不需要再做NMS等后处理操作。

其中, (\delta \widehat{x}_i, \delta \widehat{y}_i)=\widehat{O}_{\widehat{x}_i, \widehat{y}_i}是网络预测的offset,(\widehat{w}_i,\widehat{h}_i)=\widehat{S}_{\widehat{x}_i, \widehat{y}_i}是网络预测的size.

4.1 3D目标检测

对3D目标检测,加入额外的head结构用于预测尺寸、景深和朝向,具体如下图所示。

4.2 人体姿势估计

人体姿势估计需要为每个实例估计k个2D人体关键点位置。CenterNet将姿势考虑成关于中心点的一个k x 2维的属性,同时将各个关键点编码为关于中心点的偏移。通过L1-loss直接回归该联合偏移,同时通过mask操作忽略掉画面中不可见的关键点。

为了强化这些关键点,CenterNet还添加了一个输出k通道的head,遵循标准的bottom-up型多人姿势估计网络,直接估计各类别关键点的位置(不区分instance)。该部分的训练loss设计同预测center的heatmap的训练loss。

此外,还额外添加了2通道的head用于预测关键点的联合offset,类似对center offset的处理。

通过中心点的偏移定位出的关键点可以当做是一条对点(按instance)进行分组的线索,通过它来将(实例无关的)独立的关键点检测结果分配给不同的实例。

整体思路就是:首先根据中心点回归出与其相对于的关键点位置,然后根据这些点的位置去匹配真正的关键点检测结果。

最后只考虑检测框里内的关键点,将它们分配给相应的目标。

6 实验结果

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《Python学习笔记》是由皮大庆编写的一本关于Python语言学习的教材。在这本书中,作者详细介绍了Python语言的基础知识、语法规则以及常用的编程技巧。 首先,作者简要介绍了Python语言的特点和优势。他提到,Python是一种易于学习和使用的编程语言,受到了广大程序员的喜爱。Python具有简洁、清晰的语法结构,使得代码可读性极高,同时也提供了丰富的库和模块,能够快速实现各种功能。 接着,作者详细讲解了Python的基本语法。他从变量、数据类型、运算符等基础知识开始,逐步介绍了条件语句、循环控制、函数、模块等高级概念。同时,作者通过大量的示例代码和实践案例,帮助读者加深对Python编程的理解和应用。 在书中,作者还特别强调了编写规范和良好的编程习惯。他从命名规范、注释风格、代码缩进等方面指导读者如何写出清晰、可读性强的Python代码。作者认为,良好的编程习惯对于提高代码质量和提高工作效率非常重要。 此外,作者还介绍了Python的常用库和模块。他提到了一些常用的库,如Numpy、Pandas、Matplotlib等。这些库在数据处理、科学计算、可视化等领域有广泛的应用,帮助读者更好地解决实际问题。 总的来说,《Python学习笔记》是一本非常实用和全面的Python学习教材。通过学习这本书,读者可以系统地学习和掌握Python编程的基础知识和高级应用技巧,为以后的编程学习和工作打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值