谷歌object detection+voc数据格式完成目标检测流程

  1. PASCAL_VOC数据集格式
  • JPEGImages文件夹
    文件夹里包含了训练图片和测试图片,混放在一起

  • Annotations文件夹
    文件夹存放的是xml格式的标签文件,每个xml文件都对应于JPEGImages文件夹的一张图片

  • ImageSets文件夹
    Main存放的是图像物体识别的数据,里面有XX_train.txtXX_val.txtMain。在本次使用API时候用不到XX_train.txt这些文件夹,只需要里面的test.txt , train.txt, val.txt ,trainval.txt.这四个文件我们后面会生成 。

2.利用labelImg工具进行图像标注
3.利用main4.py生成Main文件夹下的4个txt文件
5.修改./data/pascal_label_map.pbtxt 将其中的目标类别更新为自己voc数据集目标类别
4.修改dataset中的create_pascal_tf_record.py
具体修改可见./dataset_tools/create_pascal_tf_record_myvoc.py脚本
重心为修改img_path,定义图片路径
生成训练和验证数据集的tfrecord格式
参数year是存储图片,xml文件的上级文件名

python ./create_pascal_tf_record_vocteds.py --data_dir=./ --label_map_path=./jiejing_label_map.pbtxt --year=vocteds --set=train --output_path=./tfrecord/jiejing_train.record
python ./create_pascal_tf_record_vocteds.py --data_dir=./ --label_map_path=./jiejing_label_map.pbtxt --year=vocteds --set=val --output_path=./tfrecord/jiejing_val.record

6.修改模型配置文件下的ssd_inception_v2_coco.config或faster_rcnn_resnet50_coco.config取决于用的网络模型。
例如想要在faster_rcnn_resnet50模型的基础行进行迁移训练,在faster_rcnn_resnet50_coco.config文件中进行如下修改:

line10  num_classes: 44 #将类别修改为自己目标种类
line111  fine_tune_checkpoint: "./faster_rcnn_inception_v2_coco_2018_01_28/model.ckpt" # 选择希望迁移训练的模型位置
line 126   input_path: "./tfrecord/jiejing_train.record" # 训练集读取,给出制作好的训练集tfrecord文件
line 128  label_map_path: "./jiejing_label_map.pbtxt"# 给定目标种类.pbtxt文件
line 140  input_path: "./tfrecord/jiejing_val.record" # 验证集读取,给出制作好的验证集tfrecord文件
line 142   label_map_path: "./jiejing_label_map.pbtxt" # 给定目标种类.pbtxt文件

7.执行train.py和eval.py文件

python ./train.py --logtostderr --pipeline_config_path=./faster_rcnn_inception_v2_coco.config --train_dir=./4ctrainout
python ./eval.py --logtostderr --checkpoint_dir=./4ctrainout  --eval_dir=./4cevalout --pipeline_config_path=./faster_rcnn_inception_v2_coco.config

8.执行export_inference_graph.py文件,成可被调用的冰冻模型。

python ./export_inference_graph.py --input_type image_tensor --pipeline_config_path ./faster_rcnn_inception_v2_coco.config --trained_checkpoint_prefix ./frctrainout/model.ckpt-20000 --output_directory ./pbmodel

9.利用object_detection_tutorial.ipynb或自己写一个脚本引用冰冻模型,导入图片查看interface结果。

  1. 在原有训练文件基础上进行调参训练,需要将训练文件转换为冰冻模型,注意文件步数,在pipline文件中修改调参文件路径即可。

你可能感兴趣的:(谷歌object detection+voc数据格式完成目标检测流程)