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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> YOLOV4论文详解 -> 正文阅读

[人工智能]YOLOV4论文详解

在这里插入图片描述

1. Introduction

本文的贡献如下:

  1. 我们开发了一个高效、强大的目标检测模型。它使每个人都可以使用1080 Ti或2080 TiGPU来训练一个超级快速和准确的目标探测器。
  2. 在检测器的训练过程中,我们验证了最先进的Bag-of-FreebiesBag-of-Specials
  3. 我们修改了最先进的方法,使其更有效,更适合于单GPU训练,包括CBNPANSAM等。

2. Related work

在这里插入图片描述

2.1 Object detection models

我们对现有的目标检测算法进行了总结,当前的目标检测器由以下几部分组成:
在这里插入图片描述

2.2 Bag of freebies

我们称只改变训练策略只增加训练成本使目标检测器在不增加推理成本的情况下获得更高的精度的方法为Bag of freebies。包括:

2.2.1. 数据增强:

增加输入图像的可变性,从而使设计的目标检测模型对不同环境获得的图像具有更高的鲁棒性。

  • 逐像素调整
    1. 光度失真:brightness(亮度)、contrast(对比度)、hue(色度)、saturation(饱和度)、noise(噪声)
    2. 几何失真:scaling(缩放尺寸)、cropping(裁剪)、flipping(翻转)、rotating(旋转)
  • 模拟目标遮挡
    1. erase(擦除)、CutOut(剪切):随机选择图像的矩形区域,并填充随机或互补的零值
    2. hide-and-seekgrid mask:随机或均匀地选择图像中的多个矩形区域,并将它们替换为全零
    3. 将上述方式作用于特征图上:DropOutDropConnectDropBlock
  • 将多张图像组合在一起:
    1. MixUp:使用两个图像以不同的系数比率相乘后叠加,利用叠加比率调整标签
    2. CutMix:将裁剪的图像覆盖到其他图像的矩形区域,并根据混合区域大小调整标签
  • style transfer GAN

2.2.2. 数据不平衡问题

  • hard negative example mining
  • online hard example mining
  • focal loss
  • label smoothing

2.2.3. box回归损失函数

  • MSE(Smooth L1)

  • IoU
    I o U = A ∩ B A ∪ B IoU=\frac {A \cap B} {A \cup B} IoU=ABAB?

  • GIoU
    在这里插入图片描述

    G I o U = I o U ? ∣ A c ? U ∣ A c GIoU=IoU - \frac {|A_c-U|} {A_c} GIoU=IoU?Ac?Ac??U?

    其中, A c A_c Ac?表示两个框的最小闭包面积,即同时包含两个框的最小框的面积(虚线区域) U U U表示不属于两个框但属于最小闭包的面积

  • DIoU
    在这里插入图片描述

D I o U = I o U ? ρ 2 ( b , b g t ) c 2 DIoU=IoU-\frac {\rho ^2(b, b^{gt})} {c^2} DIoU=IoU?c2ρ2(b,bgt)?

  • CIoU

    一个好的box回归损失应该考虑3个因素:重叠面积中心点距离长宽比

    C I o U = I o U ? ρ 2 ( b , b g t ) c 2 ? α v α = v ( 1 ? I o U ) + v v = 4 π 2 ( arctan ? w g t h g t ? arctan ? w h ) 2 CIoU=IoU-\frac {\rho ^2(b, b^{gt})} {c^2}-\alpha v \\ \alpha = \frac {v} {(1-IoU)+v} \\ v=\frac {4} {\pi^2}(\arctan \frac {w^{gt}} {h^{gt}}-\arctan \frac {w} {h})^2 CIoU=IoU?c2ρ2(b,bgt)??αvα=(1?IoU)+vv?v=π24?(arctanhgtwgt??arctanhw?)2

2.3 Bag of specials

我们将通过增加少量推理成本便可极大提升模型精度的方法称为Bag of specials

2.3.1 增大感受野

  • SPP
    在这里插入图片描述

  • ASPP
    在这里插入图片描述

  • RFB
    在这里插入图片描述

2.3.2 注意力机制

  • SE
    在这里插入图片描述

  • SAM
    在这里插入图片描述

2.3.3 特征融合

  • skip-connection

  • FPN
    在这里插入图片描述

  • SFAM:使用SE模块对多尺度拼接特征图在通道维度进行加权
    在这里插入图片描述

  • ASFF:使用softmax对多尺度拼接特征图在点维度进行加权
    在这里插入图片描述

  • BiFPN
    在这里插入图片描述

