Object Detection API with TensorFlow 1
环境依赖
- tensorflow==1.15.0
- cuda10.0 > 10.0
- cudnn > 7.6
- protoc > 3.0
下载:
git clone https://github.com/tensorflow/models.git
安装:(pip版本较低会造成安装失败)
cd models/research # Compile protos. protoc object_detection/protos/*.proto --python_out=. # Install TensorFlow Object Detection API. cp object_detection/packages/tf1/setup.py . python -m pip install --use-feature=2020-resolver .
测试:
python object_detection/builders/model_builder_tf1_test.py
结构:
object detection api相关文件存放在/research/object_detection/
训练:(使用下载的文件进行训练)
以使用voc数据集训练faster_rcnn_inception_resnet_v2为例:
需准备config配置文件,数据集转tfrecord。
1.新建项目文件夹voc
2.将下载的voc2012数据集放入voc文件夹中,解压生成VOCdevkit文件夹
3.数据集准备(research/object_detection目录下)
python dataset_tools/create_pascal_tf_record.py --data_dir voc/VOCdevkit/ --year=VOC2012 --set=train --output_path=voc/pascal_train.record
python dataset_tools/create_pascal_tf_record.py --data_dir voc/VOCdevkit/ --year=VOC2012 --set=val --output_path=voc/pascal_val.record
生成训练和测试数据: pascal_train.record , pascal_val.record
复制data/pascal_label_map.pbtxt到voc文件夹下,此为数据标签文件
4. 预训练模型下载
去https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md下载faster_rcnn_inception_resnet_v2_atrous_coco文件。
复制的voc文件夹后解压。
生成faster_rcnn_inception_resnet_v2_atrous_coco_2018_01_28文件夹(内存放了以及训练好的预训练模型)
5.配置文件config
从samples/configs/ 复制 faster_rcnn_inception_resnet_v2_atrous_coco.config 到voc目录下
修改配置文件中(共5处修改):
fine_tune_checkpoint: "voc/faster_rcnn_inception_resnet_v2_atrous_coco_2018_01_28/model.ckpt"#预训练模型存放处
train_input_reader: { tf_record_input_reader { input_path: "voc/pascal_train.record"#训练数据集 } label_map_path: "voc/pascal_label_map.pbtxt"#训练数据集标签文件 }
eval_input_reader: { tf_record_input_reader { input_path: "voc/pascal_val.record"#测试数据集 } label_map_path: "voc/pascal_label_map.pbtxt"#测试数据集标签文件 shuffle: false num_readers: 1 }
6.训练
python model_main.py --model_dir voc/train_dir/ --pipeline_config_path voc/faster_rcnn_inception_resnet_v2_atrous_voc.config
或
python legacy/train.py --train_dir voc/train_dir/ --pipeline_config_path voc/faster_rcnn_inception_resnet_v2_atrous_voc.config
开始训练