tensorflow object detection API 使用记录1

本文介绍如何使用目标检测API进行模型训练和评估。首先通过转换工具将原始数据转换为TFrecord格式,并提供类别映射文件。然后,根据配置文件训练模型,并利用预训练权重加速训练过程。最后,使用相同配置进行模型评估。

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

目录:

开始熟悉API的使用

简介

安装就不用说了
首先介绍一下配置文件的格式,我是参照官方给的API配置说明记录的:API配置
目标检测API是使用protobuf配置训练评估的过程,配置文件可以看作分为5个部分:

  1. model:决定你用什么样的模型
  2. train_config: 训练的参数
  3. eval_config: 决定评估时用什么样的指标
  4. train_input_config: 训练数据
  5. eval_input_config: 测试数据

所以要使用这个API,首先我们就要将这5个部分按照这样的格式写好
当然,在object detection文件夹中提供了一些已经写好的配置文件,可供我们直接使用:locate: object_detection/samples/configs
接下来,我们就按照github上的例程来使用


第一步:准备数据

参照github,这里使用VOC2007数据为例子,使用object_detection/samples/configs下已经定义好的配置文件,我使用的是faster_rcnn_resnet101_voc07.config

打开这个配置文件,可以看到简介的1\2\3部分已经帮我们写好了,我们需要提供的仅仅是4\5的数据部分,可以看到我们需要提供相应的input_pathlabel_map_path,这两者分别代表原始数据的TFrecord文件,以及数据的标签名和id的对应关系的文件

1. 得到TFrecord文件

由于tensorflow处理数据要转成TFrecord的格式,所以我们的数据要转成它的格式,官网给出了转换的代码:
在object detection目录下运行即可:

转换训练部分的数据:

python create_pascal_tf_record.py \
--data_dir='/home/data/VOC2007train' \
--year=VOC2007 \ 
--set=train \ 
--output_path='/home/data/pascal_train.record'

转换测试部分的数据:

python create_pascal_tf_record.py \ 
--data_dir='/home/data/VOC2007train' \ 
--year=VOC2007 \ 
--set=val \ 
--output_path='/home/data/pascal_val.record'

data_dir就是我们下载好的VOC数据的路径,output_path就是我们存放tfrecord文件的地方啦

2. 得到映射关系的文件
可以在object_detection/data路径下看到为我们提供了一些文件,这些文件后缀为.pbtxt,里面有VOC数据的映射文件,所以就直接拿过来用啦

最后总结一下,数据准备部分需要做如下几步:

  • 下载好数据
  • 将数据准换成TFrecord的形式
  • 提供数据相关的.pbtxt(类别名和id number的映射关系)
  • 将这些文件信息写到配置文件中去

第二步:训练模型

配置文件的数据部分写完了之后,理论上是可以开始训练了,我们可以看一下训练的配置部分,也就是简介上说的2/
里面有一个要注意的是:
fine_tune_checkpoint: “PATH_TO_BE_CONFIGURED/model.ckpt”
这一个地方可以提供预训练的权重,有这样的模型文件的话可以让我们的训练过程更快,官方也提供了一些预训练好的模型

同样,官方提供了训练部分相应的代码,如下,以我的为例:

# From the tensorflow/models/ directory
python object_detection/train.py \
--logtostder \
--pipeline_config_path=/***/faster_rcnn_resnet101/faster_rcnn_resnet101_voc07.config \
--train_dir=/***/train

pipeline_config_path 为我们使用的model配置文件
train_dir自己设定的在训练过程中记录模型的文件夹
\ 代表换行


第三步:评估

评估部分和训练部分一样,官方也提供了代码,这里用到的就是配置文件中的5/啦
代码如下:

python object_detection/eval.py \
--logtostderr \
--pipeline_config_path=/***/faster_rcnn_resnet101_voc07.config \
--checkpoint_dir=/***/train \
--eval_dir=/***/test

同样的,eval_dir就是自己设定的存放评估时做记录的路径
checkpoint_dir就是训练的时候的模型记录的路径即train_dir


总结:

细节等等,以及还有一些没记录清楚的或者说错了,最好就是去官方github官方github上看啦,第一次写博客,感觉略辛苦,哈哈,今天就写这些了,希望很容易遗忘的东西以及需要记下来的东西,经过记录,下次再看的时候很快就记起来,共勉。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值