【YOLO系列】YOLO.v2算法原理详解

YOLO(You Only Look Once)系列算法原理

前言 :详细介绍了yolo系列目标检测算法的原理和发展过程。

系列:
【YOLO系列】YOLO.v1算法原理详解
【YOLO系列】YOLO.v2算法原理详解
【YOLO系列】YOLO.v3算法原理详解
【YOLO系列】YOLO.v4 & YOLO.v5算法原理详解

2. YOLO.v2

2.1 基本概述

论文参考:YOLO9000: Better, Faster, Stronger

yolo v1虽然简单便捷,但检测效果较差,相较于FRCNN和SSD,其性能有所不及。

而 yolo v2 作为 v1 的接续,在原有基础上,做出了很多改进,从而实现了更好、更快、更强悍的目标检测性能,开始迎头赶上FRCNN,SSD网络。

2.2 算法改进

2.2.0 网络架构

yolo v2整体网络架构如下所示

在这里插入图片描述

2.2.1 Batch Normalization

v1

  • 使用了 dropout 技巧,防止过拟合

v2

  • 删去 dropout,增加 Batch Normalization
  • BN 操作增加在卷积之后,激活层之前。该操作大大增加收敛速度,防止过拟合、梯度消失。

Batch-Normalization

  • 对批样本的输出特征量分别进行归一化处理,分别使得每个特征数据均值为0,方差为1。该步骤不需要引入任何额外参数。
  • 对上一步输出做线性变换,即 Z ′ = α Z + β Z' = \alpha Z+\beta Z=αZ+β。这里的 α , β \alpha ,\beta α,β 是可训练的参数。该步骤是尝试恢复原本信息。

说明

  • BN操作现在已经成了目标检测网络的标配。
  • 该方法使得mAP提升了2%。
2.2.2 High Resolution Classifier

v1

  • 采用 224 × 224 224\times 224 224×224 图像训练网络,采用 448 × 448 448\times 448 448×448 图像进行检测

v2

  • 采用 224 × 224 224\times 224 224×224 图像进行预训练,再使用 448 × 448 448\times 448 448×448 图像进行微调训练(10 epochs),最后使用 448 × 448 448\times 448 448×448 检测

说明

  • 这里即是训练时候的一些细节。

    可能考虑当时计算机算力低、图像标注样本太少等因素,存在了训练与测试图片分辨率不同的情况。这里不做深入讨论。

  • 该方法使得 mAP 提升了4%。

2.2.3 Convolutional With Anchor Boxes

v1

  • 一个方格 grid,有两个预测框 bounding box

    框的总数量: 7 × 7 × 2 = 98 7\times 7\times 2 = 98 7×7×2=98

  • 每个grid的两个框,只负责预测同一个物体

    yolov1输出向量: S × S × ( C + B × 5 ) S\times S\times (C+B\times 5) S×S×(C+B×5)

  • 最终是使用全连接层直接预测出框的坐标信息 ( x , y , w , h ) (x,y,w,h) (x,y,w,h)

v2

  • 每个 grid 预先设定一组不同大小和宽高比的先验框

    gird num: 13 × 13 13\times 13 13×13
    anchor num: 9 9 9
    框总数量: 13 × 13 × 9 = 1521 13\times 13\times 9 = 1521 13×13×9=1521

  • 每个 grid 中的九个框,各自独立,可预测不同物体

    yolov2输出向量: S × S × B × ( C + 5 ) S\times S\times B\times (C+5) S×S×B×(C+5)

  • 删去全连接层,删去一个池化层,增加了下采样操作(下述)

  • 预测框输出 为 先验框的微调偏移量

    更快收敛,更好训练

说明

  • 该方法使得 mAP 降低 0.2%,召回率 recall 提升 7%。
2.2.4 Dimension Cluster

关于聚类算法原理参见: 机器学习之聚类

v1

  • None
  • Faster R-CNN 中,RPN 网络是手动规定 anchor 尺寸和大小

v2

  • 使用聚类算法获得先验框的尺寸大小

说明

  • 可以得到更符合样本特点的先验框尺寸,减少网络微调的复杂度

  • 该方法使得 mAP 提升了4.8%。

2.2.5 Direct Location Prediction

v1

  • None

  • Faster R-CNN 中,RPN 从偏移量得到预测框坐标计算方式如下
    在这里插入图片描述

    该种计算方法下,训练值(即偏移量 t x , t y t_x, t_y tx,ty ) 无限制范围,因此预测框中心坐标可以为任意位置。这样会导致预测框训练过程中非常不稳定,从而导致模型不稳定。

v2

  • 预测(x,y,w,h):调整新的计算方法,限制预测框范围
    在这里插入图片描述

    1.方格 grid cell 大小被归一化为1*1
    2. σ ( x ) \sigma(x) σ(x)函数范围在 [ 0 , 1 ] [0,1] [0,1]
    3. e x e^x ex 函数范围在 [ 1 , + ∞ ] [1,+\infty] [1,+]
    在这里插入图片描述

  • 预测 c

说明

  • 该方法使得 mAP 提升了 5%。

σ ( t 0 ) = P r ( o b j e c t ) ∗ I O U ( b , o b j e c t ) \sigma(t_0) = Pr(object)*IOU(b, object) σ(t0)=Pr(object)IOU(b,object)

2.2.6 Fine-Grained Feature

网络使用了下采样,输入从416*416变成了13*13,下采样了32倍。
对于小目标来说,如此下采样可能导致其特征完全丧失。
因此需要一些手段来保留小目标特征。

v1

  • None
  • Faster R-CNN 和 SSD 使用不同 feature maps 的 Proposal Networks 解决多尺度目标识别问题

v2

  • 使用 passthrough 层方法

    引申 yolov5 Focus 结构

在这里插入图片描述

说明

  • 该方法使得 mAP 提升了 1%。
2.2.7 Multi-Scale Training

v1

  • 输入尺寸被限制在 448*448*3

v2

  • 输入尺寸没有严格限制,但因使用下采样,且下采样倍数为 32,因此通常输入尺寸为 32 的倍数。
  • 通过改变输入图像尺寸,使用多尺度图像进行训练

说明

  • 该方法使得 mAP 提升了 1.4%。

2.3 细节实现

2.3.1 卷积网络结构(DarkNet-19)

从2.2.0 节知道,论文所用卷积神经网络结构,即Backbone 是基于 DarkNet。

完整 DarkNet 网络如下所示

在这里插入图片描述

yolo v2 使用了图中蓝色框选位置的结构,对应与 2.2.0 节蓝色框选位置。

2.3.2 损失函数

标签示意如下:

在这里插入图片描述

  • 每个 grid 共有 B 个 anchor box
  • 每个anchor box 都有如上图所示的 ( 5 + C ) (5+C) (5+C) 个值

    yolo v1中是每个 grid 有 ( B × 5 + c ) (B\times 5+c) (B×5+c) 个值

yolo v2中损失函数共包含三项,即

  • 坐标预测损失
  • 置信度预测损失
  • 类别预测损失。

2.4 总结

yolo v2 相较于 yolo v1 使用的相关技巧及其提升如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值