比Tiny YOLOv3小8倍,性能提升11个点,4MB的网络也能做目标检测

2019 年 10 月 9 日 极市平台

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~


来源:机器之心

作者:Alexander Wong等


在本文中,来自滑铁卢大学与 Darwin AI 的研究者提出了名为 YOLO Nano 的网络,他们通过人与机器协同设计模型架构大大提升了性能。 YOLO Nano 大小只有 4.0MB 左右,比 Tiny YOLOv2 和 Tiny YOLOv3 分别小了 15.1 倍和 8.3 倍,性能却有较为显著的提升。


链接:https://arxiv.org/abs/1910.01271


目标检测在计算机视觉领域是一个活跃的研究分支,而深度学习已经成为这一领域最前沿也是最成功的解决方案。但是,在边缘和移动设备中广泛部署神经网络模型需要大量的计算算力和内存。因此,近来研究领域主要在解决适合以上设备的神经网络。


本文便是这些研究中的一个,研究者提出了名为 YOLO Nano 的网络。这一模型的大小在 4.0MB 左右,比 Tiny YOLOv2 和 Tiny YOLOv3 分别小了 15.1 倍和 8.3 倍。在计算上需要 4.57B 次推断运算,比后两个网络分别少了 34% 和 17%。


在性能表现上,在 VOC2007 数据集取得了 69.1% 的 mAP,准确率比后两者分别提升了 12 个点和 10.7 个点。研究者还在 Jetson AGX Xavier 嵌入式模块上,用不同的能源预算进行了测试,进一步说明 YOLO Nano 非常适合边缘设备与移动端。


从两阶段目标检测开始的故事


目标检测任务目前有两种通行的解决方案,一种是两阶段目标检测,另一种是单阶段的。对于两阶段目标检测,首先需要神经网络识别目标(如在目标上打上定位框),然后对识别出的目标进行分类。另一种则是单阶段,直接使用网络对目标进行检测。两阶段的好处在于实现容易,但下游的分类任务依赖上游识别定位任务的表现。而单阶段方法尽管不需要首先识别目标,但加大了端到端实现目标检测的难度。


一般而言,两阶段目标检测方法准确性高,但速度不快;而单阶段的检测器速度快,准确率并达不到最高。不过随着基于关键点的方法越来越流行,单阶段不仅快,同时效果也不错。


在单阶段目标检测方法中,围绕效率而生的 YOLO 神经网络是一个非常有趣的存在,我们最常调用的检测器也是它了。YOLO 可以在 GPU 实现实时目标检测,而且效果还挺好。


然而,这些网络架构对于很多边缘和移动场景而言太大了(例如,YOLOv3 网络的大小为 240MB),而且因为计算复杂度(YOLOv3 需要多达 65B 的运算量)过高,在这些设备上的推断速度会很慢。为了解决这些问题,Redmon 等提出了 Tiny YOLO 家族的网络架构,可以在一定程度上牺牲目标检测性能,换取模型规模的极大缩小。


本研究中,研究者通过人机协作设计策略(human-machine collaborative design)的方法进行构建。在构建的过程中,首先设计主要的网络原型,原型基于 YOLO 网络家族中的单阶段目标检测网络架构。然后,将原型和机器驱动的设计探索策略结合,创建一个紧凑的网络。这个网络是高度定制化的,在模块级别上有着宏架构(macro-architecture)和微架构(micro-architecture),可用于嵌入式目标检测任务。


YOLO Nano 设计思路


YOLO Nano 在架构设计的中经过了两个阶段:首先设计一个原型网络,形成网络的主要设计架构;然后,使用机器驱动的方法进行探索设计。


  • 原型主体网络设计


首先是设计主要的网络原型,研究者创建了一个原始的架构(表示为ϕ),用于引导机器进行后续的探索设计。具体而言,研究者设计的网络基于 YOLO 家族中的单阶段目标检测架构。


