YOLOv6设计来源 | 具有硬件感知的神经网络设计

作者 | 小书童  编辑 | 集智书童

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【目标检测】技术交流群

后台回复【2D检测综述】获取鱼眼检测、实时检测、通用2D检测等近5年内所有综述!

bee0bca65fe6538e6b1072ba02f6fccc.png

本文提出了一种卷积神经网络的硬件高效架构,它具有类似repvgg的架构。

浮点值或参数是评估网络效率的传统度量,网络对硬件(包括计算能力和内存带宽)不敏感。因此,如何设计一个神经网络来有效地利用硬件的计算能力和存储带宽是一个关键问题。

本文提出了一种硬件感知神经网络的设计方法。基于该方法作者设计了高效Rep系列卷积网络,该网络对高计算硬件(例如GPU)友好,并应用于YOLOv6目标检测框架。

YOLOv6代码在:https://github.com/meituan/YOLOv6

1、简介

自VGG在图像分类任务中取得成功以来,卷积神经网络设计已经引起了学术界和工业界的广泛关注。目前,已有大量经典网络被提出,如Inception和Resnet。这些精心设计的架构使得图像分类的准确性越来越高。

除了手动设计,最近的神经架构搜索还自动设计了几个代表性的网络,如Nasnet和AmoebaNet。尽管复杂的网络为图像分类、目标检测和分割等视觉任务带来了成功,但这些网络在部署的硬件上可能无法获得合适的精度和速度平衡。

针对硬件效率的深度学习网络设计和部署已经得到了一致的研究。传统的推理效率评估指标是浮点运算(FLOP)和参数计数。然而,这些度量不能表示与硬件的关系,例如内存访问成本和I/O吞吐量。

93ade388ba9b58819815ec2c9003c1f2.png

图3显示了计算能力与内存资源之间的关系。因此,提出了一个重要的问题:如何设计一个具有强感知能力的友好网络,以实现更好的精度和速度平衡?

为了解决这个问题,作者探索了一些具有竞争力的新架构,并将其应用于YOLOv6目标检测框架。RepVGG是一种新型网络,具有3x3卷积核,通过GPU或CPU上的winograd算法进行了高度优化。单路径模型可以在GPU等设备上快速训练和推断。

c5dfc6839ede9b148a902fe77ee39342.png

图4显示了rep conv在训练状态和推理状态之间的转换。在训练状态下,通过额外的1x1 conv和identity,rep conv可以保证训练期间的准确性。在推理状态下,重参化结构可以同等地转换为推理状态。

在YOLOv6-1.0中,基于rep conv设计了名为Efficient rep主干和rep PAN neck架构,以有效利用GPU的计算资源。在YOLOv6-2.0中,为了平衡计算和内存资源,探索了一种名为Bep(Beer-mug)单元和BepC3(或名为CSPStackRep)块的新结构。

与rep-conv相比,作者发现在某些状态下,Bep单元是一个更有效的基本神经网络单元。尽管RepVGG提出rep风格的多分支训练可以达到与原始多分支训练(如resnet)类似的性能,但作者发现rep风格网络的精度-速度权衡在很大程度上降低。因此,设计了适用于YOLOv6-2.0的CSPBep主干和CSPRepPAN颈部,他们都具有Bep单元和BepC3块结构。

dc7c04e8e7a148ae28cabd350db0f3bf.png

基于以上考虑,作者将混合策略应用于YOLOv6,即在小尺寸中选择单分支模型,在大尺寸中选择多分支模型。图1和图2描述了与其他目标检测器类似的精度-速度权衡。

2、相关工作

2.1、神经网络设计

VGG网络实现了ImageNet分类的最高精度,达到70%以上,已经提出了许多相关创新,例如GoogLeNet和Inception网络是在多分支架构中设计的。ResNet是一种具有代表性的双分支网络,在工业中得到了广泛应用。在repvgg提出之前,单路径网络在某些设备上显示出了高效率。

2.2、神经网络架构搜索

神经结构搜索(NAS)是一种新的技术,旨在与人工设计相比实现网络的自动设计。通过手动设计空间设计,NAS可以以巨大的资源成本自动生成大量网络。目前,为了节省计算资源,已经提出了低成本的神经网络搜索,例如One For All等。

