我使用Tensorflow和Inception的预训练模型训练了一个自定义人员探测器,然后经过几千步并且平均损失了2-1,我停止了训练并用实时视频进行了测试。结果非常好,只有很少的误报。它可以检测到一些人,但不是每个人,所以我决定继续训练模型,直到我得到平均损失低于1然后再次测试它。即使没有物体存在,它现在几乎可以检测到所有人甚至视频的整个帧。这些模型似乎在图片上很好用,但在视频上却没有。这是否过度拟合?
抱歉,我忘记了它的步数。我不小心删除了包含ckpt和tfevents的培训文件夹。
编辑:我忘记了我也在使用相同的数据集训练相同的模型,但在云上作为备份更高的批量大小,现在处于更高的步骤。稍后我会编辑帖子,一旦我从云端下载并测试模型,就会从tensorboard提供信息。
edit2:我从云上下载了200k步的训练模型并且它正在工作,它可以检测到人,但有时在移动摄像机时将整个帧识别为“人”不到一秒钟。我想这可以通过继续训练模型来改善。 Total Loss on tensorboard
现在,我将继续对云进行培训,并尝试记录测试的每个结果。我还将尝试在我的数据集上调整一些图像的大小,并使用mobilenet在我的本地计算机上训练它,并比较两个模型的结果。
答案 0 :(得分:0)
正如您所说,当训练迭代次数较少时,模型表现良好,我猜测预训练模型已经可以检测到人物对象,而您的训练集使检测结果更差。
这些模特似乎在图片上效果很好,但在视频上效果不佳
如果检测到您的单张照片正常,那么视频也应该有效。唯一的区别可能是视频图像分辨率和质量。因此,请比较图像分辨率和视频。
这是否过度拟合?
您正在谈论的图像和视频如果图像用于培训,则不应使用它们来评估模型。如果模型过度拟合,它将检测训练图像,但不会检测任何其他图像。
正如您所说,模型检测到太多检测,我认为这不是因为过度拟合,而是可能与您的数据集有关。我想
你训练的数据量太少了。
网络模型对于数据量来说太大而且复杂。尝试像VGG,inception_v1(ssd mobile net)等小型网络。
我认为您可以仔细检查用于培训的数据集,并尽可能多地使用培训数据。这些是我经常遇到的事情和浪费时间。