我正在尝试检测汽车图像上的损坏类型(划痕,凹痕,裂纹)及其边界框。我用fizyr在retinanet上进行了训练,但是模型太过拟合了。在训练时,我的mAP为0.89,而在测试时,我的mAP为0.07。我已经使用了1200张图片进行训练和350张测试,细节如下。
-Training result
-22 instances of class rusted with average precision: 0.7371
-93 instances of class missing with average precision: 0.9160
-517 instances of class major dent with average precision: 0.9461
-1201 instances of class scratch with average precision: 0.9356
-84 instances of class tear with average precision: 0.8001
-470 instances of class minor dent with average precision: 0.9523
-435 instances of class cracked with average precision: 0.9276
-mAP using the weighted average of precisions among classes: 0.9329
-mAP: 0.8879
Test
-3 instances of class rusted with average precision: 0.0000
-13 instances of class missing with average precision: 0.0874
-160 instances of class major dent with average precision: 0.1057
-318 instances of class scratch with average precision: 0.1434
-27 instances of class tear with average precision: 0.0462
-111 instances of class minor dent with average precision: 0.0205
-127 instances of class cracked with average precision: 0.1159
--mAP using the weighted average of precisions among classes: 0.1079
mAP: 0.0742我知道课程是不平衡的,但考试和培训之间的差异如此之大。此外,模型在scratch类上的表现也很差,因为scratch类有大量的训练样本。
发布于 2019-06-28 03:16:03
是的,你的类是不平衡的,但你有足够的图像,你应该做得更好。您是如何选择训练/测试分区的?结果表明,那里存在随机化问题。无论如何选择它们,您的模型正在学习错误的分类标准。
这让我想起了狗/猫的模型,它学会了区分人们拍摄宠物的背景。
首先,尝试轮换或洗牌您的训练和测试集。您可以在此应用程序中使用交叉验证吗?仅此一项就可以解决您的问题。
如果做不到这一点,您是否可以更改模型--也许包括一个dropout层?这将有助于取消学习无效的假设。
https://stackoverflow.com/questions/56781942
复制相似问题