Tensorflow 的 Object Detection API 训练自己的数据

图片标注工具:labelImg   https://github.com/tzutalin/labelImg

标记后生成的是xml文件需要自己进行转换

我用的是KITTI数据集做训练。tensorflow已经提供的转换方法  object_detection/dataset_tool/create_kitti_tf_record.py

同时也提供了pbtxt文件 路径在   object_detection/data/kitti_label_map.pbtxt

可以直接使用命令转换就可以,前提是已经下载了数据集

数据集转换完成后,下载与训练模型

 

4、训练模型

预训练模型:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

Object Detection API是依赖一种特殊的设置文件进行训练的。在object_detection/samples/configs文件夹下,有一些设置文件的示例。可以参考faster_rcnn_inception_resnet_v2_atrous_coco.config文件创建的设置文件。先将faster_rcnn_inception_resnet_v2_atrous_coco.config复制一份到voc文件夹下,命名为faster_rcnn_inception_resnet_v2_atrous_voc.config。

faster_rcnn_inception_resnet_v2_atrous_voc.config文件有7处需要修改:

  • 第一处为num_classes,需要将它修改为自己数据集的类别数
  • 第二处为eval_config中的num_examples,它表示在验证阶段需要执行的图片数量,修改为验证集的图片数5823(可以在create_pascal_tf_record.py中,输出对应的examples_list长度,就可以知道这个大小)。
  • 还有5处为所有含PATH_TO_BE_CONFIGURED的地方。这些地方需要修改为自己的目录,他们应该分别被修改为:
gradient_clipping_by_norm: 10.0
  fine_tune_checkpoint: 
 ##此行需要修改##
"voc/faster_rcnn_inception_resnet_v2_atrous_coco_2018_01_28/model.ckpt"
  from_detection_checkpoint: true
  # Note: The below line limits the training process to 200K steps, which we
  # empirically found to be sufficient enough to train the pets dataset. This
  # effectively bypasses the learning rate schedule (the learning rate will
  # never decay). Remove the below line to train indefinitely.
  num_steps: 200000
  data_augmentation_options {
    random_horizontal_flip {
    }
  }
}
train_input_reader: {
  tf_record_input_reader {
 ##此行需要修改##
    input_path: "voc/pascal_train.record"
  }
 ##此行需要修改##
  label_map_path: "voc/pascal_label_map.pbtxt"
}

eval_config: {
 ##此行需要修改##
  num_examples: 5823
  # Note: The below line limits the evaluation process to 10 evaluations.
  # Remove the below line to evaluate indefinitely.
  max_evals: 10
}

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
}

在使用object_detection目录下的train.py文件训练的时候会使用到slim下库,因此我们需要先配置临时环境变量,这一步在配置API过程中已经完成。

然后就可以开始训练了。

老的训练方法在 /object_detection/legacy/train.py 中,执行下面的命令

python train.py --logtostderr --train_dir ./training/ --pipeline_config_path /home/vision/Project/tf-models/research/object_detection/ssd_model/ssdlite_mobilenet_v1_coco.config

--train_dir  训练得到的文件保存路径

--pipeline_config_path 上一步自己修改后配置文件路径。我直接使用的全路径

 

 

 

参考文章: 

第三十二节,使用谷歌Object Detection API进行目标检测、训练新的模型(使用VOC 2012数据集)      https://www.cnblogs.com/zyly/p/9248394.html

使用新方法训练模型 + 模型转换:https://www.cnblogs.com/zongfa/p/9663649.html

https://www.cnblogs.com/leviatan/archive/2019/04/20/10740105.html

https://www.cnblogs.com/qcloud1001/p/7677661.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值