TensorFlow Object Detection API with TensorFlow 1 目标检测

Object Detection API with TensorFlow 1

环境依赖

  1. tensorflow==1.15.0
  2. cuda10.0 > 10.0
  3. cudnn > 7.6
  4. 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

开始训练