tensorflow objec_detection 训练自己的数据

labelImg 标注数据:
https://github.com/tzutalin/labelImg

标注后生成.csv
然后转为.record 格式
把image下的train和test的csv和record文件都放到object_detection/data目录下包括图片
接下来需要设置配置文件,在objec_detection/samples下,寻找需要的对于模型的config文件,

将ssd_mobilenet_v1_coco.config 放在training 文件夹下,用文本编辑器打开,进行如下更改:

1、搜索其中的 PATH_TO_BE_CONFIGURED ,将对应的路径改为自己的路径,注意不要把test跟train弄反了;

注意最后train input reader和evaluation input reader中label_map_path必须保持一致。

2、将 num_classes 按照实际情况更改,我的例子中是1;

3、batch_size 原本是24,我在运行的时候出现显存不足的问题,为了保险起见,改为1,如果1还是出现类似问题的话,建议换电脑……

4、fine_tune_checkpoint: “ssd_mobilenet_v1_coco_11_06_2017/model.ckpt”
from_detection_checkpoint: true

这里是使用finetune,在它原来训练好的模型数据上进行训练,这样可以快很多。不然从头训练好慢。从头开始训练的话注释掉

此时在对应目录(/data)下,创建一个 label_map.pbtxt的文本文件(可以复制一个其他名字的文件,然后用文本编辑软件打开修改),写入我们的标签,我的例子中是两个,id序号注意与前面创建CSV文件时保持一致,从1开始。

item {
id: 1
name: ‘yangshu’
}

好,所有数据都已准备好。可以开始训练了。
添加 tf.logging.set_verbosity(tf.logging.INFO) 到model_main.py 的 import 区域之后,会每隔一百个step输出loss,总比没有好,至少它让你知道它在跑。

在config文件设置时,eval部分的 num_examples (如下)和 运行设置参数–num_eval_steps 时任何一个值只要比你数据集中训练图片数目要大就会出现警告,因为它没那么多图片来评估,所以这两个值直接设置成训练图片数量就好了。
我在本地GPU训练(本机环境:Ubuntu 16.04LTS),终端进入 research 目录下激活环境
输入命令 : export PYTHONPATH=$PYTHONPATH:pwd:pwd/slim
在research目录下python3 object_detection/model_main.py --pipeline_config_path=object_detection/training/ssd_mobilenet_v1_coco.config --model_dir=training --num_train_steps=20000 --num_eval_steps=80 --alsologtostderr
在这里插入图片描述这就开始训练了
另开一个终端,同样进入到object_detection目录下,输入:
tensorboard --logdir=training
在这里插入图片描述保存模型和评估后边加

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值