【deeplab数据集4】(超详细)生成 .tfrecord数据

目录

前言

一、文件的归属

2、图片的转存

1.原图

2.label图像

3.转存图像须知

二、tf文件生成

三、预调试

四、执行


前言

最近在接触一个项目,要用到语义分割,如果大家有什么问题,都可以跟我沟通交流。除了通过博客交流外,欢迎你加入我的QQ群:326866692,一起交流有关于区块链、机器学习、深度学习、计算机视觉有关内容。我现在处于广泛涉猎阶段,希望我们能够一起沟通。下图是我的群二维码:

上一次我们说到了将label标签提取出来,提取方式如下:

批量提取label图像

 

一、文件的归属

文件的归属是说将对应的文件放到对应的文件夹下,所有的文件是有自己的存放位置,不是随意乱放的

官方给出的推荐文件目录如下:

【deeplab数据集4】(超详细)生成 .tfrecord数据_第1张图片

我的目录如下:

【deeplab数据集4】(超详细)生成 .tfrecord数据_第2张图片

防止大家混乱,我只说与本文相关的文件夹的存放内容。后续文章中我会专门说明所有文件夹的存放内容。

我们这次只用到两个二级文件夹:

tfrecord:存放生成的tf文件。

VOC2019:主要用到该文件夹下面的三个文件夹:

(1)ImageSets:用到Segmentation文件夹,该文件夹下存放train.txt和val.txt两个txt文件。train中存放训练集的名称,val中存放验证集的名称。

(2)JPEGImages:存放初始jpg图片与后来生成的png图片,如果本身初始数据集图片就是png,那只有png就可以了。

(3)SegmentationClass:存放label标签图片。注意这个图片是单通道的,简单理解就是黑白图像,按照我前面的转化label的方式生成的直接是单通道的,无需大家再转化。

2、图片的转存

这个图片指的是label图片和原图

1.原图

原图必须是png格式的,因为我做数据集的时候的图片是jpg 的,所以这个里面我还要讲png文件再存进来,前面生成label图像时,就生成了对应的png文件,按照相同的提取方法:

批量提取label图像

将png格式的图片提取到 JPEGImages 文件夹下。

【deeplab数据集4】(超详细)生成 .tfrecord数据_第3张图片

2.label图像

label图像必须是单通道的png图片。我们需要将前面转存到单独文件夹下的png图片存在 SegmentationClass 文件夹下。

【deeplab数据集4】(超详细)生成 .tfrecord数据_第4张图片

3.转存图像须知

因为这个比较重要,再强调一下:

(1)原图必须为png格式;

(2)label图像必须为单通道png格式;

(3)原图与label图像和train.txt和val.txt文件中的名称一一对应。

 

二、tf文件生成

打开 build_voc2012_data.py 文件,修改如下的内容:

tf.app.flags.DEFINE_string(
    'image_folder', #保存images的路径
    'D:/zyt/DLProject/deeplab/datasets/Pascal_Voc/VOC2019/JPEGImages',
    'Folder containing images.') 

tf.app.flags.DEFINE_string(
    'semantic_segmentation_folder', #保存labels的路径
    'D:/zyt/DLProject/deeplab/datasets/Pascal_Voc/VOC2019/SegmentationClass',
    'Folder containing semantic segmentation annotations.')

tf.app.flags.DEFINE_string(
    'list_folder', #保存train.txt 和 val.txt 文件的路径
    'D:/zyt/DLProject/deeplab/datasets/Pascal_Voc/VOC2019/ImageSets/Segmentation',
    'Folder containing lists for training and validation')

tf.app.flags.DEFINE_string(
    'output_dir',  # 生成tfrecord格式的数据所要保存的位置
    'D:/zyt/DLProject/deeplab/datasets/Pascal_Voc/tfrecord',
    'Path to save converted SSTable of TensorFlow examples.')

修改中间位置的内容,即修改路径:

(1)'image_folder' :保存images的路径

(2)'semantic_segmentation_folder' :保存label图像的路径

(3)'list_folder' :保存train.txt 和 val.txt 文件的路径

(4)'output_dir' :生成tfrecord格式的数据所要保存的位置

 

三、预调试

接下来就是预调试,右键点击文件运行就可以了。

为什么是预调试呢?因为可能会出现错误,我们需要不断地解决这些问题,可能出现的问题是找不到png文件,那就是图像路径有问题,或者文件名称对不上,注意检查一下上面强调的问题。

四、执行

解决完所有问题就是执行代码了,右键点击文件运行。我使用了1000张训练集图片,100张验证集图片。执行如下:

【deeplab数据集4】(超详细)生成 .tfrecord数据_第5张图片 执行成功界面

 生成的文件如下,因为我没有在trainval.txt文件夹中设置数据集,所有生成的文件为空。

【deeplab数据集4】(超详细)生成 .tfrecord数据_第6张图片 生成的文件

你可能感兴趣的:(深度学习,tfrecord,图像设置,label图像,deeplab文件,数据集)