> 文章列表 > 目标检测之yolo系列模型-yolov4/yolox

目标检测之yolo系列模型-yolov4/yolox

目标检测之yolo系列模型-yolov4/yolox

文章目录

    • 一、yolov4较yolov3的优化点
      • 1.1 网络结构层面
        • (1) CSPDarknet53(借用CSP结构)
        • (2) SPP
        • (3) PAN(借用PANet)
      • 1.2 优化策略
        • (1) mosaic 4张不同的图片拼接起来
        • (2) ciou
        • (3) *消除grid网格敏感——预测目标中心点可以取到网格边界/增加正样本的数量* Eliminate grid sensitivity
    • 二、yolox较yolov4的优化点
      • 2.1 网络更新--解耦检测头
      • 2.2 Anchor-Free机制以及优缺点
        • 2.2.1 (附录) Anchor-based机制的优缺点
      • 2.3 *更先进的正负样本匹配策略(simOTA)*
    • 三、focal loss
      • 3.1 背景
      • 3.2 做法
      • 3.3 更细节

一、yolov4较yolov3的优化点

https://www.cnblogs.com/cucwwb/p/13166288.html

  • 总结:
    (1)对主干网络进行了修改,将原先的Darknet53改为CSPDarknet53,其中是将激活函数改为Mish激活函数,并且在网络中加入了CSP结构。
    (2)对特征提取过程的加强,添加了SPP,PANet结构。
    (3)在数据预处理阶段加入Mosaic方法。
    (4)在损失函数中做了改进使用了CIOU作为回归Loss。

Mish()=x×tanh(ln(1+ex))Mish() = x×tanh(ln^{(1+e^x)})Mish()=x×tanh(ln(1+ex))

1.1 网络结构层面

(1) CSPDarknet53(借用CSP结构)

CSP是可以增强CNN学习能力的新型结构,CSPNet将底层的特征映射分为两部分,一部分经过密集块和过渡层,另一部分与传输的特征映射结合到下一阶段。
目标检测之yolo系列模型-yolov4/yolox

原文表达的作用:
加快网络的推理速度,减少对显存的使用,并且提升网络的学习能力。

  1. 更强的CNN的学习能力;
  2. 移除计算瓶颈;
  3. 减小使用的内存;

原文通过通道分割,但实际上不是,代码中是先用卷积下采样,然后分别输入两个conv结构中。
目标检测之yolo系列模型-yolov4/yolox

(2) SPP

优点:解决多尺度的问题
分别经过卷积和大小5X5,步距为1,padding为2;卷积和大小9X9,步距为1,padding为4;卷积和大小13X13,步距为1,padding为6;输出都是13X13X2046,和原始的拼接起来,最后的shape为13X13X2046。

目标检测之yolo系列模型-yolov4/yolox

附:卷积和的计算公式

output=input−keral+padding∗2stride+1output = \\frac{input - keral + padding * 2}{stride} + 1output=strideinputkeral+padding2+1

(3) PAN(借用PANet)

上采样:FPN
上采样+下采样:PAN
特征融合:CONCAT策略,在深度方向进行拼接

1.2 优化策略

(1) mosaic 4张不同的图片拼接起来

(2) ciou

IOU:一般的iou,两个框的交集除以并集
GIOU:= iou−((AC−U)/AC)iou - ((AC-U)/AC)iou((ACU)/AC)
其中, AC为两个框的外接矩形的面积,U为两个框的并集的面积
缺点:

  1. 当两个框并列时,退化为IOU计算公式;
  2. 两个框,小框在大框中时,无法衡量两个框的位置关系,基于这一点提出DIOU

DIOU:= iou−(d2/c2)iou - (d^2 / c^2)iou(d2/c2)
其中d为两个框中心点的距离,c为两个框外接矩形的对角线的距离
CIOU:= iou−(d2/c2+av)iou - (d^2 / c^2 + av)iou(d2/c2+av)
考虑到了距离和框的宽高
此处输入图片的描述

