Windows下实现将Pascal VOC转化为TFRecords


Posted in Python onFebruary 17, 2020

前言

由于TensorFlow常用TFrecords作为输入格式,我们需要将制作好的Pascal VOC转为TFrecords格式。使用 object detection API 内提供的脚本。

TFRecords格式如下:

-uint64 length

-uint32 masked_crc32_of_length

-byte data[length]

-uint32 masked_crc32_of_data

前置要求:

Anaconda3(使用python3.x)

制作好的Pascal VOC数据集

1、配置protobuf

Google的protobuf是一种轻便高效的结构化数据存储格式,结构扩展性高,速度快,密度大。我们下载对应的protoc-3.4.0-win32.zip版本。解压之后的文件内容如下:

Windows下实现将Pascal VOC转化为TFRecords

将bin文件夹所在路径添加到环境变量PATH,再将bin下的protoc.exe移动到C:\Windows\System32目录下。

cmd下进入~models/reseach目录下,输入:

protoc object_detection/protos/*.proto --python_out=.

2、设置搜索路径

Windows下的API使用时会出现图示bug,需要创建xx.pth文件,将以下两条路径添加进去:

~\models\research

~\models\research\slim

接着,将pth文件移动到python安装目录的site-packages下。

Windows下实现将Pascal VOC转化为TFRecords

最后,我们利用cmd运行model_builder_test.py文件,测试环境是否搭建成功。

Windows下实现将Pascal VOC转化为TFRecords

3、修改pascal_label_map.pbtxt

打开~models/research/object_detection/data/pascal_label_map.pbtxt,修改其中的name为自己的分类名。

如图所示,这里我要识别分类的是图片数字0~3,所以修改了对应的name。

Windows下实现将Pascal VOC转化为TFRecords

4、修改create_pascal_tf_record.py文件

(1)47行:根据自己的VOC数据集格式,修改年份,如果是2007,则保持默认;

(2)49行:将data/pascal_label_map.pbtxt改为绝对路径

(3)81行:改为img_path = os.path.join('JPEGImages', data['filename'])

(4)82行:改为full_path =os.path.join(dataset_directory, 'VOC2012',img_path+'.jpg')

(5)163行 : 改为examples_path =os.path.join(data_dir, year, 'ImageSets', 'Main','xx' + FLAGES.set + '.txt')

xx里的内容是~VOCdevkit\VOC2012\ImageSets\Main目录下的文件前缀名称,如果没有,留空就可以。

5、运行

cmd下输入:

python ~/models/research/object_detection/dataset_tools/create_pascal_tf_record.py\

--data_dir=~/VOCdevkit \

--year=VOC2012 \

--output_path=~/xx.record

其中,波浪线的地方分别为自己的py文件位置、VOC数据位置、转换的record文件存储位置。

注:

1、protoc必须使用3.4版本而非3.5,否则会出现找不到*.proto的bug;

2、运行时出现很多bug,根据bug一步一步回推代码修改。

以上这篇Windows下实现将Pascal VOC转化为TFRecords就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python requests 超时和重试的方法
Dec 18 Python
Django框架实现分页显示内容的方法详解
May 10 Python
Python:Numpy 求平均向量的实例
Jun 29 Python
简单了解python关系(比较)运算符
Jul 08 Python
python递归法解决棋盘分割问题
Jul 17 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
Django多数据库配置及逆向生成model教程
Mar 28 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
使用 django orm 写 exists 条件过滤实例
May 20 Python
Python实现GIF图倒放
Jul 16 Python
基于python模拟TCP3次握手连接及发送数据
Nov 06 Python
python 简单的调用有道翻译
Nov 25 Python
tensorflow生成多个tfrecord文件实例
Feb 17 #Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
Feb 17 #Python
Python 读取有公式cell的结果内容实例方法
Feb 17 #Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
Feb 17 #Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
Feb 17 #Python
将自己的数据集制作成TFRecord格式教程
Feb 17 #Python
tensorflow 实现数据类型转换
Feb 17 #Python
You might like
PHP+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
php+ajax实现无刷新数据分页的办法
2015/11/02 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
Tips 带三角可关闭的文字提示
2010/10/06 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
jQuery实现类似老虎机滚动抽奖效果
2015/08/06 Javascript
js判断日期时间有效性的方法
2015/10/24 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
python实现爬取图书封面
2018/07/05 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
中国宠物用品商城:E宠商城
2016/08/27 全球购物
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
小学教师国培感言
2014/02/08 职场文书
企业宣传方案
2014/03/04 职场文书
网站客服岗位职责
2014/04/05 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
高中班主任评语
2014/12/30 职场文书
民间借贷被告代理词
2015/05/23 职场文书
家庭经济困难证明
2015/06/23 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
导游词之太原天龙山
2020/01/02 职场文书
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android