本文共 3057 字,大约阅读时间需要 10 分钟。
#一、数据准备
###1.一个友好的标注工具 已经再此介绍的很详细了,linux下可以三行命令解决。注意:图片要求是png或者jpg格式
1> . 标注信息存为xml文件,使用可以将所有的xml文件转换为1个csv文件(自行修改xml路径)
2> . 把生成的csv文件分成训练集和测试集 ###2.生成TFRecord文件 使用分别生成train.record 和 test.record. 记得修改其中三处路径,以及分类标识数据类型(中文有注释),分两次运行哦! #二、环境搭建 ###1.tensorflow 版本 >= 1.4.0 具体的安装,自行百度 ###2.部署tensorflow model 1> . 从这里下载下,解压,假设放在了A目录下; 注意:下文中的A 都表示下载的model文件的目录位置 2> . 这一步分linux和window介绍------------------------------------------------linux开始----------------------------------------------------
进入A/models/research/目录,右键打开终端,运行protoc object_detection/protos/*.proto --python_out=.
添加slim和models/research路径,相当于环境变量gedit ~/.bashrc
在该文件末,添加:export PYTHONPATH=$PYTHONPATH:/A/models/research/slim:/A/models/research/
更新文件source ~/.bashrc
------------------------------------------------linux以上结束----------------------------------------------------
------------------------------------------------window开始-----------------------------------------------------
下载 解压后,运行一下protoc.exe文件 打开cmd窗口,cd到A/models/research/目录下(老版本没有research目录),执行如下:protoc object_detection/protos/*.proto --python_out=.
将生成一堆python文件 然后为python添加默认模块搜索路径 本人选择的第三种,增加.pth文件 在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称,也就是下面两行:A\models\research A\models\research\slim
然后保存为了.pth文件,名字随意选,然后放在Python运行能扫描到的地方,我放在了python下的lib下的site-packages里,因为python运行一定会经过这里。 ------------------------------------------------window以上结束-----------------------------------------------------
3> . 两个系统都必须经过这一步
测试安装,进入到A/models/research/目录下,运行python object_detection/builders/model_builder_test.py
如果发现前方有坑:
Traceback (most recent call last): File "object_detection/builders/model_builder_test.py", line 21, infrom object_detection.builders import model_builderImportError: No module named 'object_detection'
说明前边模块文件路径配置没有成功。
#三、训练自己的数据 ###1.下载模型 选择其中的下载 ###2.创建标签分类的配置文件(label_map.pbtxt)item { id: 1 # id一定要从1开始编号 name: 'syjxh'}item { id: 2 name: 'dnb'}
放在一个位置就好
###3.修改对应的pipline配置文件 找到\object_detection\samples\configs\XXXXXXXXXXX.config文件,XXXXXXXXXXX需要和你下载的模型一致的配置文件,复制到\test\data文件夹下,修改一下几处:# ====修改 1=====num_classes:2 # 根据你的目标分类来,我这里一共标记了6种对象# ====修改 2=====# 因为我们是重新训练模型,所以这里注释掉模型检测点,并将from_detection_checkpoint该为false# fine_tune_checkpoint: "PATH_TO_BE_CONFIGURED/model.ckpt" from_detection_checkpoint: false num_steps: 200000 # 训练次数# ====修改 3=====train_input_reader: { tf_record_input_reader { # 训练样本路径 input_path: "A/models/test/data/train.record" } # 标签分类配置文件路径 label_map_path: "A/models/test/label_map.pbtxt"}# ====修改 4=====eval_input_reader: { tf_record_input_reader { # 验证样本路径 input_path: "A/models/test/data/eval.record" } # 标签分类配置文件路径 label_map_path: "A/models/test/label_map.pbtxt" shuffle: false num_readers: 1}
###4.开始训练啦!!!!
直接使用object_detection\train.py文件进行训练即可,参数如下:--logtostderr--pipeline_config_path=F:/TensorFlow/models/test/data/ssd_inception_v2_pets.config--train_dir=F:/TensorFlow/models/test/training
配置好参数后,直接run起来,接下来就是漫长的等待,训练过程中可以使用eval.py文件进行验证。
目前我还没跑出结果,截个图给大家瞅瞅先!还在训练中,估计跑一天。。。继续补充结果
参考:
,