Tensorflow 2.0 目标识别(五)——TF2.0+Object Detector(用户自定义训练)

本文介绍了如何在Tensorflow 2.0中使用Object Detection API训练用户自定义的目标检测模型。内容涵盖工作区设置、数据集准备、注释图像、创建TFRecord、配置训练管道、训练模型以及模型导出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

到目前为止,您应该已经执行以下操作:

  • 已安装的TensorFlow
  • 已安装的TensorFlow对象检测API

既然我们已经完成了上述所有工作,我们就可以开始做一些很酷的事情。在这里,我们将看到如何训练自己的对象检测器,由于它听起来并不简单,因此我们来看看:

  1. 如何组织工作区/培训文件
  2. 如何准备/注释图像数据集
  3. 如何从此类数据集生成tf记录
  4. 如何配置简单的培训管道
  5. 如何训练模型并监控其进度
  6. 如何导出结果模型并将其用于检测对象。

 

1.2.1  准备工作区

如果您已按照本教程进行操作,那么现在应该📂Tensorflowl<PATH_TO_TF>(例如C:/Users/sglvladi/Documents)下放置一个文件夹,其中包含以下目录树:

TensorFlow/

├─ addons/ (Optional)

│  └─ labelImg/

└─ models/

   ├─ community/

   ├─ official/

   ├─ orbit/

   ├─ research/

   └─ ...

现在在下面创建一个新文件夹📂Tensorflow并调用它📂workspace。这是内部的workspace,我们将存储所有我们的训练调校。现在,让我们进入工作区下,并创建另一个名为的文件夹📂training_demo。现在我们的目录结构应该是这样的:

TensorFlow/

├─ addons/ (Optional)

│  └─ labelImg/

├─ models/

│  ├─ community/

│  ├─ official/

│  ├─ orbit/

│  ├─ research/

│  └─ ...

└─ workspace/

   └─ training_demo/

📂training_demo文件夹将是我们的训练文件夹,其中将包含与我们的模型训练有关的所有文件。每次我们希望在不同的数据集上进行训练时,建议创建一个单独的训练文件夹。培训文件夹的典型结构如下所示。

training_demo/

├─ annotations/

├─ exported-models/

├─ images/

│  ├─ test/

│  └─ train/

├─ models/

├─ pre-trained-models/

└─ README.md

这是上述树中显示的每个文件夹/文件管理器的说明:

  • annotations:此文件夹将用于存储所有*.csv文件和各自的TensorFlow *.record文件,其中包含我们的数据集图像的注释列表。
  • exported-models:此文件夹将用于存储我们训练有素的模型的导出版本。
  • images:此文件夹包含我们数据集中所有图像的副本,以及*.xml为每个图像生成的相应文件(一旦labelImg用于注释对象)。
    • images/train:此文件夹包含所有图像的副本以及相应的*.xml文件,这些文件将用于训练我们的模型。
    • images/test:此文件夹包含所有图像的副本以及相应的*.xml文件,这些文件将用于测试我们的模型。
  • models:此文件夹将包含每个培训工作的子文件夹。每个子文件夹将包含训练管道配置文件*.config,以及在训练和评估模型期间生成的所有文件。
  • pre-trained-models:此文件夹将包含下载的预训练模型,这些模型将用作我们训练工作的起始检查点。
  • README.md:这是一个可选文件,提供有关我们模型训练条件的一些常规信息以上文件夹不是TensorFlow的必要文件夹,理论上都可以用户自行定义名字。但是当您有几个训练文件夹和或一段时间后重新访问训练后的模型时,它通常会有所帮助。

如果您不了