one-stage-anchor-free CenterNet:Objects as Points

CenterNet是一种优雅的无锚点目标检测算法,通过检测对象的中心点实现端到端的检测,速度快,误检率低。它避免了grouping阶段和NMS,使用高分辨率特征图,减少了多级预测。文章介绍了如何通过预测关键点的热力图和中心点到边界的距离进行目标检测。在实际应用中,虽然后处理较复杂,但某些芯片厂商已支持该算法。代码复现表明,模型压缩后精度损失小,适合二次开发。
摘要由CSDN通过智能技术生成

paper:https://arxiv.org/pdf/1904.07850.pdf

官方代码:https://github.com/xingyizhou/CenterNet

我的代码:https://github.com/panchengl/centernet_prune   

首先提一下我的代码复现(torch),官方代码支持包括2d目标检测、3d检测、姿态估计任务,我移除了其他的任务,并简单的重构了代码,使得代码更加易读,然后基于我改后的代码完成了模型压缩(剪枝方案),并添加使用了VOC的测试方法(ap50),然后在自己的数据集(复杂场景上)上完成了测试,模型压缩力度还是比较大,而且精度损失很小,有兴趣的同学可以基于我的代码进行二次开发。

总体印象:

    我认为结构最优雅的anchor-free算法,没有太多的tricks,效果却很惊艳,可能也是由于模型的原理特点,在误检方面控制得很好,速度跑起来飞快,而且在结构上扩展性好,各种backbone、deformconv、其实都可以随便加,主要精髓就在于特征提取+points回归,并且可以应用到其他任务,相当优秀了,就是落地有点麻烦(至芯片端),后处理不太好做,只能将后处理重写,将其封装在onnx里面,据我所知,有芯片厂商是已经支持该算法的了。

文章解决的问题:

    1、cornernet、extremenet检测关键点,但是需要一个grouping的阶段,降低速度,且会导致一个匹配错误等类型的误检

    作者依次提出了直接检测每个目标的中心点来处理,避免grouping,端到端,速度快,不需要nms(但是作者源码是使用了nms的(可选),多尺度检测的时候必须要使用)。

文章思路(侧重于2d检测的分析):

    构建模型时,使用backbone来获取目标的热力图,找到目标的中心点(关键点),热力图峰值点即为关键点,并根据中心点,回归出中心点到边界的距离(宽高信息),连fpn的多级预测都没有使用,2d回归的是中心点到两个边界的距离,3dbbox检测回归bbox尺寸和深度信息、朝向,人体姿态估计回归中心点到关节点的偏移量。

方法创新点:

    1、关键点-中心点可以看成是一个形状未知的anchor,但没有尺寸框,没有手动设置的阈值做分类,如下图所示。

    2、每个目标仅有一个正的中心点,不会用到nms,直接提取关键点特征图的局部峰值点,且训练样本可以认为positive examples多。

    3、使用更大的分辨率输出特征图,但总体而言只下采样了4倍,无需用到多级预测关键点

                                        

 

文章思路-Preliminary-如何预测关键点

    令为输入图像,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值