YOLO 家族的网络架构最明显的特征是,它们不像基于「候选框」的网络那样需要构建一个 RPN,该网络会生成一系列定位目标的候选边界框,然后对生成的边界框进行分类。YOLO 家族的网络可以直接对输入的图像进行处理,然后生成输出结果。


这样一来,所有目标检测的预测都是将一张图像输入,直接得到输出,相比于 RPN 那种需要成百上千次的计算来得到最终结果而言省去了很多计算步骤,这使得 YOLO 家族的网络在运算上非常快,对于嵌入式目标检测任务而言也是最合适的。


  • 机器驱动的探索设计


在这一阶段,研究者让机器使用最初的原型网络、数据和人类提出的设计的要求做为指引,然后机器驱动的探索设计会决定模块级别的宏架构和微架构,用于最终的 YOLO Nano 网络。


具体来说,机器驱动的探索设计是通过生成式整合来实现的。这一方法可以决定最优的网络宏架构和微架构,并符合人类的要求。


生成式整合的总体目标是学习生成式的机器,用于生成符合设计要求、限制等条件的深度神经网络。决定生成器 G 可以形式化为一个带约束的最优化问题,即在给定一系列种子 S 的情形下,生成网络 {N_s|s ∈ S} 以最大化全局性能函数 U。在最大化过程中需要满足指示函数 1_r(·),1r(·) 被定义来表示人类提出的需求和限制条件。



YOLO Nano 架构设计


了解了 YOLO Nano 的设计思路后,我们再看看它的架构是什么样的。 如下图 1 所示,YOLO Nano 主要可以分为三部分,其中会有便捷连接连通不同抽象程度的特征图。

图 1:YOLO Nano 神经网络架构。注意其中 PEP(x) 表示残差 PEP 模块第一个映射层的 x 通道,FCA(x) 表示降维率为 x。


值得注意的是,YOLO Nano 有三种比较高效的模块,它们共同提升了整体建模的参数效率和运算效率。


  • 残差映射-扩张-映射宏架构


YOLO Nano 网络架构第一个非常值得关注的模块就是残差映射-扩张—映射(PEP)宏架构(Macro-architecture),它和原来 YOLO 家族的模块有一些不同。


残差 PEP 宏架构主要由以下四部分组成:


  • 一个 1*1 卷积的映射层,它将输入的特征图映射到较低维度的张量;

  • 一个 1*1 卷积的扩张层,它会将特征图的通道再扩张到高一些的维度;

  • 一个逐深度(depth-wise)的卷积层,它会通过不同滤波器对不同的扩张层输出通道执行空间卷积;

  • 一个 1*1 卷积的映射层,它将前一层的输出通道映射到较低维度。


残差 PEP 宏架构的使用可以显著降低架构和计算上的复杂度,同时还能保证模型的表征能力。


  • 全连接注意力宏架构


YOLO Nano 第二个值得注意的模块是,通过机器驱动设计的探索过程,研究者在神经网络引入了轻量级的全连接注意力(FCA)模块。FCA 宏架构由两个全连接层组成,它们可以学习通道之间的动态、非线性内部依赖关系,并通过通道级的乘法重新加权通道的重要性。


FCA 的使用有助于基于全局信息关注更加具有信息量的特征,因为它再校准了一遍动态特征。这可以更有效利用神经网络的能力,即在有限参数量下尽可能表达重要信息。因此,该模块可以在修剪模型架构、降低模型复杂度、增加模型表征力之间做更好的权衡。


  • 宏架构和微架构的异质性


对于第三点,YOLO Nano 不仅在宏架构(PEP 模块、EP 模块、FCA 以及各个 3×3 和 1×1 卷积层的多样化组合)方面存在高度异质性,同样在独立特征表征模块和层级这些微架构之间也会存在异质性。


YOLO Nano 架构具有高度异质性的优势在于,它可以使网络架构的每个模块都经过特定的设计,从而在模型架构、计算复杂度和表征能力之间实现更优的权衡。YOLO Nano 这种架构多样性还展示了机器驱动设计探索策略和生成式组合一样灵活,因为人类设计者或其它设计探索方法无法在如此细粒度的层级上自定义架构。


