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使用递归解决全排列数字示例
Feb 11 Python
浅谈Python中的闭包
Jul 08 Python
Django实现全文检索的方法(支持中文)
May 14 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
Aug 23 Python
pygame实现打字游戏
Feb 19 Python
python 两个一样的字符串用==结果为false问题的解决
Mar 12 Python
python查看矩阵的行列号以及维数方式
May 22 Python
将keras的h5模型转换为tensorflow的pb模型操作
May 25 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 Python
Python实现简单得递归下降Parser
May 02 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的ob_start();控制您的浏览器cache!
2007/02/14 PHP
PHP合并数组+与array_merge的区别分析
2010/08/01 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
php实现搜索类封装示例
2016/03/31 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
JS window.opener返回父页面的应用
2009/10/24 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
SWFObject基本用法实例分析
2015/07/20 Javascript
jQuery中的基本选择器用法学习教程
2016/04/14 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
Python做文本按行去重的实现方法
2016/10/19 Python
python统计中文字符数量的两种方法
2019/01/31 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
Oracle的内存结构(Memory structures)
2015/06/10 面试题
全神贯注教学反思
2014/02/03 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
2014年电工工作总结
2014/11/20 职场文书
应聘教师自荐信
2015/03/26 职场文书
关于调整工作时间的通知
2015/04/24 职场文书
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技