深度篇——目标检测史(八) 细说 CornerNet-Lite 目标检测

返回主目录

返回 目标检测史 目录

上一章:深度篇——目标检测史(七) 细说 YOLO-V3目标检测 之 代码详解

 

论文地址:https://arxiv.org/pdf/1904.08900.pdf

原码地址:https://github.com/princeton-vl/CornerNet-Lite.

 

本小节,细说 CornerNet-Lite 目标检测,下一小节细说 CornerNet-Lite 目标检测 之 代码详解 

 

九. CornerNet-Lite 目标检测

在 2019.04.19 这天,有位大佬发表了一篇论文 《CornerNet-Lite: Efficient Keypoint Based Object Detection Hei Law Yun Teng Olga Russakovsky Jia Deng Princeton University》。该论文号称,可以吊打 yolo-v3,无论精度、还是效率(有大佬测试 CornerNet-Lite 的 python 版本,比 c++ 版本 的 yolo-v3 还要快),都碾压 yolo-v3。这么犀利的利器,我们当然很有兴趣掌握在自己的手里了。下面,就来说说 CornerNet-Lite 目标检测。

 

1. 概要 (Abstrace)

在目标检测中,基于关键点 (keypoint-base) 检测的方法是比较新颖的范例。它消除了对anchor boxes的需求,并提供了简化的框架。基于关键点检测的CornerNet在众多的单级检测器(如SSD, YOLOv3等)中取得了最好的精度。尽管这种高精度的代价来源于高处理。在工作中,我们解决了基于关键点的高效的目标检测问题,并引入了CornerNet-Lite。CornerNet-Lite是由:CornerNet-Saccade和CornerNet-Squeeze两种处理机制组成。CornerNet-Saccade是一种使用注意力机制来消除对图像中的所有像素使用穷举处理的方法。而CornerNet-Squeeze是一种紧凑型背骨结构。CornetNet-Lite的这两种变体都是高效目标检测中的关键范例:在不牺牲精度的情况下提升效率,和在实时效率中提高精确度。

