IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Yolov7:Trainable bag-of-freebies sets new state-of-the-art for real-time objectdetectors -> 正文阅读

[人工智能]Yolov7:Trainable bag-of-freebies sets new state-of-the-art for real-time objectdetectors

原文地址:https://arxiv.org/pdf/2207.02696v1.pdf

github地址:GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

阅读本文前默认已熟悉yolov7之前已出的相关版本比如v1-v6、yolox、ppyoloe等

题外话:最近,Yolov7算是引起了一个小轰动。实际上会搜到yolov7在github上有俩个(担心多年的重名问题终于还是出现了),一个star少的但是更早发布的更像是一个框架,也没有对应paper(作者在github上也回应了取名争议,他取名更早,而且v7是因为幸运数字是7,不是版本号)。这篇文章主要是对应star多的更晚的那篇!就在此前几天,美团提出的yolov6(2022年6月底)我简单看了一下,大概就是在yolov5的基础上结合了yolox的anchor-free以及解耦检测头的改进,实际上我觉得没有什么新意(因此好像也不太被业界认可),但是这个yolov7的影响力好像还是挺大的,就如其作者在arxiv文中说的“YOLOv7?在 5 FPS 到 160 FPS 范围内的速度和准确度都超过了所有已知的目标检测器。”这篇文章的摘要部分我就不写了,想省时的直接看结论部分吧。


目录

一、介绍

二、相关工作

2.1 实时目标检测

2.2? 模型重新参数化

2.3 模型缩放

三、网络结构

3.1?扩展的高效层聚合网络

3.2 基于级联(concatenate)的模型缩放

四、训练方法(tricks)

4.1?计划的重新参数化卷积

4.2?辅助训练模块:coarse-to-fine(由粗到细)引导标签分配策略

4.3 其他tricks

五、实验部分

总结?


一、介绍

????????在本文中,我们提出的实时目标检测器主要希望它能够同时支持移动GPU和从边缘到云端的GPU设备。也指明了yolov7的竞争领域是“实时”目标检测,一定要快!

????????针对目前目标检测的两个重点:1、模型重新参数化;2、动态标签分配问题。yolov7设计了一些有效方法来解决。比如提出了计划重新参数化模型(planned re-parameterized model)以及从粗到细的引导标签分配(coarse-to-fine lead guided label assignment)。

? ? ? ? 最终总结yolov7的贡献:(1)设计了几种可供训练的Bag of Freebies(免费包,指的是那些不增加模型复杂度,也不增加推理的计算量的训练方法技巧,来提高模型的准确度)

(2)发现目标检测发展到此的俩个新问题:1、模型重新参数化;2、动态标签分配问题。并且设计了一些方法对策

(3)我们提出了实时目标检测器的“扩展”和“复合缩放”方法,可以有效地利用参数和计算。

(4)减少了参数量、计算量(更快),提高了推理速度和精度

二、相关工作

2.1 实时目标检测

? ? ? ? 先介绍了当前最先进的实时目标检测器主要是yolo系列和FCOS系列。也提出了要成为最先进的实时目标检测器,优点或者说改进方向有几个:1、更快更强的网络结构;2、更有效的特征集成方法(FPN这种);3、更精确的检测方法;4、更有效的标签分配方法;5、更有效的训练方法;6、更鲁棒(稳健)的损失函数

? ? ? ? 作者提出,针对上述4、5、6方向,设计了新的Bag of Freebies

2.2? 模型重新参数化

????????模型重新参数化技术在推理阶段将多个计算模块合并为一个。模型再参数化技术可以看作是一种集成技术,我们可以将其分为两类,即模块级集成模型级集成。为了获得最终的推理模型,模型级重新参数化有两种常见做法。一种是用不同的训练数据训练多个相同的模型,然后平均多个训练模型的权重。另一种是对不同迭代次数下的模型权重进行加权平均。这几年比较热门的是模块级集成方法这种方法在训练期间将一个模块拆分为多个相同或不同的模块分支,并在推理期间将多个分支模块集成为完全等效的模块。然而,并不是所有提出的重新参数化模块都可以完美地应用于不同的体系结构。因此,我们开发了新的重新参数化模块,并为各种架构设计了相关的应用策略。

2.3 模型缩放

????????模型缩放是一种放大或缩小已设计模型并使其适合不同计算设备的方法。模型缩放方法通常使用不同的缩放因子,例如分辨率(输入图像的大小)、深度(层数)、宽度(通道数)和阶段(特征金字塔数),以便在网络参数量、计算、推理速度和精度方面实现良好的权衡。由于提出的yolov7架构是基于级联的,因此我们为该模型设计了一种新的复合缩放方法。

