YOLO Nano---一种高度紧凑YOLO卷积神经网络的目标检测
英文:YOLO Nano: a Highly Compact You Only Look Once Convolutional Neural Network for Object Detection
中文:YOLO Nano---一种高度紧凑YOLO卷积神经网络的目标检测
论文下载链接:https://arxiv.org/abs/1910.01271
非官方的githubs实现链接:https://github.com/liux0614/yolo_nano
摘要
目标检测仍然是计算机视觉领域研究的⼀个活跃领域,通过设计⽤于解决目标检测的深度卷积神经⽹络,该领域已取得了相当⼤的进步和成功。尽管取得了这些成功,但是在边缘和移动场景下⼴泛部署此类目标检测⽹络的最⼤挑战之⼀是对计算和内存的⾼要求。因此,对有效的深度神经⽹络设计的研究兴趣⽇益增⻓架构适合边缘和移动应⽤。在这项研究中,我们介绍了YOLO Nano,这是⼀种⾼度紧凑的深度卷积神经⽹络,⽤于目标检测。利⽤⼈机协作设计策略来创建YOLO Nano,其中基于YOLO系列单发⽬标检测⽹络体系结构的设计原理,进⾏有原则的⽹络设计原型,并与机器驱动的设计探索相结合,以创建紧凑的⽹络⾼度定制的模块级宏体系结构和微体系结构设计,专为嵌⼊式对象检测任务⽽设计。拟议的YOLO Nano具有4.0MB的模型⼤⼩(分别⽐Tiny YOLOv2和Tiny YOLOv3⼩15.1x和> 8.3x),并且需要4.57B的操作来进⾏推理(分别> 34),⽽mAP仍达到69。在不同功率预算下,对Jetson AGX Xavier嵌入式模块的推理速度和功率效率进行的实验进一步证明了YOLO Nano在嵌入式场景中的功效。
1.引言
在计算机视觉领域中的一个活跃领域是目标检测,其目标不仅是在场景中定位感兴趣的对象,而且还为这些感兴趣的对象中的每一个分配一个类别标签。最近在目标检测领域取得的巨大成就源于深度学习的现代进展[8,7],特别是利用了深度卷积神经网络。最初的重点主要是提高准确性,从而导致越来越复杂的对象检测网络,例如SSD [11],R-CNN [2],Mask R-CNN [3]以及这些网络的其他扩展形式[6, 9、18]。尽管这样的网络展示了最新的目标检测性能,但由于计算和内存的限制,它们即使不是不可能部署在边缘设备和移动设备上也非常具有挑战性。实际上,在嵌入式处理器上运行时,甚至更快的变体,例如Faster R-CNN [15],也具有低单位数帧速率的推理速度。这极大地限制了此类网络在广泛应用中的广泛采用,例如无人驾驶飞机,视频监控,需要本地嵌入式处理的自动驾驶。
为了解决实现嵌⼊对象检测的这⼀挑战,⼀直在探索和⾼效深层神经⽹络结构的物体检测更⾮常适合边缘和移动设备设计的兴趣与⽇俱增 redmon2016you ; redmon2016yolo9000 ; YOLOv3 ;wu2016squeezedet ; MobileNetv1 ; shaĆee2017fast 。围绕效率⽽设计的⼀个特别有趣的对目标检测⽹络家族是YOLO系列神经⽹络架构 redmon2016you ;redmon2016yolo9000 ; YOLOv3 ,它利⽤多种设计原则来创建单发架构,该架构可以在⾼端台式机GPU上实现嵌⼊式对象检测性能。然⽽,这些⽹络架构仍然是许多边缘和移动场景(例如,过⼤的〜在YOLOv3架构的情况下,240MB),上边缘和移动处理器上运⾏时,他们推断的速度下降明显,由于计算复杂性(例如,>65B YOLOv3的操作)。为了解决这个问题,Redmon等。推出了Tiny YOLO系列⽹络架构,该系列⼤⼤缩⼩了模型尺⼨,但降低了对象检测性能。
在这项研究中,我们有动机探索⼀种⼈机协作设计策略,以设计⾼度紧凑的深度卷积神经⽹络来完成⽬标检测任务,其中有原则的⽹络设计原型与机器驱动的设计探索相结合。更具体地说,我们在这种⼈机协作设计策略中利⽤YOLO系列单发物体检测⽹络架构的设计原理来创建YOLO Nano,这是⼀个⾼度紧凑的⽹络,具有针对该应⽤量身定制的⾼度定制的模块级宏架构和微架构设计。嵌⼊式对象检测任务。
2.方法
在这项研究中,我们介绍了YOLO Nano,这是⼀种⾼度紧凑的深度卷积神经⽹络,⽤于使⽤⼈机协作设计策略AttoNets 设计的嵌⼊式对象检测 。⽤于设计YOLO Nano的⼈机协作设计策略包括两个主要设计阶段:i)有原则的⽹络设计原型,以及ii)机器驱动的设计探索。
2.1 原则性的⽹络设计原型
创建YOLO Nano的第⼀个设计阶段是有原则的⽹络设计原型设计阶段,在该阶段中,我们将基于⼈为驱动的设计原则创建⼀个初始的⽹络设计原型(称为φ),以指导机器驱动的设计探索阶段。更具体地说,我们根据YOLO系列单发架构redmon2016you的设计原理构建了⼀个初始⽹络设计原型 ;redmon2016yolo9000 ; YOLOv3 。YOLO系列⽹络体系结构的⼀个突出特点是,与基于区域提议的⽹络不同,后者依赖于构建区域提议⽹络来⽣成对象位于场景中的提议,然后对所⽣成的提议进⾏分类,⽽是利⽤⼀个单⼀的⽹络架构来处理输⼊图像并⽣成输出结果。这样,单个图像的所有对象检测预测都是在单个前向通过中进⾏的,相⽐之下,为获得基于区域提议的⽹络的最终结果,需要执⾏数百⾄数千次通过。这使得YOLO系列⽹络体系结构的运⾏速度明显加快,因此更适
合嵌⼊式对象检测。
本研究中使用的初始设计原型从YOLO系列网络体系结构中汲取了灵感,并由功能表示模块的堆栈组成,这些模块之间的快捷连接与[14]一样。 同样,与[14]一样,特征表示模块的配置方式类似于特征金字塔网络[10],因此它能够以三种不同的比例来表示特征。 这些特征表示模块后面是几个卷积层,输出是一个三维张量,该张量对三种不同比例的边界框,客观性和类预测进行编码。 结果,该初始设计原型体系结构设计允许有效的多尺度目标检测。
最终YOLO Nano网络体系结构中各个模块和层的实际宏体系结构和微体系结构设计以及网络模块的数量,将留给机器驱动的设计探索阶段,以便自动确定给定的数据以及人为指定的 设计要求和约束条件是专门针对边缘和移动方案而设计的,具有有限的计算和存储功能。
2.2 机器驱动的设计探索
以初始网络设计原型(ϕ),数据以及满足边缘和移动用途的人员指定设计要求为指导,然后利用机器驱动的设计探索阶段来确定模块级宏体系结构和微体系结构设计 拟议的YOLO Nano网络架构。 更具体地说,本研究以生成综合的形式实现了机器驱动的设计探索[22],它能够确定在人类指定的要求和约束范围内最终网络架构的最佳宏架构和微架构设计。 生成综合的总体目标是学习可生成满足设计要求和约束的深度神经网络的生成机器,其描述如下。在生成综合的概念中将其表述为用于确定生成器G的约束优化问题,该生成器G在给定种子S的情况下可以生成最大化通用性能函数U的网络{Ns | s∈S}(例如[20] ),同时满足通过指标函数1r(·)定义的要求和约束:
由于在等式中提出的约束优化问题中求解全局最优解在计算上是棘⼿的。 1给出可⾏区域的极⼤值,我们改为通过迭代优化来求解近似解 ^ G,其中初始解 ^ G 0由φ,U和1 r(⋅ )指导,并逐步更新,使得每个连续达到⽐先前的近似解更⾼的U的近似解 ^ G k(即 ^ G 1, …,^ G k − 1等),但仍受 1 r(⋅ )约束。最终的近似解 ^ g ^然后⽤于创建所提出的YOLO纳⽶⽹络。
为了指导⽣成综合过程学习⽤于⽣成边缘和移动场景的对象检测⽹络的⽣成机器,这些对象检测⽹络不仅⾼效,紧凑,⽽且还提供强⼤的目标检测性能,关键步骤之⼀是配置指示器功能1 r(⋅)强制执⾏适当的设计要求和约束。在本研究中,指标函数1 r(⋅ )设置为:i)VOC 2007的平均精度(mAP)≥65%,ii)计算成本≤5B操作,以及iii)8位权重精度。设置计算成本约束以使所得YOLO Nano⽹络的计算成本低于Tiny YOLOv3 YOLOv3的成本 ,Tiny YOLOv3 YOLOv3是嵌⼊式目标检测最受欢迎的紧凑型⽹络之⼀。
3.YOLO Nano设计架构
所建议的⽤于嵌⼊式对象检测的YOLO Nano⽹络的⽹络架构如图1所示 ,下⾯有⼀些有趣的观察值得讨论。
3.1 剩余投影-展开-投影宏体系结构
关于YOLO Nano⽹络体系结构与YOLO⽹络家族有显着不同的第⼀个值得注意的发现是,它由具有独特的剩余投影-扩展-投影(PEP)宏体系结构的模块,以及诸如扩展-投影(EP)宏体系结构组成。在MobileNetv2中 找到的 那些;mnas ; Fairnas。残余PEP宏架构包括:i)被1个的投影层× 1卷积该项⽬输出通道与较低维ii)⽤1膨胀层的输出张量×1卷积,将通道数扩展到更⾼的维度,iii)深度卷积层,对来⾃扩展层的各个输出通道中的每个输出通道使⽤不同的滤波器执⾏空间卷积,iv)投影层具有1 × 1卷积,将输出通道投影到维数较⼩的输出张量中。残留的PEP宏体系结构的使⽤可显着降低体系结构和计算复杂性,同时保留模型的表现⼒。
3.2 完全连接的注意⼒宏架构
关于YOLO Nano⽹络体系结构的第⼆个值得注意的发现是,通过机器驱动的设计探索过程在⽹络内战略性地引⼊了轻量级全连接注意(FCA),这与其他设计中的固定模块级引⼊形成了对⽐勘探⽅法 的多边核⽅案 。就像 挤压沸⽯⼀样 FCA宏架构由两个完全连接的层组成,这些层学习通道之间的动态,⾮线性相互依存关系,并产⽣调制权重,以通过按通道乘法对通道进⾏重新加权。FCA的使⽤有助于基于全局信息进⾏动态功能重新校准,从⽽更加关注信息功能,从⽽可以更好地利⽤可⽤⽹络容量。反过来,这可以在减少体系结构和计算复杂度以及模型表示性之间实现强⼤的平衡。
3.3 宏架构与微架构异质性
关于YOLO Nano⽹络架构的第三项值得注意的发现是,不仅在宏架构(PEP模块,EP模块,FCA以及各种3 × 3和1 ×1卷积层),但也涉及各个要素表示模块和层的微体系结构,⽹络中的每个模块或层都具有唯⼀的微体系结构。YOLO Nano⽹络体系结构具有⾼度的微体系结构异质性的好处在于,它可以使⽹络体系结构的每个组件都经过独特地定制,以在体系结构和计算复杂性与模型表达性之间实现⾮常强⼤的平衡。YOLO Nano的这种体系结构多样性还展示了利⽤机器驱动的设计探索策略的优势,这种策略像⽣成⼀样灵活,这对于⼈类设计师来说是不可能的,或者其他设计探索⽅法(例如mnas)也⽆法实现 ;Fairnas 将⽹络体系结构定制为此级别的体系结构。
4. 实验结果与讨论
为了研究YOLO Nano在嵌⼊式物体检测中的功效,我们在PASCAL VOC数据集上检查了其模型⼤⼩,物体检测精度和计算成本。为了进⾏⽐较,Tiny YOLOv2⽹络 redmon2016yolo9000 和TinyYOLOv3⽹络 YOLOv3 鉴于它们是模型尺⼨⼩,计算复杂度低的⼀种,因此它们被⽤作⽤于嵌⼊对象检测的最流⾏的紧凑型深度神经⽹络,以此作为基准。VOC2007 / 2012数据集包含已⽤20种不
同类型的对象注释的⾃然图像。使⽤VOC2007 / 2012训练数据集对深度神经⽹络进⾏了训练,并根据VOC2007测试数据集计算了平均平均精度(mAP),以评估深度神经⽹络的对象检测准确性,这是研究⽂献中的标准做法。
表 1显示了所建议的YOLO Nano⽹络以及Tiny YOLOv2和Tiny YOLOv3的模型⼤⼩和对象检测精度。⾸先,我们发现YOLO Nano的模型⼤⼩为4.0MB,分别⽐Tiny YOLOv2和Tiny YOLOv3⼩>15.1 ×和> 8.3 ×,这在内存受限的情况下对于边缘和移动⽅案⾮常重要。其次,YOLO纳⽶,尽管模型尺⼨为⼩得多,实现了69.1%的地图上的VOC 2007测试数据集,这是〜 12%和〜分别⽐Tiny YOLOv2和Tiny YOLOv3⾼10.7%。第三,YOLO纳⽶只需要4.57⼗亿操作以执⾏推断,这是>34%,⽐微⼩YOLOv2降低和〜17%,⽐微⼩YOLOv3降低。
最后,为了研究嵌⼊式⽅案中YOLO Nano的实际性能,我们评估了在不同功率预算下在Jetson AGX Xavier嵌⼊式模块上运⾏的YOLO Nano的推理速度和功率效率。在15W和30W的功率预算,YOLO纳⽶实现的推理速度〜 26.9 FPS和〜 48.2 FPS,分别导致功率效率〜 1.97张/秒/瓦和〜分别1.61张/秒/瓦。这些实验结果表明,通过⼈机协作设计策略创建的拟议YOLO Nano⽹络在精度,⼤⼩和计算复杂性之间实现了强⼤的平衡,使其⾮常适合边缘和移动场景的嵌⼊式对象检测。
参考文献
参考文献就不翻译了,可以去看原作者的论文