【目标检测】yoloX算法详解

一、yoloX的改进

由于yoloV4和yoloV5存在过度优化的问题,因此yoloX以yoloV3和Darknet 53为基线,采用了Darknet 53骨干网的结构架构和SPP层,改变了一些训练策略:

  1. 增加了EMA权重更新、consine lr schedule、IoU损失和IoU感知分支,使用BCE Loss训练cls和obj,IoU Loss作为test分支。
  2. 由于RandomResizedCrop和马赛克增强重叠,因此只采用了RandomHorizontalFlip,ColorJitter、multi-scale和mosaic用于数据增强。
  3. 使用Mixup增强,不使用Imagenet预训练方法。

二、yoloX结构框架

三、Decoupled Head(解耦头部)

思想:分离分类和定位操作
好处:(1)提高了了yoloX收敛速度;(2)实现了yolo的端对端性能。
结构图:
【目标检测】yoloX算法详解_第1张图片YOLOv3与yoloX解耦头之间的区别。对于每一层FPN特征,我们首先采用1 × 1的conv层,将特征通道减少到256,然后再增加两个并行分支,每个分支有两个3 × 3个卷积层分别用于分类和回归任务。IoU分支被添加到回归分支上。

四、免锚

无锚机制的优点:减少了设计参数的数量
实现方式:将每个位置的预测从3个减少到1个,并使他们直接预测4个值(即网格左上角的两个偏移量、预测框的高度和宽度)。同时指定了中心,每个物体的阳离子作为正样本,并预先定义一个刻度方位以指定每个物体的FPN级别,可以降低探测器的参数和GFLOPs,使其速度更快,性能更好。

五、多个正样本

操作:参照FCOS中的‘中心取样’,只为每个对象的平均值选择了一个正样本(中心位置),忽略其他高质量的预测。
优点:(1)有利于梯度回归;(2)缓解训练中的正负样本不均衡

六、SimOTA(高级标签分配)

四个关键点:(1)loss/quality loss (2)cneter prior (3)每个GT的正样本anchor动态个数 (4)全局试图
整体逻辑:

  • 确定正样本候选区域
  • 计算anchor与gt的IoU
  • 在候选区域计算cost
  • 使用IoU确定每个gt的dynamic_k
  • 为每个gt取cost排名最小的前dynamic_k个anchor作为正样本,其余为负样本
  • 使用正负样本计算loss
    具体细节:
    1、dynamic_k确定方式:
  • 获取与当前gt有top10最大IoU的prediction结果
  • 将这top10IoU进行sum,就为当前gt的dynamic_k,dynamic_k最小取1
    由于前期模型预测不准,导致IoU基本比较小,所以观测到前期dynamic_k大多为1
    2、计算cost时候,Lcls和Lreg比例是1:3,而最终计算loss时,Lcls和Lreg比例是1:5,原因是:在寻找正样本时,如果一个anchor已经能很好的区分前景和背景,那即使reg预测不准,也可以作为正样本,所以相比于loss计算,在cost计算时,Lcls给予更多权重,而reg可以通过不断地训练逐步优化。

七、端对端yolo(可选)

增加了2个卷积层:

  • 一对一地标签分配
  • 停止梯度
    确保了检测器端对端,但会导致性能和推理速度下降,一次作为可选方式提供

你可能感兴趣的:(目标检测,算法,目标检测,计算机视觉)