准备
- 准备数据集,做好标注。把下载好的tensorflow的迁移训练文件(object_detection)放到工程目录下。使用labelImg工具标注
- xml转换到csv
因为用于训练的.record格式文件时用的是csv格式文件,可以通过xml_to_csv.py程序处理,其中xml_df = xml_to_csv(image_path) 其中image_path为xml目录路径。
安装pandas后,运行xml_to_csv.bat文件,会生成label.csv文件。
- 生成tfrecord格式文件
generate_tfrecord.py用于生成自己的tfrecord格式文件,其中#TO-DO replace this with label map 下的内容需要根据自己的数据集进行修改,修改为自己数据集的标签。
==generate_tfrecord.py要改内容啊==
tfrecord 文件相当于把图标和标注整合在一起的文件
- 准备.pbtxt文件,文件内容根据标签确定
- model.ckpt文件为训练模型,一般采用预训练模型,课降低训练所需时间,根据实际需求选择合适自己的模型,下载完成后解压,将名字带有models.ckpt的三个文件移动到training目录下。
- 改配置文件
配置文件目录在下载好的 object_detection\samples\configs 目录下。
选择对应的模型:ssd_mobilenet_v1_coco.config
复制到工作目录下,修改参数
num_classes:20
batch_size:16
num_steps:10000
fine_tune_checkpoint:"./training/model.ckpt"
num_steps训练次数不够可以改小点,每次训练会接着训练
- 训练模型
新建traindir文件夹
python train.py --logtostderr --pipeline_config_path=ssd_mobilenet_v1_coco.config --train_dir=train_dir/
pause
工程目录下需要 以下文件
/net
/PythonAPI
/deployment
遇到 OOM when allocating tensor with shape 报错时,请把批次大小改小。
- 模型导出
新建models文件夹
python export_inference_graph.py ^
--input_type image_tensor ^
--pipeline_config_path ssd_mobilenet_v1_coco.config ^
--trained_checkpoint_prefix train_dir/model.ckpt-20020 ^
--output_directory models
pause
- 模型评估
新建 eval_dir
python eval.py --logtostderr --pipeline_config_path=ssd_mobilenet_v1_coco.config --eval_dir=eval_dir/ --checkpoint_dir=train_dir/
pause
评估也会化很长时间。
查看方法:
- 先移动到工程目录
- 执行 tensorboard --logdir==eval_dir
- 访问网站