TensorFlow Object Detection API 只训练一个类
Posted
技术标签:
【中文标题】TensorFlow Object Detection API 只训练一个类【英文标题】:TensorFlow Object Detection API trains only one class from several 【发布时间】:2018-01-14 13:20:28 【问题描述】:我正在使用 TF 对象检测 API 在我自己的数据集上运行几个类的训练过程,但是经过相当多的步骤(大约 20k)后,我可以在 TensorBoard 的 PerformanceByCategory 菜单中看到 mAP 仅针对一个类别增加,其他是甚至还没有开始。
我的数据集是 PascalVOC 格式,我正在关注 this answer 来创建它。数据准备好后,我生成了 Pascal 记录,编辑了标签映射和管道配置,将所有带有 ssd 模型检查点的员工下载到 Google Cloud Platform,并根据Object Detection API Documentation 开始了培训和评估工作。
但从 TensorBoard 看来,数据或其他方面有问题,因为我的其他课程没有任何反应。
在使用多个类训练 Object Detection API 时是否有任何提示或功能?
提前感谢您的帮助!
[已编辑]:
因此,在尝试使用教程中默认提供的 PascalVOC 数据集训练模型后,我注意到他们的 Pascal 记录比我的大得多。我在文本编辑器中打开它们,ImageSets 中的每个类都有引用,但是我的记录只包含我在 create_pascal_tf_records.py 中指向的那个类的引用。
我想念什么?请帮忙!
【问题讨论】:
num_steps
表示您的程序将运行的迭代总数。您的数据似乎有问题,请检查您的数据是否已被阅读器正确检索
我该如何检查,身体?在我创建了 pascal tf 记录并更改了标签映射之后,我正在关注 this answer 以生成 voc pascal 格式的数据。一切看起来都很好,在这种情况下会产生什么影响?
【参考方案1】:
好的,我想我已经弄清楚出了什么问题。
主要问题是我不正确地制作了 ImageSets。对于每个班级,我都添加了相应的图像列表,因此在我的情况下,每个 train 和 val 文件都不同。
由于this answer:
关键是我们目前只查看第一列 aeroplane_train.txt 文件(与其他文件相同) xxx_train.txt 文件)并让我们找出每个图像的路径 训练集。
由于每个文件都不同,create_pascal_tf_records.py 只选择了我的第一堂课的路径。
希望这对其他人有帮助。
【讨论】:
我也遇到了同样的问题,能否请您详细说明如何解决这个问题? .我有 3 个类,我使用 labelImg 对它们进行了标记,然后创建了 xml 的 csv,然后创建了我的 tfrecord,总共用于所有 3 个类。所以,在这种情况下,我只有 1 个 train tfrecords 和 1 个 val tfrecords。帮帮我!! @saikishor 在我的情况下,故障出在 train 和 val 文件中。我对每个文件都有不同的图像列表,但发现所有这些文件都应该有相同的图像列表。因此,例如 aeroplane_train.txt、dog_train.txt、cat_train.txt 等应该具有相同的第一列,只有第二列不同。 很高兴知道这一点!我昨晚发现了我的问题,因为我不小心在配置文件中提到了类数为1,所以我看不到它。就我而言,我从这些 xml 创建的 csv 文件创建了我的数据集。我发现这很容易。感谢您的回复。 @saikishor 很高兴听到您解决了问题!祝你好运以上是关于TensorFlow Object Detection API 只训练一个类的主要内容,如果未能解决你的问题,请参考以下文章
如何安装 TensorFlow 2 和 object_detection 模块?
TensorFlow Object Detection API
TensorFlow object_detection 使用
TensorFlow object detection API