利用Tensorflow实现SSD架构model训练(voc2012)

一、VOC图片获取

 

VOC数据下载地址:

http://cvlab.postech.ac.kr/~mooyeol/pascal_voc_2012/#devkit%20%E2%80%9CVOC2012%E6%95%B0%E6%8D%AE%E9%9B%86%E2%80%9D

 利用Tensorflow实现SSD架构model训练(voc2012)_第1张图片

找到上图位置,下载training/validation data development kit code and documentation

 

二、VOC图片格式转换为TFRcord

 

因为tf训练需要tfrecord格式,所以首先需要把VOC数据集转换成record格式,ObjectDetectionAPI下提供了格式转换的方法:create_pascal_tf_record.py

需要把164examples_path修改为:data_dir, year, ‘ImageSets’, ‘main’, FLAGS.set + ‘.txt’

VOC数据集和转换的record数据集可以自己选择相应的路径,把create_pascal_tf_record.py文件copy到与objectdetection同级目录下,然后进入dos界面,进入create_pascal_tf_record.py复制后的文件夹路径下,输入:

 

Python  create_pascal_tf_record.py --data_dir=...\VOCdevkit (voc数据集路径) --year=VOC2012(相应的年份) --set=train --output_path=..\..\**_train.record(输出文件路径)

 

Python  create_pascal_tf_record.py --data_dir=...\VOCdevkit (voc数据集路径) --year=VOC2012(相应的年份) --set=val --output_path=..\..\**_val.record(输出文件路径)

如果在相应的输出路径生成record文件,则说明转换成功

 

三、利用TFRcordSSD架构下训练model

 

1、下载SSD训练model

下载地址:

https://github.com/tensorflow/models/blob/master/object_detection/g3doc/detection_model_zoo.md

2、解压到一定路径,进入文件将model.ckpt.*的三个文件copyVOC文件夹下面

3、object_detection/samples/configs/ssd_mobilenet_v1_pets.config文件copy2步骤文件夹下,修改配置:

A) num_classes:修改为自己的classes num, 这里是20

B) 将所有PATH_TO_BE_CONFIGURED的地方类比修改为自己之前设置的路径(5处),按照自己的路径修改即可

 利用Tensorflow实现SSD架构model训练(voc2012)_第2张图片

C) 还可以根据自己电脑配置以及训练效果更改batch_size ,learning rate, step

 

4、..\models\research\slim下面的deployment nets文件夹copy到与object_detection文件夹同级目录

5、object_detection 文件夹下找到train.py 将他复制到和object_detection同级目录下,进入dos窗口,进入train.py路径下,输入:

 利用Tensorflow实现SSD架构model训练(voc2012)_第3张图片

Python train.py  --train_dir=’../train’(model 输出存放路径)   --pipeline_config_path=’../ssd_mobilenet_v1_pets.config’

 

出现下图说明训练成功

 

四、固化model

 

Object detection api 提供了export_inference_graph.py,可将训练好的model转换为pb文件,达到固化的效果

同样,在object_detection下找到export_inference_graph.py,将他copyobject_detection同级目录下,进入dos窗口,进入export_inference_graph.py路径下输入:

 

python  export_inference_graph.py  --input_type image_tensor

--pipeline_config_path  ../ssd_mobilenet_v1_pets.config

--trained_checkpoint_prefix  ../model.ckpt[step]* (step是训练的次数,必须与输出的model的一致,不然会无法获取modelsize)

--output_directory  ../result

 

在相应文件夹下出现pb文件说明固化成功

下面就可以直接用这个model

 

 

 

 

参考:http://blog.csdn.net/weixin_35654926/article/details/75578324

http://www.cnblogs.com/mar-q/p/7579263.html

http://m.blog.csdn.net/yexiaogu1104/article/details/77416020

http://www.bubuko.com/infodetail-2354181.html

你可能感兴趣的:(利用Tensorflow实现SSD架构model训练(voc2012))