三、网络结构

3.1?扩展的高效层聚合网络

? ? ? ? yolov7提出的E-ELAN(最右),采用expand、shuffle、merge cardinality结构,实现在不破坏原始梯度传输路径的情况下,提高网络的学习能力。在体系结构方面,E-ELAN只改变了计算模块中的结构,而过渡层的结构则完全不变。作者的策略是利用分组卷积来扩展计算模块的通道和基数,将相同的group parameter和channel multiplier用于计算每一层中的所有模块。然后,将每个模块计算出的特征图根据设置的分组数G打乱成G组,最后将它们连接在一起。此时,每一组特征图中的通道数将与原始体系结构中的通道数相同。最后,作者添加了G组特征来merge,可以引导不同组的计算块学习更多样化的特征。

3.2 基于级联(concatenate)的模型缩放

? ? ? ? 通常对于基于级联的模型执行深度缩放,会导致计算块的输出宽度也增加(a到b),因此提出了(c),即在对基于concatenation的模型进行模型缩放时,只需要对计算块中的深度进行缩放,其余过渡传输层进行相应的宽度缩放。保持模型在初始设计时的特性并保持最佳结构。

四、训练方法(tricks)

4.1?计划的重新参数化卷积

????????Planned re-parameterized convolution(RepConv)已经在VGG上取得了优异的性能,但当将它直接应用于ResNetDenseNet和其他架构时,它的精度将显著降低。作者使用梯度流传播路径来分析重参数化的卷积应该如何与不同的网络相结合,发现在具有残差(Res)和串联(Dense)连接的层中使用RepConv不应该有identity connection,因此设计了RepConvN(去除了?identity connection)。作者还相应地设计了计划中的重参数化的卷积(下图为d设计了egh三种可行的方案)。注意其中的Plain代表朴素,普通的意思

4.2?辅助训练模块:coarse-to-fine(由粗到细)引导标签分配策略

?????????这部分比较难理解。作者介绍了一种“深度监督”的优化方法。对于一般的模型(a)而言,这种算法在中间层添加了辅助训练的额外的辅助头(auxiliary head),改成了(b)这样的结构,将整个网络的检测头分成了辅助头和最终预测的引导头(lead head)。

????????过去,在深度网络的训练中,标签分配通常直接指ground truth,并根据给定的规则生成硬标签。然而,近年来,如果以目标检测为例,研究者经常利用网络预测输出的质量和分布,然后结合GT考虑,使用一些计算和优化方法来生成可靠的软标签。例如,YOLO使用边界框回归预测和ground truth的IoU作为客观性的软标签。在本文中,将网络预测结果与GT一起考虑,然后将软标签分配的问题。

? ? ? ? 于是作者发现一个问题:“如何将软标签分配给?auxiliary head?和lead head”?目前已有的方案是辅助头和引导头各自独立,分别利用ground truth和它们(辅助头、引导头)各自的预测结果实现标签分配,类似图(c)。

????????YOLOV7算法中提出了利用引导头的预测结果作为指导,生成从粗到细的层次标签,将这些层次标签分别用于辅助头和引导头的学习,如图(d)和(e)所示。这样做的原因是lead head具有相对较强的学习能力,因此由此产生的软标签应该更能代表源数据与目标之间的分布和相关性。此外,还可以将这种学习看作是一种generalized residual learning。通过让较浅的auxiliary head直接学习lead head已经学习到的信息,lead head将更能专注于学习尚未学习到的残余信息。

4.3 其他tricks

(1)?conv-bn-activation topology中的Batch normalization:这部分主要将batch normalization layer直接连接到卷积层。这样做的目的是在推理阶段将批归一化的均值和方差整合到卷积层的偏差和权重中。

(2) 隐性知识在YOLOR中结合卷积特征图的加法和乘法方式:YOLOR中的隐式知识可以在推理阶段通过预计算简化为向量。该向量可以与前一个或后一个卷积层的偏差和权重相结合。

(3)?EMA?模型:EMA?是一种在?mean teacher?中使用的技术,在系统中使用?EMA?模型纯粹作为最终的推理模型。

五、实验部分

直接上一些对比表和图

总结?

? ? ? ? yolov7算是目前比较火的一个热点,相对于当前最火的目标检测算法而言,主要优点在速度上很快,可能精度并不是最高的。相对于yolo其他系列而言,创新点基本是一个扩展的高效层聚合网络基于concatenate模型的模型缩放重新设计的Re-parameterized convolution带辅助头的从粗到细的标签匹配等。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:44:55  更:2022-08-06 10:48:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:34:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码