训练Tensorflow识别特定图像

时间:2017-07-11 23:26:42

标签: machine-learning tensorflow image-recognition

我想训练一个张量流模型来识别一个非常具体的家用电器。我熟悉使用Tensorflow做各种事情,但我不确定构建数据集的最佳方法。

我最初的想法是从多个角度为自己提供100-200张设备图像,然后从谷歌搜索中获得1000张左右图片不正确的图片。有没有比我打算解决它更好的方法?

我很好,从容器的两侧可以更好地识别容器更多的特性,但希望能够从前角获得高水准的精确度。

2 个答案:

答案 0 :(得分:1)

您可以使用imagenet下载整个图像集,因为它会为您提供特定图像数据集的集合作为URL,因此您只需编写一个访问该URL并将图像下载到特定目录的代码。 / p>

现在是您训练图像的下一步。 我有imagenet代码下载图像,可以分享,如果你想

答案 1 :(得分:1)

要解决此问题,您应该利用转移学习。简单地说,转移学习利用已经训练过的或预先训练过的分类器并在输出层上工作,通常称为瓶颈,以保留模型以识别您的自定义图像。这样可以节省您从头开始构建/训练图像识别分类器的时间和精力。

Google Inception V3模型是一个有用的起点。通过该模型,已经投入了大量关于工程和培训时间的努力来创建最先进的图像分类器。该模型在2012年的ImageNet数据集上进行了培训。

这个优秀的教程TensorFlow for Poets将指导您完成在预训练的Inception V3模型上进行转移学习的过程,并获取模型以识别您的自定义图像。

图像集的大小对于一开始并不坏,但是,作为训练机器学习算法的经验法则,更多数据通常会带来更高的准确性和更好的泛化。这考虑到了与偏差 - 方差权衡相关的其他问题得到了尊重。

在我看来,你不需要对负面例子进行任何培训。在我的脑海中,我建议您使用"肯定" 示例数据集进行训练,然后设置准确度阈值。例如,如果无法以高于60%的准确度识别图像,则将其归类为"而不是家用电器"。然后,您可以使用负面示例数据集和正面示例测试集来检查算法的运行情况。请记住保留一个用于超参数调整的验证集。