介绍一篇实时性好准确率高的论文:CornerNet-Lite

电子说

1.3w人已加入

描述

本文介绍一篇实时性好准确率高的论文:CornerNet-Lite。该论文由普林斯顿大学几位学者提出。目前CornerNet-Lite被认为是目标检测(Object Detection)中 FPS和mAP trade-off的最佳算法。

之所以说:“吊打YOLOv3”,因为CornerNet-Lite在FPS和mAP上都超过了YOLOv3,具体详见下文介绍。

《CornerNet-Lite: Efficient Keypoint Based Object Detection》

算法

摘要

基于关键点的方法是目标检测中相对较新的范例,消除了对anchor boxes的需求并提供了简化的检测框架。基于Keypoint的CornerNet在单级(single-stage)检测器中实现了最先进的精度。然而,这种准确性来自高处理代价。在这项工作中,团队解决了基于关键点的高效目标检测问题,并引入了CornerNet-Lite。

CornerNet-Lite是CornerNet的两种有效变体的组合:CornerNet-Saccade,它使用注意机制消除了对图像的所有像素进行彻底处理的需要,以及引入新的紧凑骨干架构的CornerNet-Squeeze。

这两种变体共同解决了有效目标检测中的两个关键用例:在不牺牲精度的情况下提高效率,以及提高实时效率的准确性。CornerNet-Saccade适用于离线处理,将CornerNet的效率提高6.0倍,将COCO的效率提高1.0%。

CornerNet-Squeeze适用于实时检测,提高了流行的实时检测器YOLOv3的效率和准确性(CornerNet-Squeeze为34ms|34.4mAP;COCO上YOLOv3为39ms|33mAP)。

这些贡献首次共同揭示了基于关键点的检测对于需要处理效率的应用的潜力。

算法

背景

CornetNet 在 ECCV 2018 (oral)上横空出世,引领一波基于关键点的目标检测狂潮(最近anchor-free盛行),但这类算法(很多one-stage)也有缺点。虽然mAP有很大提升,但速度上都远不能达到实时(有些论文就避而不谈FPS了)。这其实可以看成学术阶段的成果,但距离落地应用还有一点距离。

而 本文CornetNet-Lite 是对CornetNet进行优化,提出了两种算法:

CornerNet-Saccade

CornerNet-Squeeze

CVer作者Amusi认为:

CornerNet-Saccade是在追求高准确率(mAP)的同时,尽可能提高速度(FPS)。即准确率优先,对标CornerNet等算法。创新点:引入Saccade思想

CornerNet-Squeeze是追求高实时性(FPS)的同时,尽可能提高准确率(mAP),即速度优先,其对标于YOLOv3等算法。创新点:引入SqueezeNet优化思想

正文

CornerNet-Saccade

人类视觉中的 Saccades(扫视运动)是指用于固定不同图像区域的一系列快速眼动。在目标检测算法中,我们广义地使用该术语来表示在推理期间选择性地裁剪(crop)和处理图像区域(顺序地或并行地,像素或特征)。

CornerNet-Saccade中的saccades是single type and multi-object。CornerNet-Saccade检测图像中可能的目标位置周围的小区域内的目标。它使用缩小后的完整图像来预测注意力图和粗边界框;两者都提出可能的对象位置,然后,CornerNet-Saccade通过检查以高分辨率为中心的区域来检测目标。它还可以通过控制每个图像处理的最大目标位置数来提高效率。具体流程如下图所示。

算法

CornerNet-Saccade设计了一种新的backbone:Hourglass-54(含3个hourglass模块,深度为54)。原CornerNet中使用的是Hourglass-104(含2个hourglass模块,深度为54)。

注:crop在CornerNet-Saccade中作用非常大

算法

CornerNet-Squeeze

与专注于subset of the pixels以减少处理量的CornerNet-Saccade相比,而CornerNet-Squeeze探索了一种减少每像素处理量的替代方法。在CornerNet中,大部分计算资源都花在了Hourglass-104上。

Hourglass-104由残差块构成,其由两个3×3卷积层和跳连接(skip connection)组成。尽管Hourglass-104实现了很强的性能,但在参数数量和推理时间方面却很耗时。为了降低Hourglass-104的复杂性,本文将来自SqueezeNet和MobileNets 的想法融入到 lightweight hourglass 架构中。

主要操作是:

受SqueezeNet启发,CornerNet-Squeeze将 residual block 替换为SqueezeNet中的 Fire module 

受MobileNet启发,CornerNet-Squeeze将第二层的3x3标准卷积替换为 3x3 深度可分离卷积(depth-wise separable convolution)

具体如下表所示:

算法

实验结果

开源代码是基于PyToch1.0.0,在COCO数据集上进行测试。测试硬件环境为:1080ti GPU + Intel Core i7-7700k CPU。

One-stage算法性能比较

算法

CornerNet-Saccade算法性能比较

可见 Hourglass-54要强于Hourglass-104,另外gt attention对涨点帮助很大

算法

CornerNet-Squeeze算法性能比较

见证奇迹的时候来了!CornerNet-Squeeze吊打YOLOv3,因为即使是C语言版本的YOLOv3,都已被全方位(mAP+FPS)超过。

注:日常期待一下YOLOv4,毕竟YOLOv3已经是去年3月的"老人"了。

算法

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分