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使用range函数计算一组数和的方法
May 07 Python
Python使用tablib生成excel文件的简单实现方法
Mar 16 Python
Python运行报错UnicodeDecodeError的解决方法
Jun 07 Python
利用Python抓取行政区划码的方法
Nov 28 Python
Python字典,函数,全局变量代码解析
Dec 18 Python
python之super的使用小结
Aug 13 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
Pytorch环境搭建与基本语法
Jun 03 Python
Python中实现一行拆多行和多行并一行的示例代码
Sep 06 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
解决TensorFlow训练模型及保存数量限制的问题
Mar 03 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 mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
解析php中curl_multi的应用
2013/07/17 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
jQuery自定义添加"$"与解决"$"冲突的方法
2015/01/19 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
基于python实现学生管理系统
2018/10/17 Python
python list格式数据excel导出方法
2018/10/31 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
软件测试工程师面试问题精选
2016/10/28 面试题
文秘自荐信
2013/10/20 职场文书
促销活动计划书
2014/05/02 职场文书
校园文明标语
2014/06/13 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技