IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【part2】Tensorflow Object detection API Win10使用教程(tensorflow数据集生成教程) -> 正文阅读

[人工智能]【part2】Tensorflow Object detection API Win10使用教程(tensorflow数据集生成教程)

前言:

该教程目的是为了把Pascal VOC数据集转换成tensorflow object detection api可用的数据集的格式(.tfrecord)。

教程结构:

本教程分为四个部分:

一、前期准备
二、数据集生成工具使用方法
三、使用详细步骤及效果
四、各个.py文件作用说明

注意:

假如数据集用labelImg进行标注,且输出标注格式为Pascal VOC,则该教程可以直接使用。

为了演示,”models-r1.13.0.zip”里面的“/research/object_detection/images/”目录已经内置了Pascal VOC数据集文件、经过转换生成的.csv文件,以及最后转换生成的tfrecord。

如果需要使用新标注的数据去生成tensorflow数据集,把”images”文件夹下图中的内容清空,然后重新放置Pascal VOC数据集到对应的位置,然后使用下面的流程重新生成.csv和.tfrecord即可。
在这里插入图片描述


一、前期准备

需要下载2个文件, 可以在我github上进行Clone:
数据集转换工具(voc2tfrecord).rar
https://github.com/HelloSZS/VOC_to_TFrecord
models-r1.13.0.zip
https://github.com/HelloSZS/models-r1.13.0

前期准备阶段,需要把标注好的数据集放到tensorflow object detection文件夹的对应目录中。放置的第一级文件目录结构样式如下图所示:

在这里插入图片描述

第一级文件目录存放了:

  1. Annotations文件夹: 标注信息文件夹
  2. JPEGImages文件夹:图片文件夹

1.Annotations文件夹的内容如下图所示,存放着.xml标注文件(VOC数据集标注文件格式)。
在这里插入图片描述

2.JPEGImages文件夹的内容如下图所示,存放被标注好的图片文件。
在这里插入图片描述


二、数据集生成工具使用方法

1.把图片文件、标注文件放置好,然后把”数据集转换工具(voc2tfrecord).rar”里面的三个.py文件,解压到下图位置(其实已经内置)。三个.py文件的名称:
“1.split_xml_anno.py”
“2.xml2csv.py”
“3.csv2tfrecord.py”
在这里插入图片描述
数据集转换工具(voc2tfrecord).rar”的内容,里面有一个object文件夹放置模型配置信息,三、详细使用步骤及效果中会提及到。
在这里插入图片描述
2.使用步骤:使用cmd命令运行三个文件之前,先切换cmd的“当前目录”。
在这里插入图片描述
第一步:用cmd执行:Python 1.split_xml_anno.py
第二步:用cmd执行:Python 2.xml2csv.py
第三步:
先修改3.csv2tfrecord.py里面对应位置的代码,修改方法在“三、执行步骤详细教程及效果”的第3点,修改完再按顺序在cmd里面执行以下命令:

python 3.csv2tfrecord.py --csv_input=mineral_train_labels.csv --output_path=mineral_train_labels.tfrecord
python 3.csv2tfrecord.py --csv_input=mineral_test_labels.csv --output_path=mineral_test_labels.tfrecord
python 3.csv2tfrecord.py --csv_input=mineral_validation_labels.csv --output_path=mineral_validation_labels.tfrecord

三、详细使用步骤及效果:

1.执行第一步,如果成功,会显示数据集分割的信息,以及数据数量。
在这里插入图片描述

2.执行第二步,可能会显示该环境没有安装相应的库,如下图所示:
在这里插入图片描述
查看上述错误结果,缺少pandas库,使用python语言自带的pip进行下载安装,注意检查是否已连接网络。

对应缺少pandas库,使用:pip install pandas 来安装,若安装成功,则cmd输出应该会如下图所示:
在这里插入图片描述
然后重新运行,第二步成功执行,如果成功,cmd输出如下图:
在这里插入图片描述
成功执行第二步,文件夹会生成三个文件:
mineral_test_labels.csv
mineral_train_labels.csv
mineral_validation_labels.csv

