第三代半导体 Docker Shell脚本 程序栈 dictionary generics iis jdbc dtel语言 triggers scrapy grid Select2 后台系统模板 mysql设置自增初始值 php获取当天的0点时间戳 linuxmysql启动命令 python入门 python内置库 python入门例子 python中import用法 python模块大全 java在线学习 java实现 java连接mysql数据库 java生成文件 java入门基础 java版本查看 java获取当前日期 java文件复制 linux安装教程 易语言进度条 万能低格工具 图片链接生成器 mssql R语言初学者指南 pr怎么放大视频画面 证书小精灵 如何用ai设计字体 编程之家
当前位置: 首页 > 学习教程  > 编程语言

使用Tensorflow object detection API训练自己的数据教程

2021/1/13 20:40:55 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

使用Tensorflow object detection API训练自己的数据教程1. 环境配置2. 数据准备2.1 制作数据集2.2 数据集格式转换3. 训练教程3.1 预训练模型的下载3.2 训练网络1. 环境配置 安装Tensorflow和用来做Tensorflow object detection API的models文件夹。 安装教程参考博文&#xf…

使用Tensorflow object detection API训练自己的数据教程

  • 1. 环境配置
  • 2. 数据准备
    • 2.1 制作数据集
    • 2.2 数据集格式转换
  • 3. 训练教程
    • 3.1 预训练模型的下载
    • 3.2 训练网络

1. 环境配置

  • 安装Tensorflow和用来做Tensorflow object detection API的models文件夹。
    安装教程参考博文:安装不同版本的tensorflow与models

  • 安装coco API
    安装教程参考博文:安装coco API教程

  • 编译models文件
    (1)在models/research/下运行: protoc object_detection/protos/*.proto --python_out=.
    (2)添加Libraries到PYTHONPATH
    打开~/.bashrc文件,在里面添加:
    export PYTHONPATH=export PYTHONPATH="/home/rcus-cv-group/CODEs/TF/models:/home/rcus-cv-group/CODEs/TF/models/slim:$PYTHONPATH"
    (3)测试安装是否成功
    在models/research/下运行: python object_detection/builders/model_builder_test.py

  • 上述运行可能会报错,几种报错解决方案:安装tensorflow的models错误解决方案

  • 进入models/research/object_detection/文件夹,文件夹内有做目标检测所需的所有文件。在该文件夹内新建一个自己工程的文件夹my_project,下面所有设计的文件都放入该文件夹内。

2. 数据准备

2.1 制作数据集

  • 制作目标检测的数据集,可以使用LabelImg工具进行标注;
  • 制作目标实例分割的数据集,可以使用Labelme工具进行标注。
  • 制作label map文件:label_map.pbtxt,将里面的mouth和teeth换成自己数据的类别名称。
item {
  id: 1
  name: 'mouth'
}

item {
  id: 2
  name: 'teeth'
}

2.2 数据集格式转换

  • 以实例分割数据集为例,其label格式为.json文件,需要将数据集转换成tensorflow可用的record格式。
    可参考博文:将json格式数据集转化为record格式的教程。
  • 转换之后将原始数据、label map、转换之后的数据都放入一个用于数据集管理的文件夹内,取名为dataset
    在这里插入图片描述

3. 训练教程

3.1 预训练模型的下载

  • 在tensorflow detection model zoo里可以下载大量在coco数据集上训练好的模型,这些模型可以作为训练自己网络的预训练模型,使用Tensfer Learning方式训练自己的数据集。
    TensorFlow 1 Detection Model Zoo
    TensorFlow 2 Detection Model Zoo

  • 在my_project下建立存放预训练模型的文件夹models,将下载好的模型存放到文件夹下。

  • 在object_detection文件夹下的samples/configs里找到对应预训练模型的config文件,将其复制到my_project里。

3.2 训练网络

  • 将object_detection文件夹下的legacy下的train.py和trainer.py文件复制到my_project里。
  • 修改训练模型的config文件,以mask_rcnn_inception_v2_coco.config为例:
    (1)第10行修改num_classes为自己数据集的类别数(不包括背景)。
    (2)第105-125行,修改train_config里的batch_sizeinitial_learning_ratestep等参数。
    (3)第127行,修改fine_tune_checkpoint的路径,制定到models里的对应预训练模型里,如:
    fine_tune_checkpoint: “/home/ubuntu/Tensorflow/modelsTF1.8/research/object_detection/my_train/mouth/model/mask_rcnn_inception_v2_coco_2018_01_28/model.ckpt”
    (4)第133行,修改num_steps
    (5)第140-147行,修改train_input_reader里的input_pathlabel_map_path
    (6)第149-154行,修改eval_config里的num_examplesmax_evals
    (7)第156-165行,修改eval_input_reader里的input_pathlabel_map_path
  • 训练网络
    在object_detection文件夹下执行:
# 调用model_main.py执行
python model_main.py --model_dir=training --pipeline_config_path=training/ssd_mobilenet_v1_coco.config --num_train_steps=60000 --num_eval_steps=20 --alsologtostderr
# 也可以使用旧版本训练
python legacy/train.py --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_coco.config --logtostderr

本文链接: http://www.dtmao.cc/news_show_600406.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?