Yolov1-v5新手入门知识点——学习记录

1.YOLOV1

        第一个版本是所有版本的基础,为监督学习,主要理解Ground truth、Grid cell、Bounding box区别,提出的IOU、NMS、损失函数、训练测试过程

IOU:交并比,计算两个预测框之间交集部分比例

NMS:在IOU基础上,有效删除冗余检测的结果,依次大小顺序计算与最大bbox之间iou大小,超过阈值删除,代表检测物体重复

损失函数:将目标检测问题以归一化处理,包括坐标误差、宽高误差、负责监测物体bbox置性度误差、不负责检测物体bbox置性度误差、grid cell分类误差

训练:

  • 人工标注图片导入模型中
  • 标注图片框中心所在grid cell为检测窗口
  • 模型计算生成(x,y,w,h,c)及对应20个类别坐标,总7*7*(2*5+20)=7*7*30
  • 计算对应loss
  • 优化(正常网络模型训练)……

测试:

  • 图片输入模型生成7*7*(2*5+20),包括bbox置信度、分类概率(条件概率)
  • 计算confidence score=置信度c*分类概率
  • 计算NMS
  • 得出结果

2.YOLOV2

  • 第二版本相对于第一版本主要提出了使用锚框anchor,通过聚类分析得出特定形状以及数量(设定每个grid cell生成5个anchor)
  • 使用BN(batch normalization):于线性层与非线性层之间进行归一处理并加上相应权重(有点像正态分布),减少数据丢失或过拟合
  • 模型输出:tx,ty,tw,th计算得出预测框实际坐标及宽度,即bx,by,bw,bh

图来自b站同济子豪兄 【精读AI论文】YOLO V2目标检测算法_哔哩哔哩_bilibili

3.YOLOV3

  • 采用多尺度融合,输入416*416*3,输出13*13*255,   26*26*255, 52*52*255其中255包括3个anchor坐标信息置信度及80种分类概率, 即3*5*80=255
  • 借鉴resnet网络中残差结构,构建更深的网络
  • 采用下采样后上采样传递语义信息,增强目标信息
  • 激活函数使用leaky-relu

4.YOLOV4&V5

V4是在v3的多尺度融合上更进一步的优化及堆料,而V5可以说是对V4的网络优化、轻量化,两者合并分析:

共同点:

  • 使用Mosic数据增强结构:4张图片随机缩放、随机裁剪、随机排布,更有利于小目标检测
  • 增加了spp多层池化增强主干特征、cspx下采样(V5包括csp1_x、csp2_x)
  • 使用FPN+PAN上下采样结构传递语义信息
  • 训练时采用CIOU_loss计算方式,考虑边框宽高比(ciou)、边框中心距离(diou)、边界重合(giou)、重叠面积(iou)
  • Nms计算采用DIOU_NMS,测试时没有gt,所以用不了Ciou
  • 激活函数采用mish

不同点

  • V3v4单独使用程度进行图片转换,V5进行自适应图片缩放计算
  • V5采用自适应锚框计算,每次训练自适应计算不同训练集中最佳锚框值
  • 模型不同深度与宽度,V5分为yolov5s、yolov5m、yolov5l、yolov5x

yolov4网路框图:

 yolov5网络框图:

 学习来源:深入浅出Yolo系列之Yolov5核心基础知识完整讲解_江大白*的博客-CSDN博客_yolov5

猜你喜欢

转载自blog.csdn.net/hhb3329/article/details/126402440