作者:挡不住的向左寻找爱 | 来源:互联网 | 2023-08-23 04:24
在使用paddleseg进行语义分割时,第一步就是需要构建起自己的数据集,下文记录自己如何使用其自带的module——labelme2seg.pysplit_dataset_lis
在使用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自带的脚本文件的用法,以供参考