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 相关文章推荐
HTML中使用python屏蔽一些基本功能的方法
Jul 07 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
Python 中Pickle库的使用详解
Feb 24 Python
python如何在列表、字典中筛选数据
Mar 19 Python
Python 机器学习库 NumPy入门教程
Apr 19 Python
python中pika模块问题的深入探究
Oct 13 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
Oct 31 Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
Python格式化输出--%s,%d,%f的代码解析
Apr 29 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
在python3.9下如何安装scrapy的方法
Feb 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版
2006/10/09 PHP
php通过字符串调用函数示例
2014/03/02 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
什么是JavaScript
2009/08/13 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
js加强的经典分页实例
2013/03/15 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
详解React 条件渲染
2020/07/08 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
python3 flask实现文件上传功能
2020/03/20 Python
详解Python做一个名片管理系统
2019/03/14 Python
python getopt模块使用实例解析
2019/12/18 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
淘宝客服自我总结鉴定
2014/01/25 职场文书
高中地理教学反思
2014/01/29 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
2014年教研组工作总结
2014/11/26 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android