实验效果


为了研究 YOLO Nano 在嵌入式目标检测上的性能,研究者在 PASCAL VOC 数据集上检测了模型大小、目标检测准确率、计算成本三大指标。 为了体现对比,流行的 Tiny YOLOv2 和 Tiny YOLOv3 网络会作为基线模型。


如下表 1 展示了 YOLO Nano 、Tiny YOLOv2 和 Tiny YOLOv3 的模型大小与准确率。


表 1:紧凑网络在 VOC 2007 测试集上的目标检测准确率结果,输入图像大小为 416*416,最优结果用加粗展示。


最后,为了探索 YOLO Nano 在现实世界中的性能,尤其是在边缘设备中的表现,研究者在 Jetson AGX Xavier 嵌入式模块测试了 YOLO Nano 的推断速度与能源效率。 在 15W 和 30W 能源预算下,YOLO Nano 分别能实现∼26.9 FPS 和 ∼48.2 的推断速度。


这些实验都表明这篇论文提出来的 YOLO Nano 网络在准确率、模型大小和计算复杂度上提供了非常好的权衡,这种优势主要是通过人机协作的设计策略获得的,而且 YOLO Nano 在这种优势下也非常适合边缘和移动设备。



-End-


*延伸阅读




目标检测交流群


添加极市小助手微信(ID : cv-mart)备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳)即可进群。(已经添加小助手的好友直接私信)


△长按添加极市小助手


其他方向如目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等,也可扫码添加极市小助手拉你进群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~




△长按关注极市平台


觉得有用麻烦给个在看啦~  

登录查看更多
0

相关内容

Yolo算法,其全称是You Only Look Once: Unified, Real-Time Object Detection,You Only Look Once说的是只需要一次CNN运算,Unified指的是这是一个统一的框架,提供end-to-end的预测,而Real-Time体现是Yolo算法速度快。
最新《知识蒸馏》2020综述论文,20页pdf,悉尼大学
专知会员服务
157+阅读 · 2020年6月14日
专知会员服务
73+阅读 · 2020年5月21日
基于小样本学习的图像分类技术综述
专知会员服务
148+阅读 · 2020年5月6日
轻量级神经网络架构综述
专知会员服务
95+阅读 · 2020年4月29日
专知会员服务
160+阅读 · 2020年4月21日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
大盘点 | 性能最强的目标检测算法
极市平台
9+阅读 · 2019年7月8日
FoveaBox,超越Anchor-Based的检测器
极市平台
10+阅读 · 2019年4月22日
FCOS: 最新的one-stage逐像素目标检测算法
极市平台
15+阅读 · 2019年4月14日
目标检测论文阅读:DetNet
极市平台
9+阅读 · 2019年1月28日
CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进
极市平台
10+阅读 · 2018年7月20日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
Arxiv
6+阅读 · 2018年7月9日
Arxiv
5+阅读 · 2018年4月17日
Arxiv
8+阅读 · 2018年4月8日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关VIP内容
最新《知识蒸馏》2020综述论文,20页pdf,悉尼大学
专知会员服务
157+阅读 · 2020年6月14日
专知会员服务
73+阅读 · 2020年5月21日
基于小样本学习的图像分类技术综述
专知会员服务
148+阅读 · 2020年5月6日
轻量级神经网络架构综述
专知会员服务
95+阅读 · 2020年4月29日
专知会员服务
160+阅读 · 2020年4月21日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
相关资讯
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
大盘点 | 性能最强的目标检测算法
极市平台
9+阅读 · 2019年7月8日
FoveaBox,超越Anchor-Based的检测器
极市平台
10+阅读 · 2019年4月22日
FCOS: 最新的one-stage逐像素目标检测算法
极市平台
15+阅读 · 2019年4月14日
目标检测论文阅读:DetNet
极市平台
9+阅读 · 2019年1月28日
CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进
极市平台
10+阅读 · 2018年7月20日
Top
微信扫码咨询专知VIP会员