图像分类,带自定义标签的窄域

时间:2017-02-28 09:46:44

标签: machine-learning tensorflow neural-network classification deep-learning

假设我想按型号分类摩托车

  • 我有几百种型号的摩托车我很感兴趣。
  • 我确实拥有每辆摩托车模型的数十张,有时数百张的照片。

您能否指点一下实际示例,演示如何训练数据模型,然后用它来分类图像?它需要是一个深度学习模型,而不是简单的逻辑回归。

我不确定,但似乎我不能使用经过预先训练的神经网络,因为它已被训练过各种各样的物体,如猫,人,汽车等。他们可能是不太擅长区分我感兴趣的摩托车细微差别。

我发现了几个这样的例子(tensorflow有一个),但遗憾的是,他们都使用了预先训练过的模型。没有一个例子如何在你自己的数据集上训练它。

3 个答案:

答案 0 :(得分:1)

在像您这样的情况下,您可以使用转移学习或微调。如果你有超过一千辆摩托车的图像我会使用微调,如果你有较少的转移学习。

微调使用预先​​训练的模型并使用不同的分类器部件。然后新的分类器部分可能是训练模型的最后1-2层被训练到您的数据集。

转移学习意味着使用预先训练的模型并让它输出输入图像的特征。现在,您可以使用基于这些功能的新分类器。也许是SVM或逻辑回归。

这里可以看到一个例子:https://github.com/cpra/dlvc2016/blob/master/lectures/lecture10.pdf。幻灯片33。

答案 1 :(得分:1)

Quick, Draw! Doodle Recognition的这篇论文kaggle challenge可能与您所做的足够相似。该代码位于github上。如果每个类别只有几百张图像,则可能需要一些data augmentation

答案 2 :(得分:0)

您想要的是漂亮的EZ。遵循Darknet YOLO实施

说明:https://pjreddie.com/darknet/yolo/

代码https://github.com/pjreddie/darknet

在COCO上培训YOLO 如果您想使用不同的训练方式,超参数或数据集,则可以从头开始训练YOLO。这是在COCO数据集上运行它的方法。

获取COCO数据 要训​​练YOLO,您需要所有的COCO数据和标签。脚本scripts / get_coco_dataset.sh将为您完成此操作。找出要放置COCO数据并下载的位置,例如:

cp scripts/get_coco_dataset.sh data
cd data
bash get_coco_dataset.sh

在内部添加数据,并确保它与测试样本相同。 现在,您应该拥有为Darknet生成的所有数据和标签。

然后使用预先训练的体重调用训练脚本。

请记住,仅在摩托车上进行训练可能无法得出正确的估计。会有偏差的结果出来,我在b4的某个地方加红色。

其余全部在链接内。祝你好运