- TensorFlow
models/object_detection使用说明- 下载安装">1、下载安装
- 配置
object_detection训练pipeline">2、 配置object_detection训练pipeline - 3、Inference
- 4、Eval
TensorFlow models/object_detection使用说明
1、下载安装
cd xxx/models/research/python setup.py intsallcd xxx/models/research/slim/python setup.py installpip install --user package # 代表仅该用户的安装,安装后仅该用户可用pip install package # 代表进行全局安装,安装后全局可用
修改xxx/models/research/object_detection/protos/路径下源文件时需要执行protoc才可产生效。
2、 配置object_detection训练pipeline
配置文件路径xxx/models/research/object_detection/samples/configs/
Step1: Preparing Inputs
Generating the dataset label map file.
如:xxx/models/research/object_detection/data/person_coco.pbtxt、xxx/models/research/object_detection/data/person_voc.pbtxt
Generating the AI TFRecord files.
## voc stylepython models/research/object_detection/dataset_tools/create_ai_tf_record_voc.py--output_path /workspace/codes/models/research/object_detection/data/val_dataset_voc.record--annotations_file /workspace/datasets/ai_challenger/ai_challenger_keypoint_validation_20170911/keypoint_validation_annotations_20170911.json--image_dir /workspace/datasets/ai_challenger/ai_challenger_keypoint_validation_20170911/keypoint_validation_images_20170911/python models/research/object_detection/dataset_tools/create_ai_tf_record_voc.py--output_path /workspace/codes/models/research/object_detection/data/train_dataset_voc.record--annotations_file /workspace/datasets/ai_challenger/ai_challenger_keypoint_train_20170909/keypoint_train_annotations_20170909.json--image_dir /workspace/datasets/ai_challenger/ai_challenger_keypoint_train_20170909/keypoint_train_images_20170902/## coco stylepython models/research/object_detection/dataset_tools/create_ai_tf_record_coco.py--output_path /workspace/codes/models/research/object_detection/data/val_dataset_coco.record--annotations_file /workspace/datasets/ai_challenger/ai_challenger_keypoint_validation_20170911/keypoint_validation_annotations_20170911.json--image_dir /workspace/datasets/ai_challenger/ai_challenger_keypoint_validation_20170911/keypoint_validation_images_20170911/python models/research/object_detection/dataset_tools/create_ai_tf_record_coco.py--output_path /workspace/codes/models/research/object_detection/data/train_dataset_coco.record--annotations_file /workspace/datasets/ai_challenger/ai_challenger_keypoint_train_20170909/keypoint_train_annotations_20170909.json--image_dir /workspace/datasets/ai_challenger/ai_challenger_keypoint_train_20170909/keypoint_train_images_20170902/
Step2: Runing Locally
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/running_locally.md
Step3: 训练与量化训练
可能仅需要更改配置文件。
Step4: Exporting a trained model for inference
Step5: Running on mobile with TensorFlow Lite(量化的
Step6: Pb to tflite
## env: 1.12.3# 命令行Model: Frozen Graph(.pb)、SavedModelModel Format: FLOAT、QUANTIZED_UINT8Input Format: FLOAT、QUANTIZED_UINT8post_training_quantize:# api## env: 1.15.2# 命令行Model: Frozen Graph(.pb)、SavedModelModel Format: FLOAT、QUANTIZED_UINT8Input Format: FLOAT、QUANTIZED_UINT8post_training_quantize: quantize_to_float16# api## env: 2.1.0# 命令行Model: SavedModel# apiModel: SavedModelModel Format: int8、flot32、flot16
3、Inference
## infer代码python inference/infer_detections.py--input_tfrecord_paths=../object_detection/data/val_dataset_coco.record--output_tfrecord_path=val_dataset_coco_detectionss.tfrecord--inference_graph=../object_detection/test_ckpt/ssd_mv1/frozen_inference_graph.pborpython inference/infer_pb.py # include pipeline
4、Eval
## ckpt模型eval流程(训练时候用的)python /legacy/eval.py--logtostderr--checkpoint_dir=../test_ckpt/ssd_mobilenet_v1_coco_2018_01_28/model.ckpt--eval_dir=./--pipeline_config_path=../test_ckpt/ssd_mobilenet_v1_coco_2018_01_28/pipeline.config## pb模型eval流程python inference/infer_detections.py--input_tfrecord_paths=../object_detection/data/val_dataset_coco.record--output_tfrecord_path=val_dataset_coco_detectionss.tfrecord--inference_graph=../object_detection/test_ckpt/ssd_mv1/frozen_inference_graph.pb## 修改validation_eval_metrics/validation_eval_config.pbtxt文件 (eval格式选择:coco or voc)metrics_set: 'coco_detection_metrics'## 修改validation_eval_metrics/validation_input_config.pbtxt文件 (标签文件:xx.pbtxt; 输出的tfrecord文件)label_map_path: '/workspace/codes/models/research/object_detection/data/person_coco.pbtxt'tf_record_input_reader: { input_path: '/workspace/codes/models/research/ai/val_dataset_coco_detectionss_3464.tfrecord' }SPLIT=validationPYTHONPATH=$PYTHONPATH:$(readlink -f ..) \python ../object_detection/metrics/offline_eval_map_corloc.py--eval_dir=${SPLIT}_eval_metrics \--eval_config_path=${SPLIT}_eval_metrics/${SPLIT}_eval_config.pbtxt \--input_config_path=${SPLIT}_eval_metrics/${SPLIT}_input_config.pbtxt
