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

test类加载配置 test_decoding_test类加载配置

这就开始训练了

另开一个终端,同样进入到object_detection目录下,输入:

tensorboard --logdir=training

test类加载配置 test_decoding_数据_02

保存模型和评估后边加