前言

由于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就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

标签:
Windows,Pascal,VOC,TFRecords

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com

评论“Windows下实现将Pascal VOC转化为TFRecords”

暂无“Windows下实现将Pascal VOC转化为TFRecords”评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?