在这里插入图片描述

打开.csv文件,里面会存放类似信息,如下图:
在这里插入图片描述

3.执行第三步,执行之前需要按照标注时标注的类别名称修改:“3.csv2tfrecord.py”中的代码

以下图为例子,需要转换的数据集被分成了20个类别:则代码如下图所示:

在这里插入图片描述

假如标注时添加了一类“Copper Mineral”,则在该代码文件里面需要修改部分代码,在上图基础上做更改,如下图所示:
在这里插入图片描述

修改完成之后保存,然后在cmd下分次运行下面三个命令:

python 3.csv2tfrecord.py --csv_input=mineral_train_labels.csv --output_path=mineral_train_labels.tfrecord
python 3.csv2tfrecord.py --csv_input=mineral_test_labels.csv --output_path=mineral_test_labels.tfrecord
python 3.csv2tfrecord.py --csv_input=mineral_validation_labels.csv --output_path=mineral_validation_labels.tfrecord

如果此步骤执行成功,则cmd会分次生成以下三个提示:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
并且文件夹中会生成三个文件:
mineral_test_labels.tfrecord
mineral_train_labels.tfrecord
mineral_validation_labels.tfrecord
在这里插入图片描述
至此,tensorflow运行需要的数据集已经生成完成。

三个生成文件的名字可以修改,不过要和后续使用tensorflow object detection api运行模型其中所需的模型配置文件里面的数据集名称一致,如下图绿框部分所示:
在这里插入图片描述


下面介绍配置模型配置文件需要配置的部分。

4.模型配置文件的介绍

“配置文件”包含tensorflow object detection api在训练模型之前,它需要获取的全部信息:模型的结构设置、优化器的参数设置、数据集存放的位置,数据集读取器的参数设置等。

不过在本“数据集转换”教程中,只会讲述“配置文件”中与“数据集”相关的部分。
在这里插入图片描述
把”数据集转换工具(voc2tfrecord).rar”里面的object文件夹也解压到当前数据集文件夹中:
在这里插入图片描述
object文件夹中包含一个模型配置文件(.config):
在这里插入图片描述
(可以用记事本,也可以用vscode或pycharm等IDE打开)打开之后,跳到代码第173行,该位置内容如下图所示。
在这里插入图片描述
最后,看到上图红框的部分,里面有:

label_map_path: "/models-master/research/object_detection/images/object_mineral_label_map.pbtxt"

在"/models-master/research/object_detection/images/”下新建一个”.pbtxt”文件,文件名随意,不过要和上图文件中的一致(可修改上图中对应的部分,也可直接修改该文件名。也可以同时修改两者的名称)。

在这里插入图片描述
该.pbtxt的作用是给模型输入类名和类标号, 该文件可用“记事本”方式打开,其内容为:

item {
  id: 1
  name: 类名1
}

item {
  id: 2
  name: 类名2
}
......

内容示例:假如标注有两类类别的目标”Goal Mineral”和”Silver Mineral”,则内容如下图:

在这里插入图片描述
如果和在三、执行步骤详细教程及效果里面同样:要添加一类“Copper Mineral”,则该.pbtxt修改后的内容如下图所示:
在这里插入图片描述
至此,教程全部结束。


四、各个.py文件作用说明

第一个文件:1.split_xml_anno.py用作划分训练集、验证集以及测试集。
第二个文件:2.xml2csv.py用作把第一步产生的各个集合里的所有xml文件转换为csv文件。

CSV文件打开后的内容如图所示,记录(该训练集或验证集或测试集)中每张图片标注的标注框bbox信息。
在这里插入图片描述
第三个文件;3.csv2tfrecord.py把csv文件转换成tensorflow可用的数据集文件格式(.tfrecord)

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 18:56:35  更:2022-01-30 18:57:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 6:40:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码