YOLO系列解读v1-v7

文章目录

  • 一、YOLO v1
    • 1.核心思想
    • 2.网络架构
    • 3.损失函数
    • 4.优劣性
  • 二、YOLO v2
    • 1.YOLO v2改进点及提升效果
    • 2.各改进点
      • 2.1batch norm
      • 2.2使用更大分辨率
      • 2.3卷积特征提取部分(替换成DarkNet)
      • 2.4先验框选取
      • 2.5选框后的实验效果
      • 2.6直接预测相对位置
      • 2.7感受野
      • 2.8细粒度特征
      • 2.9多尺度
  • 三、YOLO v3
    • 1.YOLO v3提升效果图:
    • 2.各改进点
      • 2.1多scale
      • 2.2多种规格先验框
      • 2.3主干网络结构改进
      • 2.4核心网络架构darknet53
      • 2.5 softmax层代替
    • 3.Yolov3源码解读
  • 四、YOLO v4
  • 五、YOLO v5


一、YOLO v1

特点:

  • 经典的One-stage算法
  • 一个CNN预测x,y,w,h;回归问题
  • 可对视频实时检测

1.核心思想

参考文章

首先将输入图分为SxS个格子,每个格子分别做两个操作(所有格子):
YOLO系列解读v1-v7_第1张图片

  • 对输入图片进行网格划分,每个格子生成两个bounding boxes.
  • 每个网格预测的class信息和bounding boxes预测的confidence信息相乘,得到每个bounding box预测具体物体的概率和位置重叠的概率PrIOU
    在这里插入图片描述其中Pr(Class|Object)为每个网格预测的class信息,Pr(Object)*IOU为confidence。
  • 最后对于每个类别,对该类别PrIOU进行排序,去除该类别小于阈值的PrIOU,然后做非极大值抑制。

2.网络架构

YOLO系列解读v1-v7_第2张图片

  • 输入图片大小为448x448x3
  • 通过一系列卷积得到7x7x1024的特征图
  • 全连接后reshape得到7x7x30,其中7x7是格子数,30是对应参数,其中有两个预测框(x,y,w,h,confidence)=10,剩下20是类别的总数(根据数据集类别数定)。

3.损失函数

参考
YOLO系列解读v1-v7_第3张图片

  • 首先,求0-s方也就是全部格子和每个格子b(v1是2)个候选框对应的位置损失值,其中l表示第i个网格中的第j个预测框是否负责obj这个物体的预测(只有当某个box predictor对某个ground truth box负责的时候,才会对box的coordinate error进行惩罚,而对哪个ground truth box负责就看其预测值和ground truth box的IoU是不是在那个网格的所有box中最大)。其中wh加根号是因为微分求导可提高对小数物体敏感性。
  • 计算置信度
    在这里插入图片描述
    如上图
    • 首先,若有真实框落入该中心格,Pr就为1,否则为0
    • 其次通过计算预测框和真实框的IOU
    • 最终计算出置信度
  • 对于置信度有分前景和背景,前景指有物体的,背景指没有物体的,有物体用上面那个置信度loss,无物体用下面那个置信度loss,其中Ci是真实值,就是上面计算的置信度,Ci_hat是yolo的预测值。
  • 最后一个是有物体格子对应类别的概率值

4.优劣性

YOLO系列解读v1-v7_第4张图片


二、YOLO v2

1.YOLO v2改进点及提升效果

YOLO系列解读v1-v7_第5张图片

2.各改进点

  • 2.1batch norm

YOLO系列解读v1-v7_第6张图片

  • 2.2使用更大分辨率

YOLO系列解读v1-v7_第7张图片

  • 2.3卷积特征提取部分(替换成DarkNet)

YOLO系列解读v1-v7_第8张图片

  • 2.4先验框选取

    就是v1中提到的b,起初是2,v2通过k-means聚类coco数据集中的标注框获得比例。 最终得到K=5时最合适。
    YOLO系列解读v1-v7_第9张图片
  • 2.5选框后的实验效果

    recall提升很多,precision略降。
    YOLO系列解读v1-v7_第10张图片
  • 2.6直接预测相对位置

YOLO系列解读v1-v7_第11张图片

  • grid cell偏移量计算
    YOLO系列解读v1-v7_第12张图片
    - 为避免出现v1乱飘移,首先将中心点限定在cell格内,通过sigmod(tx)+Cx方式限定。其中tx为预测值,Cx为cell格左上角坐标。y类似;pw和ph是对应于特征图的,所以需要原图通过等比例缩小,例如输入为120x120,特征图为13x13则pw则通过120/32得到。
    - 预测结束后通过计算特征图上的数值进行还原,得到实际值。
  • 2.7感受野

YOLO系列解读v1-v7_第13张图片

  • 2.8细粒度特征

    越后面的特征图感受野越大,越前特征感受野越小,通过融合前的特征图和后的特征图,可以得到大的和小的物体的特征,不会导致小物体特征丢失。
    • 通过对小物体拆分,例如26x26x512拆成4x13x13x512,叠加到13x13x1024中,得到13x13x3072。
      YOLO系列解读v1-v7_第14张图片
  • 2.9多尺度

    不同的训练迭代过程中改变输入图像尺寸大小,加强学习能力。
    YOLO系列解读v1-v7_第15张图片

三、YOLO v3

1.YOLO v3提升效果图:

YOLO系列解读v1-v7_第16张图片

2.各改进点

YOLO系列解读v1-v7_第17张图片

  • 2.1多scale

YOLO系列解读v1-v7_第18张图片

  • scale变换经典方法:
    YOLO系列解读v1-v7_第19张图片
    图像金字塔:通过reshape可固定输入,设置好卷积机构就可在不同位置抽取到固定大小的特征图。例如:13x13、26x26、52x52。缺点:速度慢,一个预测做了三次,且学习信息不充分,不符合yolo的初衷。
    单一输入:就是CNN卷积后得到单一的特征图。

  • 不同特征图融合预测
    YOLO系列解读v1-v7_第20张图片
    特征融合预测:CNN先获得前1、中2、后3部分的特征图,通过3得到的特征图也就是4进行大物体预测,再将4进行上采样扩充成与2一样大小的特征图后融合得5,通过5预测中型目标物体,5通过上采样扩充成1一样大小的图和1融合得6,通过6进行预测小目标物体。

    选取卷积过程中不同的特征图并结合特征图融合技术预测,离输出端越近,则预测大物体,中间抽取的特征图预测中的,离输出越远的预测大的物体。

  • 2.2多种规格先验框

    例如从不同backbone提取的特征图:大、中、小,每种规格3种先验框,一共9种。
    YOLO系列解读v1-v7_第21张图片

  • 2.3主干网络结构改进

    • 存在问题,基于vgg结构实验发现56层的error率比20层的学的更差。如下图。
      YOLO系列解读v1-v7_第22张图片
    • 残差连接
      分两条路,第一条路向下做两层卷积结果为F(x),第二条路是F(x)原封不动的x,然后相加得H(x)。
      YOLO系列解读v1-v7_第23张图片
  • 2.4核心网络架构darknet53

YOLO系列解读v1-v7_第24张图片darknet53:2为主干网络,通过不同尺度的残差模块组合53层,3为多尺度特征图融合方法。1为主干的改进点,去掉了池化和全连接使用3x3卷积核代替。

  • 2.5 softmax层代替

    对每个类别分别进行sofmax预测对应的概率,
    YOLO系列解读v1-v7_第25张图片

3.Yolov3源码解读

源码解读篇


四、YOLO v4


五、YOLO v5

你可能感兴趣的:(人工智能,深度学习,目标检测,计算机视觉)