Objects as Points:预测目标中心,无需NMS等后处理操作 | CVPR 2019

论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中

来源:晓飞的算法工程笔记 公众号

论文: Objects as Points

论文地址:https://arxiv.org/abs/1904.07850
论文代码:https://github.com/xingyizhou/CenterNet
Introduction
  论文认为当前的anchor-based方法虽然性能很高,但需要枚举所有目标可能出现的位置以及尺寸,实际上是很浪费的。为此,论文提出了简单且高效的CenterNet,将目标表示为其中心点,再通过中心点特征回归目标的尺寸。

CenterNet将输入的图片转换成热图,热图中的高峰点对应目标的中心,将高峰点的特征向量用于预测目标的高和宽,如图2所示。在推理时,只需要简单的前向计算即可,不需要NMS等后处理操作。

对比现有的方法,CenterNet在准确率和速度上有更好的trade-off。另外,CenterNet的架构是通用的,能够拓展到其它任务,比如3D目标检测以及人体关键点预测。

Preliminary
  定义输入图片 I ∈ R W × H × 3 I\in R^{W\times H\times 3} IRW×H×3,预测关键点热图 Y ^ ∈ [ 0 , 1 ] W R × H R × C \hat{Y}\in [ 0, 1 ]^{\frac{W}{R}\times \frac{H}{R}\times C} Y^[0,1]RW×RH×C,其中 R R R为热图的缩放比例,设定为4, C C C为关键点的类型。当 Y ^ x , y , c = 1 \hat{Y}{x,y,c}=1 Y^x,y,c=1时,像素点为检测的关键点,当 Y ^ x , y , c = 0 \hat{Y}{x,y,c}=0 Y^x,y,c=0时,像素点为背景。在主干网络方法,论文尝试了多种全卷积encoder-decoder网络:Hourglass网络,带反卷积的残差网络以及DLA(deep layer aggregation)。

关键点预测部分的训练跟CornerNet一样,对于类别 c c c的GT关键点 p ∈ R 2 p\in \mathcal{R}2 pR2,计算其在热图上对应的位置 p ~ = ⌊ p R ⌋ \tilde{p}=\lfloor\frac{p}{R}\rfloor p~=Rp,然后使用高斯核 Y x y c = e x p ( − ( x − p ~ x ) 2 + ( y − p ~ y ) 2 2 σ 2 p ) Y_{xyc}=exp(-\frac{(x-\tilde{p}_x)2+(y-\tilde{p}_y)2}{2\sigma2_p }) Yxyc=exp(2σ2p(xp~x)2+(yp~y)2)将GT关键点散射,即根据像素位置到关键点的距离赋予不同的权值,得到GT热图 Y ∈ [ 0 , 1 ] ( W R × H R × C ) Y\in [ 0,1 ]^{(\frac{W}{R}\times \frac{H}{R}\times C)} Y[0,1](RW×RH×C) σ p \sigma_p σp为目标尺寸自适应的标准差,如图3所示。如果相同类别的高斯核散射重叠了,则取element-wise的最大值。训练的损失函数为惩罚衰减的逻辑回归,附加了focal loss:

α \alpha α β \beta β为focal loss的超参数, N N N为关键点数。为了恢复特征图缩放带来的误差,额外预测每个关键点的偏移值 O ^ ∈ R W R × H R × 2 \hat{O}\in \mathcal{R}^{\frac{W}{R}\times \frac{H}{R}\times 2} O^RRW×RH×2,偏移值与类别无关,通过L1损失进行训练:

偏移值只使用GT关键点,其它位置的点不参与训练。

Objects as Points
  定义 ( x 1 ( k ) , y 1 ( k ) , x ( k ) 2 , y ( k ) 2 ) (x^{(k)}_1, y^{(k)}_1, x{(k)}_2,y{(k)}_2) (x1(k),y1(k),x(k)2,y(k)2)为目标 k k k的GT框,类别为 c k c_k ck,其中心点为 p k = ( x ( k ) 1 + x ( k ) 2 2 , y ( k ) 1 + y ( k ) 2 2 ) p_k=(\frac{x{(k)}_1+x{(k)}2}{2}, \frac{y{(k)}_1+y{(k)}2}{2}) pk=(2x(k)1+x(k)2,2y(k)1+y(k)2)。论文使用热图 Y ^ \hat{Y} Y^得到所有的中心点,另外再回归每个目标 k k k的尺寸 s k = ( x ( k ) 2 − x ( k ) 1 , y ( k ) 2 − y ( k ) 1 ) s_k=(x{(k)}_{2}-x{(k)}{1}, y{(k)}_{2}-y{(k)}{1}) sk=(x(k)2x(k)1,y(k)2y(k)1)。为减少计算负担,尺寸的预测与类别无关 S ^ ∈ R W R × H R × 2 \hat{S}\in \mathcal{R}^{\frac{W}{R}\times \frac{H}{R}\times 2} S^RRW×RH×2,通过L1损失进行训练,只使用GT关键点:

完整的CenterNet损失函数为:

CenterNet直接预测关键点热图 Y ^ \hat{Y} Y^、偏移值 O ^ \hat{O} O^和目标尺寸 S ^ \hat{S} S^,每个位置共计预测 C + 4 C+4 C+4个输出。所有的输出共用主干网络特征,再接各自的 3 × 3 3\times 3 3×3卷积、ReLU和 1 × 1 1\times 1 1×1卷积。

