目标检测通用trick

1. 数据增强

离线增强 : 直接对数据集进行处理,数据的数目会变成增强因子 x 原数据集的数目 ,这种方法常常用于数据集很小的时候

在线增强 : 这种增强的方法用于,获得 batch 数据之后,然后对这个 batch 的数据进行增强,如旋转、平移、翻折等相应的变化,由于有些数据集不能接受线性级别的增长,这种方法长用于大的数据集,很多机器学习框架已经支持了这种数据增强方式,并且可以使用 GPU 优化计算。

1.1 在线增强常用

  • 空间几何变换:翻转(水平和垂直)、随机裁剪、旋转、放射变换、视觉变换(四点透视变换)、分段放射

  • 像素颜色变换类:CoarseDropoutSimplexNoiseAlphaFrequencyNoiseAlphaElasticTransformation

  • HSV对比度变换

  • RGB颜色扰动

  • 随机擦除

  • 超像素法

  • 转化法

  • 边界检测

  • Grayscale

  • 锐化与浮雕:如视频中常用

2. 训练策略

2.1 warmup:

训练初期由于离目标较远,一般需要选择大的学习率,但是使用过大的学习率容易导致不稳定性。所以可以做一个学习率热身阶段,在开始的时候先使用一个较小的学习率,然后当训练过程稳定的时候再把学习率调回去。e.d., YOLO v5, effcientDet,

\dots

2.2学习率衰减策略:

  • 1.指数衰减
  • 2.固定步长衰减
  • 3.多步长衰减
  • 4.余弦退火衰减

2.3 Label smoothing:

one-hot 带来的问题:(容易过度自信,导致过拟合)

对于损失函数,我们需要用预测概率去拟合真实概率,而拟合one-hot 的真实概率函数会带来两个问题:

1)无法保证模型的泛化能力,容易造成过拟合;

  1. 全概率和0概率鼓励所属类别和其他类别之间的差距尽可能加大,而 由梯度有界可知,这种情况很难adapt。会造成模型过于相信预测的类 别。

Label smoothing 增加了模型的泛化能力,一定程度上防止过拟合。

做法:标签中不再只有
0
,
1
0,1
0,1
,可以是0.6,0.99,之类

2.4 K-Fold交叉验证

目标检测通用trick

模型选择,模型选择超参

测试方式

  • 1.将所有训练的KFold进行融合

  • 2.最优模型重新训练全部数据后预测

3. 推断策略

3.1NMS(非极大值抑制)

同一个物体可能有好几个框,我们的目标是一个物体只须保留一个最优的框:于是我们就要用到非极大值抑制,来抑制那些冗余的框: 抑制的过程是一个迭代-遍历-消除的过程。

3.2 soft NMS

不要粗鲁地删除所有IOU大于阈值的框,而是降低其置信度

3.3 DIoUNMS

在nms过程中采用DIoU的计算方式替换了IoU,由于DIoU的计算考虑到了两框中心点位置的信息,故使用DIoU进行评判的nms效果更符合实际,效果更优。

3.3 DIoUNMS

在nms过程中采用DIoU的计算方式替换了IoU,由于DIoU的计算考虑到了两框中心点位置的信息,故使用DIoU进行评判的nms效果更符合实际,效果更优。

目标检测通用trick