(3) 消除grid网格敏感——预测目标中心点可以取到网格边界/增加正样本的数量 Eliminate grid sensitivity

  • 回顾yolov3
    预测目标边界框的时候,通过1X1卷积层滑动grid cell会针对每个anchor预测回归框参数以及每个类别的score分数,回归参数则为tx,ty,tw,tht_x,t_y,t_w,t_htx,ty,tw,th,公式如下:虚线为anchor,蓝色为gt框。
    目标检测之yolo系列模型-yolov4/yolox
    问题在于sigmoid激活函数在0和1范围内取值,因此如果真实目标的中心点刚好落在grid cell边界上,是无法预测正确的。

  • yolov4的改进:修改激活函数
    目标检测之yolo系列模型-yolov4/yolox

二、yolox较yolov4的优化点

网络结构基于yolov5 v5.0构建的

2.1 网络更新–解耦检测头

加速收敛,提升AP,参数不共享;类别一个检测头,位置和objectness共用一个检测头;

需要注意的是,实验效果是跟yolov3进行比较,看结果是能更快的收敛,但网络是从yolov5借鉴的,所以效果就emmm值得商榷,结果如下:
目标检测之yolo系列模型-yolov4/yolox

2.2 Anchor-Free机制以及优缺点

  • anchor-free机制
    在每个grid cell来预测四个参数tx,ty,tw,tht_x, t_y, t_w, t_htx,ty,tw,th,这里是相对特征层的,还原到原图需要乘以步距。可以看到跟anchor没关,是个anchor-free的网络。
    目标检测之yolo系列模型-yolov4/yolox

  • 优点:

  1. 使用类似分割的思想来解决目标检测问题;
  2. 不需要调优与anchor相关的超参数;
  3. 避免大量计算GT boxes和anchor boxes 之间的IoU,使得训练过程占用内存更低。
  • 缺点:
    https://m.fx361.com/news/2022/0413/10766620.html
    1.正负样本极端不平衡;
    2.语义模糊性(因为主要靠关键点检测,如果两个目标中心点距离太近,更甚重叠,就会造成语义模糊);
    现在这两者大多是采用Focus Loss和FPN来缓解的,但并没有真正解决。

2.2.1 (附录) Anchor-based机制的优缺点

  1. 优点:
    (1)使用anchor机制产生密集的anchor box,使得网络可直接在此基础上进行目标分类及边界框坐标回归;
    (2)密集的anchor box可有效提高网络目标召回能力,对于小目标检测来说提升非常明显。

  2. 缺点:
    (1)anchor机制中,需要设定的超参:尺度(scale)和长宽比( aspect ratio)是比较难设计的。这需要较强的先验知识。
    (2)冗余框非常之多,会造成正负样本严重不平衡问题,也是one-stage算法难以赶超two-stage算法的原因之一。
    (3)网络实质上是看不见anchor box的,在anchor box的基础上进行边界回归更像是一种在范围比较小时候的强行记忆。
    (4)基于anchor box进行目标类别分类时,IOU阈值超参设置也是一个问题。
    ————————————————
    版权声明:本文为CSDN博主「ytusdc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ytusdc/article/details/107864527

此处输入图片的描述

2.3 更先进的正负样本匹配策略(simOTA)

三、focal loss

3.1 背景

针对one-stage的模型,目的是解决正负样本不均衡的问题。(负样本会有1w-10w,权重小,数量多也会过多关注)

3.2 做法

降低易分样本的loss贡献,让网络专注于学习难分的样本,达到平衡样本的目的,因为负样本数量巨多,就会有很多的易分样本。

3.3 更细节


参考:
yolo系列:
https://blog.csdn.net/ThomasCai001/article/details/123593690?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22123593690%22%2C%22source%22%3A%22ThomasCai001%22%7D
yolov3:https://blog.csdn.net/leviopku/article/details/82660381