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 相关文章推荐
netbeans7安装python插件的方法图解
Dec 24 Python
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
python用opencv批量截取图像指定区域的方法
Jan 24 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
Django项目中使用JWT的实现代码
Nov 04 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
Pytorch 实现focal_loss 多类别和二分类示例
Jan 14 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
Python实现手势识别
Oct 21 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 json与xml序列化/反序列化
2013/10/28 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
2020/04/07 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
python读取指定字节长度的文本方法
2019/08/27 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
苹果音乐订阅:Apple Music
2018/08/02 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
酒店保安员岗位职责
2014/01/31 职场文书
教育学习自我评价
2014/02/03 职场文书
初级党校心得体会
2014/09/11 职场文书
师德师风自查总结
2014/10/14 职场文书
业务员辞职信范文
2015/03/02 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
Web应用开发TypeScript使用详解
2022/05/25 Javascript
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技