2、匹配策略
直接上配置参数,熟悉Nanodet的小伙伴你是不是又知道了!嗯,是的是熟悉的味道,就是NanoDet-Plus的哪个策略,依旧很香,依旧很好用!!!
当年的Nanodet-Plus是这样的:
这里所谓动态匹配,简单来说就是直接使用模型检测头的输出,与所有Ground Truth计算一个匹配得分,这个得分由分类损失和回归损失相加得到。特征图上N个点的预测值,与M个Ground Truth计算得到一个N×M的矩阵,称为Cost Matrix,基于这个矩阵可以让当前预测结果动态地寻找最优标签,匹配的策略有二分图匹配、传输优化、Top-K等,在NanoDet中直接采取了Top-K的策略来匹配。
这种策略的一个问题在于,在网络训练的初期,预测结果是很差的,可能根本预测不出结果。所以在动态匹配时还会加上一些位置约束,比如使用一个 5×5 的中心区域去限制匹配的自由程度,然后再依赖神经网络天生的抗噪声能力,只需要在Ground Truth框内随机分配一些点,网络就能学到一些基础的特征。
3、损失函数
这部分主要是是用来QFL和GIOU Loss,这里不进行过多描述,以后尽可能补上吧,今天太累了,已经太晚了。。。。
4、输入端部分
阶段一
作者在训练的第一阶段,主要是使用了CacheMosaic数据增强,RandomResize,RandomCrop,RandomCrop,CacheMixup以及YOLOX关于HSV的一些增强手段,这里的CacheMosaic以及CacheMixup是mmdet中全新提出的新Trcik炼丹术;
阶段2
作者在训练阶段2提出了前面提出的新技术,CacheMosaic以及CacheMixup,看样子这里应该是学习YOLOX的训练技术:
4.1、CacheMosaic
1、Mosaic流程:
- 选择Mosaic中心作为4幅图像的交点。
- 根据索引获取左上图,从自定义数据集中随机抽取另外3张图片。
- 如果图像大于Mosaic Patch,子图像将被裁剪。
2、CacheMosaic流程:
- 将上次Transform的结果加到Cache中。
- 选择Mosaic中心作为4幅图像的交点。
- 根据索引获取左上图,从结果缓存中随机抽取另外3张图片。
- 如果图像大于Mosaic Patch,子图像将被裁剪。
优点我猜就是训练快!!!
4.2、CacheMixup
1、Mixup
- 另一个随机图像被数据集挑选并嵌入到左上角的Patch中(在填充和调整大小之后)
- mixup变换的目标是mixup image和origin image的加权平均。
2、CacheMixup
- 将上次Transform的结果加到Cache中。
- 从Cache中挑选另一个随机图像并嵌入到左上角的Patch中(在填充和调整大小之后)
- mixup变换的目标是mixup image和origin image的加权平均。
参考
[1].https://github.com/RangiLyu/mmdetection/tree/rtmdet_config/configs/rtmdet.