【问题标题】:How to train YOLO-Tensor flow own dataset如何训练 YOLO-Tensor 流自己的数据集
【发布时间】:2019-06-24 15:24:43
【问题描述】:

我正在尝试制作一个可以从视频帧中检测交通标志的应用程序。我正在按照https://github.com/thtrieu/darkflow 中的步骤使用 yolo-tensor。

我需要知道如何使用我的交通标志图像数据集训练这个模型?

【问题讨论】:

  • 请按照页面上的说明发布您取得的进展。问题部分也有一些很好的信息。到目前为止,您尝试过什么?
  • 我的步骤:1.我从github克隆了代码,我成功安装了darkflow。 2. 我下载了 yolo-tiny.weight 来测试一个示例图像,我使用命令 flow --imgdir sample_img/ --model cfg/yolo-tiny.cfg --load bin/yolo-tiny.weights --json 但它给了我一个错误,即“流”不被识别为内部或外部命令,可运行的程序或批处理文件。 3. 我正在尝试训练自己的数据集,但我不清楚如何进行注释?以及您之前提到的边界框?

标签: python-3.x tensorflow


【解决方案1】:

如果您在 Windows 上使用 Darkflow,那么您需要对使用 Darkflow 的方式进行一些小调整。如果克隆代码并直接从存储库使用,则需要将 python 放在给出的命令前面,因为它是一个 python 文件。

例如python flow --imgdir sample_img/ --model cfg/yolo-tiny.cfg --load bin/yolo-tiny.weights --json

如果您在全局使用 pip 进行安装(这不是一个坏主意),并且您仍想从任何目录使用 flow 实用程序,请确保随身携带流文件。

要进行训练,请使用此处 github 页面上列出的命令:https://github.com/thtrieu/darkflow

如果在您自己的数据上进行训练,您将需要采取一些额外的步骤,如下所述:https://github.com/thtrieu/darkflow#training-on-your-own-dataset

您的注释需要采用流行的 PASCAL VOC 格式,这是一组 xml 文件,包括文件信息和边界框数据。

将流命令指向要训练的新数据集和注释。

【讨论】:

  • 非常感谢,在流程为我工作之前添加了 python。我用一些示例图像对其进行了测试,它为我生成了 json 文件。现在我自己的数据是问题。
  • 在询问更多问题之前,请仔细阅读我发送给您的链接。信息就在那里。它解释了如何进行迁移学习,以便您重新训练最后 2 层以生成新的权重。该页面解释了它。您需要自己进行注释来训练模型。
  • 对不起,如果我不清楚。训练您自己的数据集部分我正在按照这些步骤复制和制作新的 cfg 文件,其中对类和过滤器进行了一些更改。我需要知道显示什么结构是数据,我不熟悉注释以及如何用我的图像制作它们。此时我只有每种类型标志的一些图像。请让我知道如何使用图像制作注释和边界框数据这里有任何工具或脚本来生成它吗?
  • 数据需要是PASCAL VOC的形式。它是一种流行的注释数据格式。是xml格式。您可以尝试下载一些 VOC 数据集以查看它的外观。如果您查看 darkflow 项目的问题页面,您会发现很多关于生成注释的讨论。如果您通读这些讨论,您会发现更多信息。您可以使用 github 上的 labelImg 项目来标记您的图像或创建您自己的工具。不过,您将需要手动标记,
  • 非常感谢@JCooke 我已经用注释制作了我的数据集并对其进行了训练。但是在测试时遇到问题请帮忙,看看github.com/thtrieu/darkflow/issues/345
【解决方案2】:

最适合你练习的数据是 PASCAL VOC 数据集。您需要为培训准备 2 个文件夹。 1 个包含图像的文件夹和 1 个包含 xml 文件的文件夹(注释文件夹),1 个图像将需要 1 个 xml 文件(具有相同名称)内容所有基本信息(对象名称、对象位置......)。之后,您只需要在 cfg 文件夹中选择 1 个预定义的 .cfg 文件并运行以下命令:

flow --model cfg/yolo-new.cfg --train --dataset "path/to/images/folder" --annotation "path/to/annotation/folder"

阅读更多darkflow 支持的选项,以优化训练过程。

【讨论】:

    【解决方案3】:

    花了太多时间在如何训练自定义数据集以进行对象检测之后

    先决条件: 1:训练环境:至少有4gb GPU的系统或者你可以使用AWS/GCP预配置的云机安装cuda 9 2:Ubuntu 16.04 操作系统 3:要检测的物体的图像。图像大小不应太大,否则会在数据集训练中造成内存不足问题 4:标签工具很多,我用的LabelImg/BBox-Label-Tool也不错 我也尝试了 python 项目数据集生成器,但使用数据集生成器标记的结果在实时场景中效率不高

    我对训练环境的建议是使用 AWS 机器,而不是花时间在本地安装 cuda 和 cudnn,即使您可以在本地安装 cuda 但如果您没有 GPU >= 4 gb,您将无法安装训练多次会因为内存不足而中断

    训练数据集的解决方案:

    1:使用 tensorflow 对象检测 api 训练 ssd_mobilenet_v2 数据集 此训练输出可在 android 、 ios 平台上使用

    2:使用darknet训练需要pascal VOC数据格式标注的数据集,因为labelIMG可以很好的完成标注工作 3:使用暗流重新训练作为暗网输出的数据权重

    【讨论】:

      猜你喜欢
      • 2020-02-23
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 2018-12-01
      • 2017-03-31
      相关资源
      最近更新 更多