美文网首页视觉处理52CV-目标检测
重读 CenterNet,一个在Github有5.2K星标的目标

重读 CenterNet,一个在Github有5.2K星标的目标

作者: 我爱计算机视觉 | 来源:发表于2021-02-03 09:32 被阅读0次

作者 | 张凯

编辑 | CV君

报道 | 我爱计算机视觉(微信id:aicvml)

本文带领大家重温 Objects as Points 一文,其于 2019 年4月发布于arXiv,谷歌学术显示目前已有403次引用,Github代码仓库已有 5.2K 星标,无论在工业界和学术界均有巨大影响力。

论文作者信息:

论文:

https://arxiv.org/abs/1904.07850

0.动机

使用卷积神经网络做目标检测,大体可以分为单阶段(one-stage)方法和二阶段(two-stage)方法。单阶段检测器预定义很多anchor,基于这些anchor去做检测,密集的anchor有助于提高检测精度,然而在预测阶段,真正起到检测作用的只有少部分anchor,因此导致了计算资源的浪费。

无论是单阶段检测器还是二阶段检测器,在后处理阶段都需要NMS(Non-Maximum Suppression)操作去除多余框,NMS操作只在推理阶段存在,NMS的存在导致现有的检测器并不是严格的端到端训练的。

基于上述现象,作者提出了CenterNet算法,直接预测物体bounding box的中心点和尺寸。相比其他方法,该方法在预测阶段不需要NMS操作,极大的简化了网络的训练和推理过程。

1.CenterNet原理

2.网络结构

作者尝试了4种网络结构,分别为ResNet-18、ResNet-101、DLA-34、Hourglass-104,如下图所示,方框内的数字用于指出特征的尺寸,当方框内数字为4时,表示此时特征的长和宽分别为输入图片的1/4。

Hourglass-104

如上图中图(a)所示,每个Hourglass模块是对称的5个下采样和5个上采样,中间使用skip connection进行短接,该网络的配置与文章《Cornernet:Detecting objects as paired keypoints》基本一致。

ResNet-18和ResNet-101

如上图中图(b)所示,作者在ResNet中做了些改动:在每个upsample操作之前加入了1个3x3的deformable convolutional layer,即在做upsample操作时,先通过deformable convolutional layer改变通道数,再进行反卷积(transposed convolution)操作。

DLA-34

3.使用CenterNet做3D目标检测

2D目标检测只需要网络输出目标的位置和尺寸即可,而3D目标检测还需要网络输出目标的深度、(长、宽、高)、目标的角度这3个额外的信息。

3.1 深度

4.实验结果

4.1 2D目标检测

作者使用了ResNet-18、ResNet-101、DLA-34、Hourglass-104这4种网络进行实验,输入图片分辨率为512x512,输出图片分辨率为128x128,训练时使用了如下数据增强方法:

random flip

random scaling

cropping

color jittering

在COCO训练集上训练,使用Adam优化器,ResNet-101和DLA-34的下采样层由ImageNet预训练权重初始化,上采样层随机初始化;Hourglass-104以ExtremeNet为基础微调。在8卡TITAN-V GPU上,ResNet-101和DLA-34训练了2.5天,Hourglass-104训练了5天。在COCO验证集上测试,结果如下图所示:

上图中,“N.A”表示测试时未使用数据增强;“F”表示测试时使用了flip方式进行数据增强,在解码bounding box之前平均2个网络的输出结果;“MS”表示使用了5个尺度(0.5,0.75,1,1.25,1.5)进行推理,使用NMS融合5个网络的结果。“FPS”的测试是基于Intel Core i7-8086K CPU、TITAN Xp GPU、Pytorch 0.4.1、CUDA9.0和CUDNN7.1环境。

下图为使用DLA-34和Hourglass-104这2种结构在COCO测试集上的测试结果:

包含“/”的项表示“单尺度/多尺度”结果。可以看到使用Hourglass-104结构精度可以达到45.1% AP,超越了其他单阶段检测器。

4.2 3D目标检测

在KITTI数据集上训练3D目标检测算法,训练时没有使用数据增强技术。在训练和测试时,输入图片分辨率为1280x384,使用DLA-34网络结构。对于包含深度、(长、宽、高)和方向的损失函数,训练时权重均设置为1。

在测试时,recall的值设置为从0到1步长为0.1的11个值,IOU阈值为0.5,计算2D bounding box的AP、度量角度准确性的AOS、鸟瞰图bounding box的BEV AP。针对该数据集训练5个模型,测试结果取5个模型平均值,并给出标准差。测试结果如下:

上图中分别与Deep3DBox和Mono3D进行比较,并且按照要比较的算法划分测试集。在AP和AOS两个指标下,CenterNet略差于Deep3DBox和Mono3D方法,在BEV AP指标下明显优于这2个方法。

5.总结

这篇文章有如下亮点:

提出了CenterNet框架用于目标检测,该方法预测目标的关键点和尺寸,简单、速度快、精度高,不需要预定义anchor,也不需要NMS,完全实现端到端训练;

在CenterNet框架下,可以通过增加网络的head预测目标的其他属性,比如3D目标检测中的目标深度、角度等信息,可扩展性强。

源码:

https://github.com/xingyizhou/CenterNet

仅用于学习交流!

END

相关文章

  • 重读 CenterNet,一个在Github有5.2K星标的目标

    作者 | 张凯编辑 | CV君报道 | 我爱计算机视觉(微信id:aicvml) 本文带领大家重温Objects ...

  • CenterNet目标检测技术试验

    项目地址https://github.com/xingyizhou/CenterNet[https://githu...

  • CenterNet(一)论文解读

    2019年最火的目标检测模型就是CenterNet,其实它是基于CenterNet的基础上进行改进。在看Cente...

  • 目标

    有目标的人,在奔跑;没目标的人,在流浪,因为不知要去哪里。有目标的人,在感恩;没目标的人,在报怨,因为觉得大家都亏...

  • 在大海里航行中没有指南针

    有目标的人,在奔跑;没目标的人,在流浪,因为不知要去哪里。有目标的人,在感恩;没目标的人,在报怨,因为觉得大家都亏...

  • 一个人,拼的就是坚强!

    请坚持看完、你会收获良多 1、有目标的人,在奔跑;没目标的人,在流浪,因为不知要去哪里。有目标的人,在感恩;没目标...

  • pytorch版CenterNet训练自己的数据集

    CenterNet(Objects as points)已经有一段时间了,之前这篇文章-【目标检测Anchor-F...

  • 🇨🇳 不忘初心 🇨🇳

    有目标的团队无中生有,没目标的团队无事生非;有目标的团队故事多,没目标的团队事故多;有目标的人生是航程,没目标的人...

  • 你有目标吗?

    目标是灯塔,目标会激发你的动力和潜能,有目标的人在奔跑,没有目标的人在流浪。 你是一个有目标的人吗?养成定目标的习...

  • 目标 人生

    有目标的人在奔跑, 沒目标的人在流浪; 有目标的人在感恩, 沒目标的人在抱怨; 有目标的人睡不着, 沒目标的人睡不...

网友评论

    本文标题:重读 CenterNet,一个在Github有5.2K星标的目标

    本文链接:https://www.haomeiwen.com/subject/snrptltx.html