TensorFlow 环境准备
[安装步骤](models/installation.md at master · tensorflow/models · GitHub)
所需提前准备好使用包
物体识别步骤
- 准备样本
- 将需要训练的物体图片框选并标识出,整理成csv格式,使用特定标注工具
- 将csv文件与图片一同整理成tfrecord,tfrecord是图片与标注点整理成的二进制文件
- 生成好tfrecord之后开始训练模型
- 将训练好的模型转换为预测结果
- 使用预测结果进行图片识别判断
训练样本可以从多种渠道获得,自行百度,Google或者从现有一些数据集网站下载,例如Kaggle: Your Home for Data Science , COCO - Common Objects in Context 和 Open Images Dataset V4
在我的这次训练中,使用的是纯图片数据,因此需要自行标注出需要识别的物体,所使用工具为Labelimg.标注只需要给与同一物体固定标签即可,此工具可在Ubuntu及Windows上正常运行,(MacOS 需要额外操作才可运行),样本数量是越多越好
当标注完成之后,使用xml_to_csv.py 将标注生成的xml文件生成CSV. 分为两批数据, test数据,和 train数据,生成两个文件,一个是test_lable.csv, 另一个是train_lable.csv
python xml_to_csv.py
使用generate_tfrecord.py 生成训练所需 tfrecord
python generate_tfrecord.py --csv_input=data/train_labels.csv --output_path=data/train.record
python generate_tfrecord.py --csv_input=data/test_labels.csv --output_path=data/test.record
add list() to category_index.values() in model_lib.py about line 381 as this list(category_index.values())
python model_main.py --model_dir=local_trained --pipeline_config_path=training/faster_rcnn_resnet101_local_train_coco.config
python export_inference_graph.py \
--input_type image_tensor \
--pipeline_config_path training/faster_rcnn_resnet101_coco.config \
--trained_checkpoint_prefix gcloud_trained/model.ckpt-1192 \
--output_directory gcloud_output_graph
python /models/research/object_detection/export_tflite_ssd_graph.py --pipeline_config_path=training/ssd_mobilenet_v2_coco_2018_03_29/pipeline.config --trained_checkpoint_prefix=./local_trained/model.ckpt-150997 --output_directory=./tflite/ --add_postprocessing_op=true
tflite_convert --output_file=./tflite/excavator.tflite --graph_def_file=./tflite/tflite_graph.pb --input_arrays=normalized_input_image_tensor --output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1','TFLite_Detection_PostProcess:2','TFLite_Detection_PostProcess:3' --input_shapes=1,300,300,3 --allow_custom_ops
预测数据生成好之后就可以开始使用其做物体识别了