一、VOC图片获取
VOC数据下载地址:
找到上图位置,下载training/validation data 和 development kit code and documentation
二、VOC图片格式转换为TFRcord
因为tf训练需要tfrecord格式,所以首先需要把VOC数据集转换成record格式,ObjectDetectionAPI下提供了格式转换的方法:create_pascal_tf_record.py
需要把164行examples_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文件,则说明转换成功
三、利用TFRcord在SSD架构下训练model
1、下载SSD训练model
下载地址:
https://github.com/tensorflow/models/blob/master/object_detection/g3doc/detection_model_zoo.md
2、解压到一定路径,进入文件将model.ckpt.*的三个文件copy到VOC文件夹下面
3、将object_detection/samples/configs/ssd_mobilenet_v1_pets.config文件copy到2步骤文件夹下,修改配置:
A) num_classes:修改为自己的classes num, 这里是20
B) 将所有PATH_TO_BE_CONFIGURED的地方类比修改为自己之前设置的路径(5处),按照自己的路径修改即可
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路径下,输入:
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,将他copy到object_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的一致,不然会无法获取model的size)
--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