PaddleSeg脚本自建一个数据集,使用paddleseg内置脚本工具

在使用paddleseg进行语义分割时,第一步就是需要构建起自己的数据集,下文记录自己如何使用其自带的module——labelme2seg.py   split_dataset_list.py来构建。为了利用GPU,我通过本地进行数据集的搭建,上传到aistudio后,利用百度免费GPU资源再进行训练。因而下面的工具均为以下载到本地。

文章内容主要参考:PaddleSeg/README_CN.md at release/2.3 · PaddlePaddle/PaddleSeg · GitHub

一 使用labelme标注,获得json文件

在使用labelme标注结束后,会产生例如下的文件结构,即json文件与原图jpg在同一文件夹内

 

二 对json文件进行解析

此时我们先使用labelme2seg.py对json文件进行解析,在cmd中输入

# 此时在数据目录下进行运行
# Test为我存放json即原图的文件
python tools/labelme2seg.py Test

此时,脚本运行后,则自动生成一个class_name.txt以及annotations文件夹,annotations文件夹内存放了json文件解释出来的label文件,运行结果如下

三 整理数据树结构 

生成后,json文件已经使用完毕了,此时按照paddleseg推荐的结构进行整理

./dataset/  # 数据集根目录
|--images  # 原图目录
|  |--xxx1.jpg (xx1.png)
|  |--...
|  └--...
|
|--annotations  # 标注图目录
|  |--xxx1.png
|  |--...
|  └--...

所以在文件夹里,新建images文件夹,将原图剪切整理进去,然后可以把json文件都删掉,因为没用了,label已经都解压到了annotations(上一步生成)文件夹里,整理如下

四 切分自定义数据集

神经网络模型的训练过程通常要划分为训练集、验证集、测试集。因为我们将我们所有的数据按照此三类进行整理,此处使用PaddleSeg提供了生成切分数据并生成文件列表的脚本。

# 此时在数据目录下进行运行
# 数据集目录为Test Test其中原图目录为images 标注图目录为annotations
python tools/split_dataset_list.py Test images annotations --split 0.6 0.2 0.2 --format jpg png

脚本执行结果如下:

 生成了train.txt  val.txt  test.txt三个目录

目录的内容如下

 

 此时已经完成了数据集的构建工作,文中主要书写了paddleseg自带的脚本文件的用法,以供参考

Guess you like

Origin blog.csdn.net/weixin_44636374/article/details/121878545