我们项目中用到yolo和resnet以及deepsort和CRNN,为了提高准确率,从刚开始的调参到现在的固定几种技巧,基本足够应付目前的项目
首先对于实际项目中,调整参数对于准确率提升基本影响不大,所以我后来基本不调参了
为了提高准确率,目前主要使用如下技巧:
1. 验证数据集的准确性,之前被实习生坑过,做的数据集完全是乱七八糟的,导致训练loss一直下降不了,找了好久才发现是数据集的问题
2. 数据增强,这个比较常用,主要是模拟现实场景的光照,起雾等,当然都是比较简单的效果,复杂的我们也做不出来
3. 每一个场景自己单独训练一个模型,这个是最有用的,最早我们想训练一个通用的模型,以为在A地方训练的模型在B地方也会很好用,结果发现不是的,在A训练的模型,到了B地可能准确率只有50%左右,只有再训练才可以,我们后来大概总结下模型的训练技巧
第一列表示用了哪个地方的训练数据训练出来的模型,第一行表示在某地测试的结果
A | B | A+B | |
A | 95+% | 50+% | 70% |
B | 50+% | 95+% | 70% |
A+B | 80+% | 80+% | 70% |
具体准确率我已经忘记了,但是最终的结果表明,针对某个场景训练的模型是最有效的,所以后期我们基本是每个地方单独训练一个模型出来使用