目标检测复习之YOLO系列
阅读原文时间:2023年07月11日阅读:3

目标检测之YOLO系列

YOLOV2总结:

  • Better
  1. Batch Normalization

    BN可以提升模型收敛速度,而且可以起到一定正则化效果,降低模型的过拟合
    YOLOv2使用BN,不使用dropout

  2. High Resolution Classifier

    将分辨率由224224(ImageNet分类尺寸)增加至448448

  3. Convolutional With Anchor Boxes

    使用先验框提高召回率

  4. Dimension Clusters

    使用聚类算法生成先验框

  • Faster
  1. 使用Darknet-19主干网络

YOLOV3总结:

  • 数据处理部分

  • Backbones部分

    DarkNet53, 网络结构如下:

  • Neck部分

    FPN

  • Head部分

    见网络结构图

  • 激活函数

    LeakyReLU

YOLOV4总结:

  • 数据处理部分

    1. Mosaic data augmentation
    2. CutMix data augmentation
  • Backbones部分

    CSPDarknet53

  • Neck部分

    SPP
    PAN

  • Head部分

    和YOLOv3的head部分一样

  • 正负样本分配部分

    1. 在yolov3中一个GT都只分配一个Anchor, 在ylov4中(以及u版的yolov3-spp)中一个gt可以同时分配给多个anchor

    2. 在Bubbliiiing版本的代码中可以描述如下:(3个head分别对应anchor为[0,1, 2, 3, 4, 5, 6, 7, 8])

      a: anchor有9个,gt有10个 每个anchor和gt进行左上角对齐并且计算iou从大到小排序(shape:[10,9])

      b: 例如第一个gt算出来的最大iou的anchor的index=4,但是该层的anchor索引是6,7,8,所以该gt不属于该head

      c: 如果计算出该gt与anchor对应的index=6: 将该gt缩放到该head的大小,该gt的中心点落在网格中的点. 该网格中的
      点包含的信息有(x,y,w,h,conf,cls). 然后和预测出来的进行对比和计算(在该版本中计算方式同yolov3)

      d: 使用sigmod激活函数的取值范围是[0, 1],要想取值0,1那么预测值需要取得无穷(在后续的yolov5中有改进)

  • 损失函数部分

    分类损失:
    定位损失: CIOU,ciou的计算方式如下:

YOLOv5总结:

  • 数据处理部分

    yolov5提供的数据增强技术有:

    1. Mosaic
    2. Copy paste (需要segments数据)
    3. Random affine 仿射变换 作者只使用了Scale和Translation(缩放和平移)
    4. MixUp
  • Backbones部分

    Backbone: new CSP-Darknet53(使用了FCOS模块后面使用6*6大小的卷积替换)

  • Neck部分

    spp, pan

  • head:

    yolov3 head

  • 损失函数

    Classes loss,分类损失,采用的是BCE loss,注意只计算正样本的分类损失
    Objectness loss,obj损失,采用的依然是BCE loss
    Location loss,定位损失,采用的是CIoU loss

  • 其他

    消除网格在断点等取不到值的情况
    bx = (2sigmod(tx) - 0.5) + cx by = (2sigmod(ty) - 0.5) + cy
    那么就将原来的取值范围有[0, 1]变化到[-0.5, 1.5],也为后面使用相邻的网格预测点作为正样本奠定基础
    同时:
    bw = pw * (28sigmod(tw))2 bh = ph * (28sigmod(th))2
    防止梯度爆炸,将范围调整到(0,4)也为后面的正负样本分配奠定基础

除了YOLOX,yolov1属于anchor-free目标检测方法外,其他的yolo系列都属于anchor-base方法

YOLOX总结

  • 数据增强部分

    Mosaic
    Mixup

  • Backbone

    CSPDarknet53

  • Neck部分

    spp + pan

  • Head部分

    使用decoupled head(将分类头和回归头分开)

  • 正样本标签分配 - simota

  • 目标检测中的正样本分配

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章