您现在的位置是:首页 >技术交流 >目标检测提升方法记录网站首页技术交流

目标检测提升方法记录

Nine-days 2024-06-17 10:22:10
简介目标检测提升方法记录

1. 添加预训练(imagenet/coco),增强模型泛化能力,缓解过拟合,减少误检(很有用),无副作用。

2. 添加纯负样本(检测base模型,检测分数大于0.05的误检),加入训练,有效减少误检 , 副作用是只添加纯负样本map可能会少许降低。

3.搜索特定类别的误检样本作为纯负样本,同时也可基于常出现的误检增加一个检测类别来减少该类别的误检(部署时可以考虑去除该类别),带来的副作用是定位误差,重复检测误差变大,map可能会降低。

4.增加小目标的训练过滤ignore (训练时涂黑面积小于一定值的目标)可以有效提高大目标的检测精度,副作用是小目标精度会受到影响。(如部署时也增加小目标过滤,则无此影响)

5. Mosaic、RandomAffine 尽量减少对目标的截断,减少一些边缘padding,可以有效提升map精度。

6. Mixup 在训练后期必须提前关闭,否则会引起负样本的误检。(训练过程中负样本和正样本很容易mix到一起,导致负样本对应得激活变高)

7.场景下得同类目标容易引起误检,比如做人形检测,跟人相关得目标,沙发、宠物、交通工具等跟人交互较多得目标很容易被误检,针对这种样本要针对性增加作为负样本来减少误检。通过对训练集目标涂黑,检测时如果仍能检测到目标就作为负样本也能显著提升误检。

8. 增大训练数据集得数量一般可以显著提升模型得map及精度PR指标。

9. 采用RELU6可以有效得减少部署量化难度,提升部署量化模型得精度。

10.HSV色彩变化强度增大可以有效提升色彩变化大得样本精度,在特定色彩测试集上面得精度表现可能有少许降低。

11.  yolox 正负样本分配策略, center_radius改小 会降低大尺度目标得检测精度,提高小目标检测精度(可能)。

12. 不同的模型对0.01阈值得敏感度不一样,所以有些模型得map看着比其他模型高,但是PR确没有明显变化。

13.对检测头蒸馏(KD-LD)一般效果会略好于对特征层蒸馏(FGD)

14.Focal Loss一般会提升目标得检测率,但是有可能也会带来难样本得误检,导致检测得数量远远大于gt的数量。

15.打伪标签,可以在测试时增加多尺度图像测试(TTA)提升伪标签精度,同时通过验证集上选择Fscore最大值对应的阈值作为伪标签的阈值。

16.训练中如果有强数据增强,通过延长epoch (1200)可以一定程度的提高模型精度。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。