参考原始代码:
https://github.com/tensorflow/models/tree/master/research 本文以mobilenet-ssd-v2为例进行处理,通过换模型即可实现faster RCNN等的训练检测。
1、数据整理 对生成的数据集(整理成VOC格式),通过Annotations的数据数进行train、test、val、trainval.txt的生成
进入目录
note: 在使用数据集格式转化工具,生成的voc文件中,ImageSets/mains中,只含有trainval.txt。(可通过上述方式进行重新生成.txt文件,亦可暂时忽略,在后续生成record文件时,直接应用)
数据集的下载可参考自动驾驶数据集,
https://blog.csdn.net/u010801994/article/details/84636952
同时能获得自动驾驶数据集与voc格式之间的转换。
5、训练 修改ssd_mobilenet_v2_coco.config中的六处 (1)num_classes: 3(设为自己的训练集的类别) (2)fine_tune_checkpoint: “/home/crj/tensorflow/ssd_mobilenet_v2_coco_2018_03_29/model.ckpt”(fine_tune_checkpoint的地址) (3)train_input_reader:{}中input_path和label_map_path的路径 (4)eval_input_reader:{}中input_path和label_map_path的路径 (5)batch_size:48 通常不能太小,否则会报错
将dataset中的生成模型导出到output_inference_graph输出文件夹中
实验结果如下
学习小记录: (1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练; (2)iteration:1个iteration等于使用batchsize个样本训练一次; (3)epoch:1个epoch等于使用训练集中的全部样本训练一次; 举个例子,训练集有1000个样本,batchsize=10,那么: 训练完整个样本集需要:100次iteration,1次epoch。 原文:https://blog.csdn.net/u010801994/article/details/84987563