CornerNet-Saccade([sæ'kɑd]) 适用于离线处理,在 COCO 数据集中将 CornerNet 的效率提高了 6.0 倍,并提高了 1.0% AP。

CornerNet-Squeeze([skwiz]) 适用于实时检测,它提升了当下流行的实时检测器 yolo v3 的效率和精度(CornerNet-Squeeze 为 34.4% AP 和 34ms,yolo v3 为33.0% AP 和 39ms)

综合这些贡献,它首次显示了基于关键点的检测器对要求高效处理的应用是很有效的潜力

2. 介绍 (Introduction)

基于关键点的目标检测是一类对它们关键点进行分组并用来生成目标 bounding boxes 进行检测的方法。CornerNet 是它们之中的佼佼者,它对 bounding boxes 的左上角和右下角进行分组和检测。CornerNet 使用一个堆叠的 沙漏网络 (hourglass network) 来对角点热图进行预测,然后使用关联嵌入来对它们进行分组。CornerNet 可以使用一个简单的设计来消除对 anchor boxes 的要求,当前并在 COCO 数据集上获得艺术级的精度,从而从众多的单级检测器中脱颖而出。

然而,CornerNet 的主要缺点是它的推理速度。它在 COCO 数据集获得 42.2% AP(平均查准率)的代价为每张图要消耗 1.147s 推理时间,这对于要求实时或交互式的视频应用来说,实在太慢了。虽然它一方面通过减少像素数量的处理很容易就提升推理速度(例如,通过减少处理的尺度或分辨率),但是这也会导致精度大幅度下降。例如,单尺度处理与减少输入图像的分辨率相结合可以将 CornerNet 推理提速到 42ms 每张图片,速度与当下最流行的快速检测器 yolo v3 的 39ms 相差不大,但是它的精度将减少到 25.6% AP,比 yolo v3 的33.0% AP 低了太多。这就导致 CornerNet 在团队权衡精度和效率考虑时因缺乏竞争力而被放弃。

在这篇论文中,我们在探索如何提升 CornerNet 的推理效率。对于任何目标检测器来说,效率的提升都可以从以下这两个方面着手: 减少像素处理的数量(比方说,原来要处理100个像素,现在只处理30个像素) 和 减少对每个像素的处理量(比方说,原来有10种处理方式,现在只用2种方式去处理)。在这些探索中,于是自然而然就出现了上面介绍的两种 CornerNet 的变体: CornerNet-Saccade 和 CornerNet-Squeeze,我们将这两种变体统称为 CornerNet-Lite

CornerNet-Saccade 是通过减少处理像素量来加速推理。它使用一种类似于人类视觉场景中扫视的注意力机制。它从缩小全图开始并生成一张之后被模型放大后进一步处理的注意力图(attention map)。与原始的 CornerNet 不同之处在于 CornerNet-Saccade 应用了多尺度的全卷积。CornerNet-Saccade 通过选择一个在高分辨率下裁剪得到的子集,并对其进行检测,从而提升效率与精度。在 COCO 数据集上面的试验表明 CornerNet-Saccade 对每张图像耗时 190ms 并取得了 43.2% AP,相对于原始的 CornerNet, 提升了 1% AP 和 提升了 6.0 倍的效率。

CornerNet-Squeeze 是通过减少每个像素的处理量来提升推理速度。它整合了 SqueezeNet 和 MobileNets 的思路,并引入一种紧凑沙漏背骨,它是将被广泛应用的 1 x 1 卷积 和 瓶颈层相结合而得到在深度方面分离卷积。在COCO 数据集上,基于新的沙漏背骨的 CornerNet-Squeeze 对每张图像耗时 30ms 并获得了 34.4% AP ,比yolo v3 (33.0%AP 和 39ms) 更精准,更快。

通过对 CornerNet-Saccade 和 CornerNet-Squeeze 变体的研究,人们发现,它们均可以提升效率,并有一定的精度提升。那么,如果把它们整合起来(例如,CornerNet-Squeeze 是否可以被 saccades 整合成 CornerNet-Squeeze-saccades),是不是会更快更准更嗨呢?有了想法,当然忍不住去实验一把了,毕竟,实践出真理嘛。结果,一实验就跪了,因为,想象是丰满的,现实是骨感的。整合后的 CornerNet-Squeeze-saccades 被证明比原来的 CornerNet-Squeeze 效率更慢,精度更低。这是因为 saccades 网络需要可以生成一张足够精度的 注意力图(attention map) 来协助,但是 CornerNet-Squeeze 的超紧凑型架构没有这个额外的功能。此外,原始的 CornerNet 应用的是多尺度模式,这为 saccades 减少像素量处理提供了足够的空间。相对的,由于 CornerNet-Squeeze 超紧凑架构已经应用了单尺度的推理预算,这对于 saccades 的保存,无法提供足够的空间。

意义和新奇:

总的来说,CornerNet-Lite 的两种变体都是基于关键点竞争的方法,它涵盖了两个流行的用例: CornerNet-Saccade 用于离线处理,在不牺牲精度的情况下提高效率;和CornerNet-Squeeze用于实时处理,在不牺牲效率的情况下提升精度。

CornerNet-Lite 的两种变体在技术上都很新颖。在目标检测中 CornerNet-Saccade 是第一个将 saccades (滑动窗口)与基于关键点结合起来的。这个关键区别在于如何处理剪切图(像素或 feature maps) 先验。saccade-like 先验机制采用对每张裁剪图进行单目标检测(比方说,Fast R-CNN) 或对在一个包含附件子裁剪图的两级网络的每个裁剪图产生多个检测(比方说,自动对焦)。相反的,CornerNet-Saccade 则是在一个单级的网络上对每个裁剪图产生多个检测

在目标检测中 CornerNet-Squeeze 是第一个将 SqueezeNet 网络和堆叠沙漏架构进行整合和应用。先验是采用沙漏架构来获取较好的精度竞争力,但是尚不清楚沙漏架构在效率方面是否也有较好的竞争力。我们的设计和结果显示这也许是第一次,特别是在目标检测的上下文中。

贡献: 

(1). 提出了两个新颖的基于关键点的目标检测方法 CornerNet-Saccade 和CornerNet-Squeeze来提升效率。

(2). 在COCO数据集上,在基于关键点检测的 CornerNet-Saccade 提升了 6 倍的效率达到当前艺术级别;并且精度也从 42.2%AP提升到43.2%AP。

(3). 在COCO数据集上,对于实时目标检测 Co

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值