博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【tensorflow】Object DetectionAPI训练识别自己的数据集
阅读量:2225 次
发布时间:2019-05-09

本文共 3057 字,大约阅读时间需要 10 分钟。

#一、数据准备

###1.一个友好的标注工具
已经再此介绍的很详细了,linux下可以三行命令解决。

注意:图片要求是png或者jpg格式

1> . 标注信息存为xml文件,使用可以将所有的xml文件转换为1个csv文件(自行修改xml路径)

2> . 把生成的csv文件分成训练集和测试集
###2.生成TFRecord文件
使用分别生成train.record 和 test.record.
记得修改其中三处路径,以及分类标识数据类型(中文有注释),分两次运行哦!
#二、环境搭建
###1.tensorflow 版本 >= 1.4.0
具体的安装,自行百度
###2.部署tensorflow model
1> . 从这里下载下,解压,假设放在了A目录下;
注意:下文中的A 都表示下载的model文件的目录位置
2> . 这一步分linux和window介绍

------------------------------------------------linux开始----------------------------------------------------

进入A/models/research/目录,右键打开终端,运行
protoc object_detection/protos/*.proto --python_out=.      
添加slim和models/research路径,相当于环境变量
gedit ~/.bashrc
在该文件末,添加:
export PYTHONPATH=$PYTHONPATH:/A/models/research/slim:/A/models/research/
更新文件
source ~/.bashrc
------------------------------------------------linux以上结束----------------------------------------------------


------------------------------------------------window开始-----------------------------------------------------

下载
解压后,运行一下protoc.exe文件
打开cmd窗口,cd到A/models/research/目录下(老版本没有research目录),执行如下:
protoc object_detection/protos/*.proto --python_out=.
将生成一堆python文件
然后为python添加默认模块搜索路径
本人选择的第三种,增加.pth文件
在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称,也就是下面两行:
A\models\research A\models\research\slim
然后保存为了.pth文件,名字随意选,然后放在Python运行能扫描到的地方,我放在了python下的lib下的site-packages里,因为python运行一定会经过这里。
------------------------------------------------window以上结束-----------------------------------------------------

3> . 两个系统都必须经过这一步

测试安装,进入到A/models/research/目录下,运行

python  object_detection/builders/model_builder_test.py

如果发现前方有坑:

Traceback (most recent call last):  File "object_detection/builders/model_builder_test.py", line 21, in 
from object_detection.builders import model_builderImportError: No module named 'object_detection'

说明前边模块文件路径配置没有成功。

#三、训练自己的数据
###1.下载模型
选择其中的下载
###2.创建标签分类的配置文件(label_map.pbtxt)

item {  id: 1 # id一定要从1开始编号  name: 'syjxh'}item {  id: 2  name: 'dnb'}

放在一个位置就好

###3.修改对应的pipline配置文件
找到\object_detection\samples\configs\XXXXXXXXXXX.config文件,XXXXXXXXXXX需要和你下载的模型一致的配置文件,复制到\test\data文件夹下,修改一下几处:

# ====修改 1=====num_classes:2    # 根据你的目标分类来,我这里一共标记了6种对象# ====修改 2=====# 因为我们是重新训练模型,所以这里注释掉模型检测点,并将from_detection_checkpoint该为false# fine_tune_checkpoint: "PATH_TO_BE_CONFIGURED/model.ckpt"    from_detection_checkpoint: false  num_steps: 200000  # 训练次数# ====修改 3=====train_input_reader: {  tf_record_input_reader {    # 训练样本路径    input_path: "A/models/test/data/train.record"   }  # 标签分类配置文件路径  label_map_path: "A/models/test/label_map.pbtxt"}# ====修改 4=====eval_input_reader: {  tf_record_input_reader {    # 验证样本路径    input_path: "A/models/test/data/eval.record"  }   # 标签分类配置文件路径  label_map_path: "A/models/test/label_map.pbtxt"  shuffle: false  num_readers: 1}

###4.开始训练啦!!!!

直接使用object_detection\train.py文件进行训练即可,参数如下:

--logtostderr--pipeline_config_path=F:/TensorFlow/models/test/data/ssd_inception_v2_pets.config--train_dir=F:/TensorFlow/models/test/training

配置好参数后,直接run起来,接下来就是漫长的等待,训练过程中可以使用eval.py文件进行验证。

目前我还没跑出结果,截个图给大家瞅瞅先!还在训练中,估计跑一天。。。

这里写图片描述


继续补充结果


参考:

,

你可能感兴趣的文章
java操作cookie 实现两周内自动登录
查看>>
Tomcat 7优化前及优化后的性能对比
查看>>
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>