欢迎重视我的大众号 [极智视界],获取我的更多笔记分享
大家好,我是极智视界,本文解读一下 更高、更快、更强的 YOLOv7:Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors。
在 5FPS 到 160 FPS的范围内,YOLOv7 的速度和精度都超过了一切已知的方针检测器。在 V100 上一切已知的 30 FPS或更快的实时方针检测器中,YOLOv7 的精确率最高,AP 到达 56.8%。YOLOv7-E6 方针检测器 (56 FPS, 55.9% AP),相比根据 transformer 的检测器 SWIN-L Cascade-Mask R-CNN (9.2 FPS, 53.9% AP),在速度上要高出 509%,在精度上高出 2%;相比于根据 卷积 的检测器 ConvNeXt-XL Cascade-Mask R-CNN (A100 上 8.6 FPS, 55.2% AP),在速度上高出 551%,在精度上高出 0.7%。别的 YOLOv7 速度和精度上还优于其他一些检测器,如:YOLOR、YOLOX、Scaled-YOLOv4、YOLOv5、DETR、Deformable DETR、DINO-5scale-R50、ViT-Adapter-B 等。愈加亲民的是,YOLOv7 只在 MS COCO 数据集上从头开始练习,而不运用任何其他数据集或预练习权重。源代码在:[https:// github.com/ WongKinYiu/ yolov7](https:// github.com/ WongKinYiu/ yolov7)。
1. 简介
实时方针检测是核算机视觉中一个十分重要的论题,是 CV 必不可少的部分,例如,多方针盯梢、自动驾驶、机器人、医学图画剖析等运用均需求实时方针检测。履行实时方针检测的核算设备一般是一些 mobile CPU 或 GPU 以及 不同厂商生产的 NPU。如苹果的 Apple neural engine、英特尔的 neural compute stick、英伟达的 Jetson AI 边际设备、谷歌的 edge TPU、高通的 neural processing engine、联发科的 AI processing unit 以及 耐能的 AI SoCs 都归于 NPU。上面说到的一些边际设备专心于加速不同的 OP,如一般卷积、深度卷积或 MLP。论文中,作者提出的实时方针检测器,首要是期望它能够一起支持移动 GPU 以及 边际和云端的 GPU。
近年来,针对不同边际设备的实时方针检测器仍在不断发展。例如,MCUNet 和 NanoDet 的提出,首要重视处理低功耗单片机和进步边际 CPU 上的推理速度。而 YOLOX 和 YOLOR 等办法则专心于进步各种 GPU 的推理速度。近年来,实时方针检测器的发展首要集中在高效体系架构的规划上。关于能够在 CPU 上运用的实时方针检测器,它们的规划首要根据 MobileNet、ShuffleNet 或 GhostNet。另一种干流的实时方针检测器是针对 GPU 开发的,它们大多运用 ResNet、DarkNet 或许 DLA,然后运用 CSPNet 战略来优化架构。论文提出办法的重视方向不同于现在干流的实时方针检测器。除了架构的优化以外,还将要点重视练习进程的优化上,要点评论一些能够在不添加推理成本的情况下,只经过添加练习成本能够进步方针检测精确性的优化模块和优化办法。作者将这样的模块和优化办法称为 trainable bag-of-freebies。
近年来,模型重参数化 re-parameterization 和 动态label分配 已经成为网络练习和方针检测中的焦点。在这两个新概念提出后,方针检测器的练习发展遇到了许多新问题。关于模型重参数化,作者结合梯度传达途径的概念,剖析了不同网络中各层的模型重参数化战略,提出了 规划的重参数化模型。关于动态标签分配技能,多输出层模型的练习往往会发生新的问题:怎么为不同分支的输出分配动态方针。关于这个问题,作者提出了一种新的标签分配办法,称为 coarse-to-fine lead guided label assignment。
论文的首要贡献总结如下:
(1) 规划了几种 trainable bag-of-freebies 办法,使实时方针检测器在不添加推理成本的情况下大大进步了检测精度;
(2) 在方针检测办法的发展中,作者发现了两个新的问题,即重参数化模块怎么替代本来的模块,以及动态标签分配战略怎么处理不同输出层的赋值。针对这些问题,提出了解决办法;
(3) 针对实时方针检测器,提出了 扩展 和 复合缩放 办法,能够有用的运用参数和核算;
(4) 提出的办法能够有用地减少最先进实时方针检测器 40% 左右的参数和 50% 左右的核算量,具有愈加速的推理速度和更高的检测精度。
2. 相关作业
2.1 实时方针检测器
现在最先进的实时方针检测器首要根据 YOLO 和 FCOS。要成为最先进的实时方针检测器,一般需求有以下特征:
(1) 一个更快、更强的网络架构;
(2) 一种更有用的特征集成办法;
(3) 一种愈加精确的检测办法;
(4) 一个愈加鲁棒的丢失函数;
(5) 一种愈加高效的标签分配办法;
(6) 一种更高效的练习办法。
本文中,作者不打算探索需求额定数据或大模型的自监督学习或知识蒸馏办法,相反,针对上述 (4)、(5)、(6) 的最新办法衍生出的问题,规划新的 trainable bag-of-freebies 办法。
2.2 模型重参数化
模型重参数化技能 是指在推理阶段将多个核算模块合并为一个。模型重参数化技能能够看做是一种集成技能,能够将其分为两类,即 模块级集成 和 模型级集成。为了取得终究的推理模型,有两种常见的模型级重参数化实现:一种是运用不同的练习数据练习多个相同的模型,然后均匀多个练习模型的权重;别的一种是对不同迭代次数下的模型权重进行加权均匀。模块级重参数化是近年来比较热门的研究课题,这种办法在练习期间将一个模块拆分为多个相同或不同的模块分支,并在推理阶段将多个分支模块集成为一个彻底等价的模块。但是,并不是一切提出的重参数化模块都能够完美的运用于不同的架构。考虑到这一点,作者规划了新的重参数化模块,并为各种架构规划了相关的运用战略。
2.3 模型缩放
模型缩放是一种扩大或缩小已经规划好的模型,使其适合不同核算设备的办法。模型缩放办法一般运用不同的缩放因子,如分辨率 (输入图画的大小)、深度 (层数)、宽度 (通道数) 和 stage (特征金字塔的数量),然后在网络参数的数量、核算量、推理速度和精度上到达杰出的权衡。网络架构查找 (NAS) 是一种常用的模型缩放办法,NAS 能够从查找空间中自动查找适宜的缩放因子,而无需界说过于杂乱的规矩。NAS 的缺陷是需求十分贵重的核算来完结模型缩放因子的查找。在《Fast and accurate model scaling》中,研究者剖析了缩放因子与参数量和 OP 之间的联系,试图直接猜测一些规矩,然后得到模型缩放所需求的缩放因子。经过查阅文献,作者发现几乎一切的模型缩放办法都是独立剖析单个缩放因子的,甚至复合缩放战略中的办法也是独立优化缩放因子的,这是因为大多数盛行的 NAS 架构都是在处理不太相关的缩放因子。作者观察到,一切根据级联的模型,如 DenseNet 或 VoVNet,当这些模型的深度被缩放时,会连带改动某些层的输入宽度。考虑到论文提出的模型是级联的,所以有必要为提出的模型规划一种新的复合缩放办法。
3. 架构
3.1 扩展的高效层聚合网络
在大多数关于规划高效架构的文献中,首要考虑的无非是参数的数量、核算量和核算密度。Maet 等人还从内存访问价值的特点动身,剖析了 输入/输出通道比率、架构的分支数量和 element-wise OP 对网络推理速度的影响。Dollar 等人在履行模型缩放时还考虑了激活,即更多地考虑卷积层输出张量中的元素数量。下图 b 中CSPVoVNet 的规划是 VoVNet 的变体。CSPVoVNet 的架构除了考虑上述的基本规划问题外,还对梯度途径进行了剖析,使不同层的权重能够学习到愈加多样化的特征。下图 c 中的 ELAN 考虑了:怎么规划一个高效的网络。答案是:经过控制最短最长梯度途径,深度网络能够有用学习和收敛。在论文中,作者提出了根据 ELAN 的 Extended-ELAN (E-ELAN),其首要架构如下图 d。
在大规模 ELAN 中,不管梯度途径长度和核算块的堆叠数量怎么,都能够到达安稳状况。但若无束缚地叠加更多的核算块,或许会损坏这种安稳状况,下降参数运用率。作者提出的 E-ELAN 架构,运用 扩展expand、重新洗牌shuffle、合并基数merge cardinality 来实现不损坏原有梯度途径的情况下,不断增强网络学习的才能。在模型架构上,E-ELAN 只是改动了核算块的结构,而过渡层的结构彻底不变。作者的战略是运用组卷积来扩展核算块的通道和基数,对一个核算层的一切核算块,运用相同的组参数和通道乘法器,然后将每个核算块核算出的 feature map,依照设定的组参数 g,重新洗牌成 g 组,然后拼接在一起。此刻,每组 feature map 中的通道数将与原架构中的通道数相同。最后,添加 g 组 feature map 来履行合并基数。除了坚持本来 ELAN 的规划架构外,E-ELAN 还能够引导不同的核算块 groups 学习更多不同的特征。
3.2 根据级联模型的模型缩放
模型缩放的首要目的是调整模型的一些特点来生成不同尺度的模型,以满足不同推理速度的需求。例如,EfficientNet 的缩放模型考虑了宽度、深度和分辨率;Scaled-YOLOv4 的缩放模型考虑了调整 stages 的数量。在《Fast and accurate model scaling》中,作者剖析了在进行宽度和深度缩放时,一般卷积和组卷积对参数量和核算量的影响,并以此规划了相应的模型缩放办法。
以上办法首要运用于 PlainNet 或 ResNet。当这些架构在履行扩大或缩小时,每一层的入度和出度不会发生改变,因而咱们能够独立剖析每个缩放因子对参数量和核算量的影响。但是,假如将这些办法运用于根据级联的架构时,作者发现当对深度进行扩大或缩小时,核算块之后的转换层的入度将会减少或添加,如下图 a 和 b。
从上述现象能够估测,关于根据级联的模型,咱们不能独自剖析不同的比例因子,而有必要综合考虑。以按比例扩大深度为例,这将导致过渡层 transition layer 的输入通道和输出通道的比例改变,这或许会导致模型在硬件上的运用。所以,当咱们缩放一个核算块的深度因子时,还有必要核算该块 block 的输出通道的改变,然后在过渡层上履行宽度缩放,并进行相同的深度更改,成果如下图 c。作者提出的复合缩放办法既能够坚持模型初始规划时的特征,又能坚持最优结构。
4. Trainable bag-of-freebies
4.1 Planned re-parameterized convolution
虽然 RepConv 在 VGG 上已经取得了优异的功能,但当作者将其直接运用于 ResNet 和 DenseNet 及 其他架构时,其精度会显著下降。作者用梯度流传达途径来剖析怎么将重参数化的卷积与不同的网络相结合,并相应地规划了 规划的重参数化卷积 (Planned re-parameterized convolution)。
RepConv 实际上是在一个卷积层中结合了 3×3 卷积、1×1 卷积 和 identity衔接。经过剖析 RepConv 与不同架构的结合及其功能,作者发现 RepConv 中的 identity衔接 损坏了 ResNet 中的残差 和 DenseNet 中的拼接,不同的 feature maps 提供了更多的梯度多样性。根据上述原因,作者运用没有 identity衔接 的 RepConv (RepConvN) 来规划 规划的重参数化卷积架构。作者认为,当一个带有残差 或 拼接的卷积层被 重参数化卷积所替代时,应该不存在 identity衔接。如下图展现了作者在规划的在 PlainNet 和 ResNet 中运用 规划的重参数化卷积 的示例。
4.2 Coarse for auxiliary and fine for lead loss
深度监督是深度网络练习中常用的一种技能,其首要思维是在网络中间层添加额定的辅佐头,以此作为辅佐丢失来给浅层网络权重作辅导。即使关于 ResNet 和 DenseNet 这样一般收敛杰出的架构,深度监督依然能够进步模型在许多使命上的功能。下图 a、b 别离展现了 没有 和 有 深度监督的方针检测器架构。在论文中,作者把终究输出的头部称为 引导头lead head,将辅佐练习的头部称为 辅佐头auxiliary head。
接下来要评论标签分配问题。曩昔,在深度网络的练习中,标签一般就是指 ground truth,根据给定的规矩生成硬标签。但是近年来,以方针检测为例,研究人员往往运用网络猜测输出的质量和散布,再考虑 ground truth 实在值,然后运用一个核算和优化的办法来生成可靠的软标签 soft label。例如,YOLO 运用 bounding box 回归猜测 IOU 和 ground truth 作为方针的软标签。在论文中,作者将猜测成果和 ground truth 相结合并分配软标签的机制称为 “标签分配器 label assigner”。
不管 auxiliary head 或 lead head 的情况怎么,都需求对终究方针进行深度监督练习。作者在开发软标签分配器相关技能的进程中,偶然发现了一个新的衍生问题,即:怎么分配软标签给 auxiliary head 和 lead head。相关文献还没有讨论过这个问题。如下图c,现在最盛行的办法是将 auxiliary head 和 lead head 分隔,运用各自的猜测成果和 ground truth 进行标签分配。本文提出的办法是一种经过 lead head 猜测来一起引导 auxiliary head 和 lead head 标签分配的办法。换句话说,就是以 lead head 猜测为辅导,生成从粗到细 coarse-to-fine 的层次标签,别离用于 auxiliary head 和 lead head 学习。提出的两种深度监督标签分配战略别离如下图d 和 e。
Lead head guided label assigner 首要根据 lead head 的猜测成果和 ground truth 进行核算,经过优化生成软标签。这套软标签将作为 auxiliary head 和 lead head 的 target 来练习模型。这样做的原因是 lead head 具有较强的学习才能,由此生成的软标签应该更能代表源数据和方针数据之间的散布和相关性。咱们能够把这种学习称为 广义的残差学习。经过让较浅的 auxiliary head 直接学习 lead head 已经学习过的信息,lead head 将更多精力专心于学习还未学习的残差信息。
Coarse-to-fine lead head guided label assigner 是运用 lead head 的猜测成果和 ground truth 来生成软标签。但是在此进程中,生成了两组不同的软标签,即 粗标签 和 细标签,其间细标签和 lead head 引导标签生成器生成的软标签相同,而粗标签是经过放宽正样本分配进程的束缚,答应更多的 grids 作为正方针来生成的。这是因为 auxiliary head 的学习才能不如 lead head 强,为了避免丢失需求学习的信息,在方针检测使命中需求要点优化 auxiliary head 的召回。关于 lead head 的输出,能够从高查全率的成果中 过滤出 高精度的成果,作为终究输出。但有必要注意的是,假如粗标签的附加权重接近细标签的附加权重,或许会在终究猜测的时分发生较差的先验。因而,为了使这些额定的粗的 positive grids 影响较小,作者在解码器中加入了束缚,使额定的粗的 positive grids 不能完美地发生软标签。上述机制答应细标签和粗标签的重要性在学习的进程中动态调整,使细标签的可优化上限一直高于粗标签。
4.3 Other trainable bag-of-freebies
在本节中,作者列出一些 trainable bag-of-freebies,这些 freebies 是在练习中运用的一些技巧,这个概念并不是在论文中最先提出的。这些 freebies 包含:(1) conv-bn-activation 拓扑中的批归一化:将批归一化直接衔接到卷积层。这样做的目的是在推理阶段将批归一化的均值和方差整合到卷积层的偏置和权重中;(2) YOLOR 中的 implicit knowledge 结合卷积特征映射的加法和乘法方式:在推理阶段,经过预核算能够将 YOLOR 中的 implicit knowledge 简化为向量,该向量能够和前一层或后一层的偏置和权重相结合;(3) EMA 模型:EMA 是 mean teacher 中运用的一种技能,在本文提出的模型中,只运用 EMA 模型作为终究的推理模型。
5. 实验
Baselines:
YOLOv7 与 state-of-the-arts 检测器进行比较:
6. 参阅
[1]. YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors.
[2]. Fast and accurate model scaling.
好了,以上解读了 更高、更快、更强的 YOLOv7。期望我的分享能对你的学习有一点协助。
【大众号传送】
《极智Paper | YOLOv7 更高 更快 更强》