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的单元测试
Apr 28 Python
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
python 实时遍历日志文件
Apr 12 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
Python图像处理之识别图像中的文字(实例讲解)
May 10 Python
Python requests发送post请求的一些疑点
May 20 Python
python 反向输出字符串的方法
Jul 16 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
linux下安装python3和对应的pip环境教程详解
Jul 01 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
利用pandas将非数值数据转换成数值的方式
Dec 18 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实现文件安全下载
2006/10/09 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
PHP 防注入函数(格式化数据)
2011/08/08 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
python变量不能以数字打头详解
2016/07/06 Python
django之session与分页(实例讲解)
2017/11/13 Python
Python3计算三角形的面积代码
2017/12/18 Python
python中的随机函数小结
2018/01/27 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
巴西购物网站:Estrela10
2018/12/13 全球购物
平面设计专业大学生职业规划书
2014/03/12 职场文书
大学生实习证明范文(5篇)
2014/09/18 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
财务总监岗位职责
2015/02/03 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python
vue如何清除浏览器历史栈
2022/05/25 Vue.js