【卷积神经网络】目标检测api训练自己的数据

本文详述了如何使用TensorFlow的Object Detection API进行目标检测模型的训练过程,包括TFRecord文件的生成,配置文件的调整,预训练模型的下载与应用,以及最终pb文件的生成与验证。

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

训练自己的数据

参考网址:https://blog.youkuaiyun.com/kalenee/article/details/80629262

https://blog.youkuaiyun.com/zong596568821xp/article/details/82015126  (比较详细)

https://blog.youkuaiyun.com/zj1131190425/article/details/80711857

https://36kr.com/p/5096924

生成 TFRecord 文件

Object Detection API 的训练框架使用 TFRecord 格式的文件作为输入。所以这里需要将图片和标注转换为 TFRecord 格式的文件。TFRecord 数据文件是一种将图像数据和标签统一存储的二进制文件,能更好的利用内存,在 TensorFlow 中快速的复制、移动、读取、存储等。因在制作用于训练的.record格式文件时用到的是csv格式文件,所以需要将xml转换到csv。

准备配置文件:

还需要一个配置文件来对训练的流程进行配置,如使用什么算法,选用什么优化器等。

在 object_detection/samples/configs/ 可以找到很多配置模板,在这里使用 object_detection/samples/configs/ssd_mobilenet_v1_pets.config 作为起始的配置文件,需要在这个模板上面稍作修改。

例如修改faster_rcnn_inception_resnet_v2_atrous_pets.config

  1. num_classes 修改为实际类别
  2. 搜索其中的  PATH_TO_BE_CONFIGURED ,将5处对应的路径改为自己的路径,注意不要把test跟train弄反了;
  3. 如果将from_detection_checkpoint设为true的话,代表将从一个事先训练好的模型开始继续训练(迁移学习),此时需要将CHECK_POINT_PATH替换为 model.ckpt 的绝对路径(注意之前有三个文件,model.ckpt.index、model.ckpt.meta、model.ckpt.data-xxx 在配置时不需要加model.ckpt 之后的后缀),如:fine_tune_checkpoint:
  4. num_steps 为训练迭代的步数
  5. 批次(batch)是每一次迭代中模型训练使用的样本集,批次规模(batch_size)为一个批次中的样本数量。一般情况下对于小数据集批次规模越大越好,这样可以提高计算的速度和效率,同时降低训练震荡,若数据集足够小,可采用全数据集的形式进行训练,但这种情况容易造成计算量增长过大导致溢出,因此批次规模的大小需根据实际情况进行设置。
  6. 学习速率(learning rate)是在训练模型过程中用于梯度下降的一个变量,在训练过程中,每次迭代梯度下降法都会将学习速率与梯度相乘,因此其值是随着训练进行不断变化。而初始学习速率(initial_learning rate)是模型开始训练前设置的最开始的学习速率,在训练过程中,模型会根据学习率变化策略以初始学习速率为起点设置学习速率,初始学习速率一般情况下应设置为一个较小的值,然后在之后训练过程中逐步调大。

创建label_map.pbtxt

                          

下载预先训练的模型

下载链接:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

model.ckpt文件为训练模型,一般采用预训练模型,可降低训练所需时间,根据实际需求选择适合自己的模型,下载完成后解压,将名字带有model.ckpt的三个文件移动到配置文件中fine_tune_checkpoint对应目录下。

修改train文件

train_dir #训练模型保存路径
pipeline_config_path #配置文件路径
修改的配置文件好像存在问题,运行train.py报错。将俊星哥的配置文件以及model.ckpt拷贝到本机,并将配置文件中的地址替换为本机中的地址,运行train.py 之前出现的配置文件报错解决,出现新的错误。

生成pb文件

修改export_inference_graph.py 文件。

       pipeline_config_path  #配置文件路径
       output_directory  #pb文件保存路径
       trained_checkpoint_prefix #.ckpt 文件路径
       write_inference_graph   # 设置为true则,将图结构写到.pbtxt中
          运行export_inference_graph.py。

验证

            object_detection_tutorial.py

                   PATH_TO_FROZEN_GRAPH  #pb文件地址

                   PATH_TO_LABELS #标签文件地址

 

概括为如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值