【问题标题】:Image classification, narrow domain with custom labels图像分类,带有自定义标签的窄域
【发布时间】:2023-03-13 01:53:02
【问题描述】:

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

  • 数百种型号的摩托车我感兴趣。
  • 我确实有每个摩托车型号的数十甚至数百张照片。

能否请您指出一个实际示例,该示例演示了如何根据您的数据训练模型,然后使用它对图像进行分类?它需要是一个深度学习模型,而不是简单的逻辑回归。

我不确定,但我似乎无法使用预训练的神经网络,因为它已经在猫、人类、汽车等广泛的对象上进行了训练。他们可能不太擅长区分我感兴趣的摩托车细微差别。

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

【问题讨论】:

  • 在 SO 上寻求建议是题外话,因为这个问题本身不是一个特定的编程问题,我建议你在 stats.stackexchange.com

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


【解决方案1】:

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

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

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

可以在此处看到一个示例:https://github.com/cpra/dlvc2016/blob/master/lectures/lecture10.pdf。幻灯片 33。

【讨论】:

    【解决方案2】:

    来自kaggle challenge 的这篇论文Quick, Draw! Doodle Recognition 可能与您正在做的事情足够相似。代码在github。如果每个类别只有几百张图片,您可能需要一些 data augmentation

    【讨论】:

    【解决方案3】:

    你想要的是漂亮的 EZ。跟随暗网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 的某个地方。

    其余的都在链接内。祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-13
      • 2011-01-06
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多