目标检测模型在训练时性能不好简要分析

目标检测性能不好的原因有很多,这里简要分析一下常见的情况。

1、很多人总说喜欢拿过拟合说事,那么过拟合是什么情况?
按照我的理解,过拟合就在train上很高,在test上很低。严谨一点来说就是train的loss一直降低,test的loss是先降低后提升。为什么是test loss降低的过程代表是模型训练拟合的过程,test loss提升的过程表示模型过拟合训练集,严重偏好训练集的数据。

2、目标检测的过拟合其实没有降点那么多。
(1)目标检测模型,到最后都会过拟合,但是这种过拟合在test上面一般不会降点太多,更何况我们训练模型也就几十epoch就结束了。如果你训练几百epoch那么过拟合的风险就很大。
(2)怎么确定模型是否过拟合?
A、在train上测试,如果结果到90+了,但是测试集只有50、60。可以测试一下不同epoch的模型结果,发现20epoch效果好,30epoch效果差一些,那么考虑过拟合。
B、如果train上测试,低于80,那么模型显然是欠拟合啊!train上只有80,怎么能叫过拟合。

3、目标检测性能不好一般咋分析?
(1)数据分布问题
训练集和测试集是不是同一数据分布,也就是训练集和测试集划分的是否合理。
A、图像类型同分布
假如train的数据是RGB的图像,测试的是灰度图肯定不行哈!
B、目标类型同分布
训练中全都是大目标,测试的都是小目标,目标的尺度分布不一致。或者训练集中目标都是黑暗背景下,测试目标都是高亮的情况下。
(2)性能不好如果是性能相当差(低于30)。
那就考虑是不是输入数据有问题,或者后处理出问题(这样的可能性小,因为数据预处理和后处理一般都是用的那些代码)。
(3)性能不好,别人训练80,我训练60(一般我们遇到的都是这个情况)。
主要还是参数设置
A、比如lr(过大或者过小,没有学习率下降)
B、anchor(不合适,没有计算目标尺度分布)
C、图像尺度(有时候没有注意,输入图像1024,但是yolo的输入默认416,这一搞不就凉凉)
D、其他方面就是用的网络模型不好(别人用resnet,我用vgg;或者faster rcnn和yolo等),FPN、roi align、roi pooling等(但是这些一般不会降点太多)

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值