2.3、具有硬件感知的神经网络设计

最近,已经提出了诸如MobileOne和TRT-VIT等多种新型网络。考虑到设备的性能,这些网络是手动设计的。除了关于精度或参数的度量外,推理速度被同时考虑,这被称为硬件感知神经网络设计。

本文的主要贡献:
  1. 提出了Bep unit、Repblock和BepC3嵌段的新结构。

  2. 提出了一种新型的EfficientRep、Rep-PAN、CspBep和CSPRepPAN网络。

  3. 提出了具有计算能力和内存带宽平衡的新型网络设计,并针对不同大小的模型采用了各种策略。

3、本文方法

3.1、纯Repvgg风格高效设计

eb0c51be69c9d1f43ad72b2216c2e986.png

Repvgg-style conv具有3x3 conv的结构,后跟ReLU,可以有效地利用硬件计算。在训练状态下,Repvgg-style的conv由3x3分支、1x1分支和identity组成(图4)。通过重参化,多分支结构在推理状态下转换为单分支3x3 conv。如图5和图6所示,设计了名为EfficientRep主干和Rep PAN颈部的Repvgg风格网络,该网络对GPU友好,并应用于YOLOv6检测框架(YOLOv6-v1)。

a7f634453912f499c77441f554488006.png

然而,与csp风格的YOLO系列相比,当YOLOv6-v1增长到中等尺寸时,推理速度减慢得太快,精度也没有竞争力。如表1所示,纯repvgg-style YOLOv6m无法实现类似的精度-速度权衡。因此,探索了用于大尺寸模型的新型结构,如多路径结构。

883e00ec59f08a9a115c1a5c74ce1d6d.png

3.2、多路径高效设计

292efafc8a68911624dfd4ecce1baa3d.png

为了解决纯repvgg型网络无法获得预期的精度-速度权衡的问题,提出了一种新的Bep单元结构。Bep单元的细节如图7所示,多个rep conv通过额外的shortcut线性连接。使用Bep单元设计了一个新的主干和颈部,分别命名为CSPBep和CSPRepPAN。在YOLOv6-v2中应用了上述结构,并实现了更好的精度和速度权衡。

d670a7510cd856541151dbab033503b7.png

CSP-Style是一种广泛应用于YOLO系列框架的高效设计,如YOLOv5、PPYOLOE等。CSP-Style结构使用跨阶段部分网络,在减少计算量的同时实现了更丰富的梯度组合。将Bep单元与CSP-Style结构相结合,设计了一种名为BepC3块的新结构,以平衡精度和推理速度。BepC3的设计如图8所示,它由CSP-Style结构和Bep单元的Repblock组成。如表I所示,BepC3块的改进,准确度和速度均达到预期的平衡。

基于BepC3块,作者分别设计了CSPBep主干和CSPRepPAN颈部,从而得到YOLOv6-v2模型。对于YOLO系列中的CSP-Style网络,默认情况下,partial ratio为1/2。在YOLOv6-v2的设计中,为YOLOv6m应用了2/3的partial ratio,为YOLOv2l应用了1/2的partial ratio。

3.3、缩放策略

在YOLOv5之后都开始使用深度乘数和宽度乘数的比例策略来生成各种大小的模型。在YOLOv6-v1和YOLOv6-v2中,Backbone的深度设置均为[1,6,12,18,6]。此外,宽度设置为[64,128,256,512,1024]。Neck的深度设置均为[12,12,12,12],宽度设置为[256,128,128,256,256,512]。表II显示了YOLOv6中应用的特定深度乘数和宽度乘数。

6c1ff62ed6da6b04bb85d0f2dbf31984.png

4、实验

d1bbbdd2af46c3afa05b213cdd3a4dba.png

5、参考

[1].EfficientRep: An Efficient Repvgg-style ConvNets with Hardware-aware Neural Network Design.

国内首个自动驾驶学习社区

近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

fbc71237b73b44019ef0fc4748830bcf.jpeg

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;

ddb7f2eacfe4e7fd6fc384e86e1fc13c.jpeg

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值