2.3.4 激活函数

  • ReLU
    R e L U = m a x { 0 , x } ReLU=max\{0, x\} ReLU=max{0,x}
  • Leaky-ReLU
    L R e L U = m a x ( α x , x ) LReLU=max(\alpha x, x) LReLU=max(αx,x)
  • Parametric-ReLU
    P R e L U ( x ) = { α x x ≤ 0 x x > 0 PReLU(x) = \begin{cases} \alpha x & x \leq 0 \\ x & x > 0 \end{cases} PReLU(x)={αxx?x0x>0?
  • ReLU6
    R e L U 6 ( x ) = m a x { R e L U ( x ) , 6 } ReLU6(x) = max\{ReLU(x), 6\} ReLU6(x)=max{ReLU(x),6}
  • SELU
    S E L U ( x ) = λ { α ( e x ? 1 ) x ≤ 0 x x > 0 SELU(x)=\lambda \begin{cases} \alpha (e^x-1) & x \leq 0\\ x & x > 0 \end{cases} SELU(x)=λ{α(ex?1)x?x0x>0?
  • Swish
    S w i s h ( x ) = x ? s i g m o i d ( x ) Swish(x) = x \cdot sigmoid(x) Swish(x)=x?sigmoid(x)
  • hard-Swish
    h ? S w i s h ( x ) = x R e L U ( x + 3 ) 6 h-Swish(x)=x \frac {ReLU(x+3)} {6} h?Swish(x)=x6ReLU(x+3)?
  • Mish
    M i s h ( x ) = x ? t a n h ( l n ( 1 + e x ) ) Mish(x) = x \cdot tanh(ln(1+e^x)) Mish(x)=x?tanh(ln(1+ex))

2.3.5 后处理

在这里插入图片描述

  • NMS将IoU超过阈值进行删除
    s i = { s i , I o U ( M , b i ) < N t 0 , I o U ( M , b i ) ≥ N t s_i= \begin{cases} s_i, & IoU(M,b_i) < N_t \\ 0, & IoU(M, b_i) \geq N_t \end{cases} si?={si?,0,?IoU(M,bi?)<Nt?IoU(M,bi?)Nt??
  • soft NMS将置信度得分小于阈值的进行删除,由于这个阈值需要人工设置,因此存在很大的局限性
    s i = { s i , I o U ( M , b i ) < N t s i ( 1 ? I o U ( M , b i ) ) , I o U ( M , b i ) ≥ N t s_i= \begin{cases} s_i, & IoU(M,b_i) < N_t \\ s_i(1-IoU(M, b_i)), & IoU(M, b_i) \geq N_t \end{cases} si?={si?,si?(1?IoU(M,bi?)),?IoU(M,bi?)<Nt?IoU(M,bi?)Nt??
    由于上式不连续,改进后如下:
    s i = { s i , I o U ( M , b i ) < N t s i e ? I o U ( M , b i ) 2 σ , I o U ( M , b i ) ≥ N t s_i= \begin{cases} s_i, & IoU(M,b_i) < N_t \\ s_ie^{-\frac {IoU(M, b_i)^2} {\sigma}}, & IoU(M, b_i) \geq N_t \end{cases} si?={si?,si?e?σIoU(M,bi?)2?,?IoU(M,bi?)<Nt?IoU(M,bi?)Nt??
  • DIoU NMS: 将DIoU超过阈值进行删除
    s i = { s i , D I o U ( M , b i ) < N t 0 , D I o U ( M , b i ) ≥ N t s_i= \begin{cases} s_i, & DIoU(M,b_i) < N_t \\ 0, & DIoU(M, b_i) \geq N_t \end{cases} si?={si?,0,?DIoU(M,bi?)<Nt?DIoU(M,bi?)Nt??

3. Methodology

3.1 Selection of architecture

一个模型分类效果好不一定检测效果就好,好的检测器需要满足如下几点:

  • 更高的输入图像分辨率:有助于检测小物体。
  • 更深的网络层:能够覆盖更大面积的感受野
  • 更多的参数:更好的检测不同的物体

我们比较了3个backbone模型,最终选择了CSPDarkNet53
在这里插入图片描述

3.2 Selection of BoF and BoS

  1. 对于激活函数,由于PReLUSELU更难训练,我们选择专门为量化网络设计的ReLU6
  2. 对于正则化,我们选择DropBlock
  3. 在归一化上,由于是单GPU,所以没有考虑syncBN

3.3 Additional improvements

为了使设计的探测器更适合单 gpu 的训练,我们进行了如下额外的设计和改进:

  • 新的数据增强方法:MosaicSelf-Adversarial Training
  • 应用遗传算法选择最优参数
  • 改进SAM改进PAN交叉小批量标准化(CmBN)

3.3.1 Mosaic

如下图所示,Mosaic方法是将4张训练图像混合成一张新图像,这样可以丰富图像的上下文信息。这种做法的好处是允许检测上下文之外的目标,增强模型的鲁棒性。此外,在每一层从4个不同的图像批处理标准化计算激活统计,这大大减少了对大mini-batch处理size的需求。
在这里插入图片描述

3.3.2 Self-Adversarial Training

这是一种新的数据扩充技术,该技术分前后两个阶段进行。在第一阶段,神经网络改变原始图像而不是网络权值。通过这种方式,神经网络对自身执行一种对抗性训练,改变原始图像,从而造成图像上没有目标的假象。在第二阶段,训练神经网络对修改后的图像进行正常的目标检测。

3.3.3 CmBN

CmBN仅收集mini-batches单个batch的统计信息。
在这里插入图片描述

3.3.4 SAM的改进

将SAM从空间上的注意力修改为点上的注意力
在这里插入图片描述

3.3.5 PAN的改进

将PAN的short-connect从相加修改为拼接
在这里插入图片描述

3.4 YOLOv4

YOLOV4由以下几部分组成:

  • BackBone:CSPDarkNet53
  • Neck:SPP、PAN
  • Head:YOLOV3

YOLOV3使用到了:

BOF:

  • BackBone:
    1. CutMix
    2. Mosaic数据增强
    3. DropBlock正则化
    4. 类标签平滑(Class Label Smoothing)
  • Detector:
    1. CIoU loss
    2. CmBN
    3. DropBlock正则化
    4. Mosaic数据增强
    5. 自对抗训练
    6. 消除网格敏感性
    7. 为单个GT box使用多个anchor
    8. 余弦退火调度器
    9. 最优超参数
    10. 随机训练形状

BOS:

  • BackBone:
    1. Mish激活函数
    2. CSP:Cross-stage partial connections
    3. MiWRC:Multi-input weighted residual connections
  • Detector:
    1. Mish激活函数
    2. SPP
    3. SAM
    4. PAN
    5. DIoU NMS

4. YOLOV4网络结构图

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:37:27  更:2021-11-30 15:37:56 
 
开发: 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/27 3:55:08-

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