作者总结了一些在不改变模型结构(即不影响模型推理时间)前提下提升目标检测性能的方法。
1、Visually coherent image mixup
image.pngmixup方法在图像分类任务中很常见,作者将这个思路迁移至目标检测任务。
在“屋子中的大象”这个实验中,由于目标检测模型对未见过的场景难以有效归纳,所以对于出现在屋子中大象无法正常识别,该实验证明目标检测方法泛化能力不佳。MIXup方法可生成一些目标间的组合,有助于缓解此问题。同时mixup使得目标堆叠,实际上目标检测中经常遇到这样的问题,人为堆叠目标有助于提升模型对堆叠目标的识别。
在训练过程中,mixup实际增加了训练的难度,使得测试时模型对目标分类的置信度分数降低,但是并不影响检测性能,并且提升对于不常见场景的检测能力。
image.png
2、Classification Head Label Smoothing
分类模型,预测观测样本x属于K个类别的概率。对于观测样本x,采用P(y’|x)表示模型对x的预测的概率分布,q(y|x)表示模型输出y的真实分布。分类器采用交叉熵做为目标函数,使模型预测的概率分布P(y’|x)尽量接近真实的概率分布q(y|x)。在进行模型训练时,通常采用类似one-hot-to-vec的0或1的方式,对真实分布q(y|x)进行编码,即观测样本属于某些类别,则对应类别的P(y|x)的值为1,否则为0。这样的编码方式存在两个明显的问题:
(1)可能导致过拟合。0或1的标记方式导致模型概率估计值为1,或接近于1,这样的编码方式不够soft,容易导致过拟合。
(2)模型become too confident about its predictions。情况与过拟合比较类似,模型对它的预测过于confident,导致模型对观测变量x的预测严重偏离真实的情况.
Label Smoothing Regularization(LSR)就是为了缓解由label不够soft而容易导致过拟合的问题,使模型对预测less confident。LSR的方法原理:
image.png
3.数据预处理
形状变换与颜色变换
由于两阶段方法要对featuremap进行各种裁剪操作,所以二阶段方法不再需要进行图像形状层面的数据增强,而单阶段方法需要相关操作。
4.cosine learning rate decay and Warm up learning rate
常见根据迭代步数阶梯降低学习率方法会导致优化器需要额外迭代步才能稳定,cosine learning rate decay可以改进这一点。Warm up learning rate可以组织训练初始时的梯度爆炸。
image.png
5.Synchraonized Batch Normalization
BN在小batchzise场景下会影响性能,SBN可改进这一点。
6.单阶段检测方法的随机训练尺度
为了适应内存限制及更简单的batching,单阶段检测方法往往固定村联尺度。对yolov3训练尺度调整为{320,352,384,416,448,512,7=544,576,608}
7.实验结论
对于yolov3,数据增广策略使得性能提升16%,其他策略可增加3.43%
而数据增广对faster rcnn的影响只有0.16%。
8、yolov3模型改进总结
原文:https://mp.weixin.qq.com/s/1v84QyvH-k0lzRPOEyaBgw
8.1
SPP层是有效的,Size设置接近feature map的时候效果更好。
8.2
Concate的方法要比Add的方法更柔和,对小目标效果更好。
8.3
多尺度训练对于尺度分布比较广泛的问题效果明显,比如VOC这类数据集。但是对于尺度单一的数据集反而有反作用,比如红外小目标数据集目标尺度比较统一,都很小。
8.4
Anchor对模型影响比较大,Anchor先验不合理会导致更多的失配,从而降低Recall。
8.5
对于小目标来说,浅层的信息更加有用,那么进行FPN的时候,不应该单纯将两者进行Add或者Concate,而是应该以一定的比例完成,比如对于小目标来说,引入更多的浅层信息,让浅层网络权重增大;大目标则相反。后边通过阅读发现,这个想法被ASFF实现了,而且想法比较完善。
网友评论