一年前,我训练了一个模型来检测花朵。一年后,我再次启动了该项目,但是首先,我决定通过培训它来检测红色和绿色蜡笔,以确保我仍然记得。
我的工作或多或少地遵循了本教程– https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10
我有两个标签,绿色和红色。我有200张训练图像和20张测试图像。 使用fast_rcnn_inception。我按照这些步骤运行了模型。
它只用200张图像就能检测到蜡笔,但是根本无法分辨红色和绿色蜡笔。我以为可能是我搞砸了设置,但是如果我将一支蓝色的笔插入,则会弹出标签!
即使我提供训练图像,它也将其中的99%归为两支绿色笔。即使每个图像总是有两支不同的笔!
此型号可以搭配颜色吗?还是以某种方式转换颜色并将其弄乱了?颜色难于检测,我只需要更多训练图像吗?我可能搞砸了设置,因为它甚至无法正确分类训练图像吗?
我正在使用的配置文件在这里: https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/faster_rcnn_inception_v2_pets.config 我将第9行,第130行和第108行更改为false。
答案 0 :(得分:1)
通常,神经网络可以检测颜色。
但是他们经常学会不这样做。由于色温和透视图的差异,不同的颜色会产生相同或相似的像素级值。因此,当在较大的数据集上进行训练时,网络往往变得与颜色无关。不幸的是,我只能从直觉出发,不能提供任何示例或参考,但是上面的图片应该可以使您理解为什么。
在您的情况下,问题变得更加复杂,因为存在检测对象框的竞争任务。因此,在重新训练期间,检测网可能对诸如颜色之类的微弱线索不敏感。
要解决这种情况,建议您在重新训练期间仔细查看分类准确性。据我所知,教程代码仅提供损失值。人们应该期望,在再培训期间至少火车套件应几乎完全过拟合,即绿色和红色蜡笔必须变得可区分。如果没有,那么延长培训时间或降低学习率可能是合理的。