在推理时,首先获取各类别热图上的高峰点,高峰点的值需高于周围八个联通点的值,最后取top-100高峰点。对于每个高峰点 ( x i , y i ) (x_i, y_i) (xi,yi),使用预测的关键点值 Y ^ x , y , c \hat{Y}_{x,y,c} Y^x,y,c作为检测置信度,结合预测的偏移值 O ^ = ( δ x ^ i , δ y ^ i ) \hat{O}=(\delta \hat{x}_i, \delta \hat{y}_i) O^=(δx^i,δy^i)和目标尺寸 S ^ = ( w ^ i , h ^ i ) \hat{S}=(\hat{w}_i, \hat{h}_i) S^=(w^i,h^i)生成预测框:

由于高峰点的提取方法足以替代NMS的作用,所有的预测框都直接通过关键点输出,不需要再进行NMS操作以及其它后处理。需要注意的是,论文采用了巧妙的方法实现高峰点获取,先对特征图使用padding=1的 3 × 3 3\times 3 3×3最大值池化,然后对比输出特征图和原图,值一样的点即为满足要求的高峰点。

Implementation details
  CenterNet的输入为 512 × 512 512\times 512 512×512,输出的热图大小为 128 × 128 128\times 128 128×128。实验测试了4种网络结构:ResNet-18、ResNet-101、DLA-34和Hourglass-104,其中使用可变形卷积对ResNet和DLA-34进行了改进。

Hourglass

Hourglass结构如图a所示,框中的数字为特征图的缩放比例,包含两个hourglass模块,每个模块有5个下采样层以及5个上采样层,上采样和下采样对应的层有短路连接。Hourglass的网络尺寸最大,关键点预测的效果也是最好的。

ResNet

ResNet大体结构跟原版一致,加入了反卷积用来恢复特征图大小,反卷积的权值初始化为双线性插值操作,虚线箭头为 3 × 3 3\times 3 3×3可变形卷积操作。

DLA

DLA使用层级短路连接,原版的结构如图c所示。论文将大部分的卷积操作修改为可变形卷积,并对每层的输出进行了 3 × 3 3\times 3 3×3卷积融合,最后使用 1 × 1 1\times 1 1×1卷积输出到目标维度,如图d所示。

Experiment

不同主干网络在目标检测上的准确率和速度对比。

目标检测性能对比。

3D检测性能对比。

人体关键点检测性能对比。

Conclusion
  论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中 。
谢谢大家

https://github.com/users/a78100501/projects/3
https://github.com/users/a78100501/projects/3?fullscreen=true
https://github.com/users/a78100501/projects/3?E3Spy
https://github.com/users/a78100501/projects/3?yaqrt
https://github.com/users/a78100501/projects/3?94090
https://github.com/users/a78100501/projects/4
  论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中 。
https://github.com/users/a78100501/projects/4?fullscreen=true
https://github.com/users/a78100501/projects/4?s47Bd
https://github.com/users/a78100501/projects/4?mufxi
https://github.com/users/a78100501/projects/4?38813
https://github.com/users/a419131405/projects/1
https://github.com/users/a419131405/projects/1?fullscreen=true
  论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中 。
https://github.com/users/a419131405/projects/1?7tqf4
https://github.com/users/a419131405/projects/1?mftiq
https://github.com/users/a419131405/projects/1?07379
https://github.com/users/a419131405/projects/2
https://github.com/users/a419131405/projects/2?fullscreen=true
  论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中 。
https://github.com/users/a419131405/projects/2?802z2
https://github.com/users/a419131405/projects/2?ljlph
https://github.com/users/a419131405/projects/2?52727
https://github.com/users/a419131405/projects/3
https://github.com/users/a419131405/projects/3?fullscreen=true
https://github.com/users/a419131405/projects/3?mCB2Z
  论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中 。
https://github.com/users/a419131405/projects/3?bzsjn
https://github.com/users/a419131405/projects/3?07909
https://github.com/users/a419131405/projects/4
https://github.com/users/a419131405/projects/4?fullscreen=true
https://github.com/users/a419131405/projects/4?FfmYm
  论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中 。
https://github.com/users/a419131405/projects/4?ldtng
https://github.com/users/a419131405/projects/4?30958
https://github.com/users/a419131405/projects/5
https://github.com/users/a419131405/projects/5?fullscreen=true
https://github.com/users/a419131405/projects/5?nE5A3
https://github.com/users/a419131405/projects/5?ywpim
  论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中 。
https://github.com/users/a419131405/projects/5?73246
https://github.com/users/a419131405/projects/6
https://github.com/users/a419131405/projects/6?fullscreen=true
https://github.com/users/a419131405/projects/6?CfF7K
https://github.com/users/a419131405/projects/6?ocflf
https://github.com/users/a419131405/projects/6?31830
  论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中 。
https://github.com/users/a419131405/projects/7
https://github.com/users/a419131405/projects/7?fullscreen=true
https://github.com/users/a419131405/projects/7?84Hy2
https://github.com/users/a419131405/projects/7?kdxfc
https://github.com/users/a419131405/projects/7?14330
https://github.com/users/a419131405/projects/8
  论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中 。
https://github.com/users/a419131405/projects/8?fullscreen=true
https://github.com/users/a419131405/projects/8?QaW5O
https://github.com/users/a419131405/projects/8?mfjzt
https://github.com/users/a419131405/projects/8?45786
  论文基于关键点预测网络提出CenterNet算法,将检测目标视为关键点,先找到目标的中心点,然后回归其尺寸。对比上一篇同名的CenterNet算法,本文的算法更简洁且性能足够强大,不需要NMS等后处理方法,能够拓展到其它检测任务中 。
https://github.com/users/a419131405/projects/9
https://github.com/users/a419131405/projects/9?fullscreen=true
https://github.com/users/a419131405/projects/9?513g2
https://github.com/users/a419131405/projects/9?xudla
https://github.com/users/a419131405/projects/9?07179

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值