制作自己的数据集

1. Pascal VOC数据讲解

Pascal VOC官方数据
在这里插入图片描述

在这里插入图片描述
train.txt文件中所有的文件信息,通过信息到annnotation中寻找他的图像的标注信息(高度、宽度、图像中的目标分类),然后找到jpgImages文件中查找该文件,并将文件加载入内存中

2. 制作自己的数据集

制作标签的软件

2.1. 创建类别文件

在这里插入图片描述
只需要图像文件夹,类别文件,和annotations文件夹即可,生成的标签好的信息xml文件会自动生成在文件中

2.2. 运行程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 分类数据划分脚本

以划分花的数据集为例

import os
from shutil import copy, rmtree
import random


def mk_file(file_path: str):
    if os.path.exists(file_path):
        # 如果文件夹存在,则先删除原文件夹在重新创建
        rmtree(file_path)
    os.makedirs(file_path)


def main():
    # 保证随机可复现
    random.seed(0)

    # 将数据集中10%的数据划分到验证集中
    split_rate = 0.1

    # 指向你解压后的flower_photos文件夹
    cwd = os.getcwd()
    data_root = os.path.join(cwd, "flower_data")
    origin_flower_path = os.path.join(data_root, "flower_photos")
    assert os.path.exists(origin_flower_path)
    flower_class = [cla for cla in os.listdir(origin_flower_path)
                    if os.path.isdir(os.path.join(origin_flower_path, cla))]

    # 建立保存训练集的文件夹
    train_root = os.path.join(data_root, "train")
    mk_file(train_root)
    for cla in flower_class:
        # 建立每个类别对应的文件夹
        mk_file(os.path.join(train_root, cla))

    # 建立保存验证集的文件夹
    val_root = os.path.join(data_root, "val")
    mk_file(val_root)
    for cla in flower_class:
        # 建立每个类别对应的文件夹
        mk_file(os.path.join(val_root, cla))

    for cla in flower_class:
        cla_path = os.path.join(origin_flower_path, cla)
        images = os.listdir(cla_path)
        num = len(images)
        # 随机采样验证集的索引
        eval_index = random.sample(images, k=int(num*split_rate))
        for index, image in enumerate(images):
            if image in eval_index:
                # 将分配至验证集中的文件复制到相应目录
                image_path = os.path.join(cla_path, image)
                new_path = os.path.join(val_root, cla)
                copy(image_path, new_path)
            else:
                # 将分配至训练集中的文件复制到相应目录
                image_path = os.path.join(cla_path, image)
                new_path = os.path.join(train_root, cla)
                copy(image_path, new_path)
            print("\r[{}] processing [{}/{}]".format(cla, index+1, num), end="")  # processing bar
        print()

    print("processing done!")


if __name__ == '__main__':
    main()

数据集文件结构

[root@ip-172-31-2-172 flower_photos]# tree . -L 1
.
├── daisy
├── dandelion
├── LICENSE.txt
├── roses
├── sunflowers
└── tulips
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作自己的数据集可以按照以下步骤进行: 1. 确定数据集的目的和主题:首先,明确你想要构建数据集的目的和主题,例如自然语言处理、计算机视觉等。 2. 收集和筛选数据:根据你的主题,在互联网上搜索相关的数据源,或者创建自己的数据。确保数据的质量和准确性,同时尽量涵盖不同的情况和变化。 3. 数据清洗和预处理:对收集到的数据进行清洗和预处理,以去除无效或冗余的数据,并将数据转换为适合模型训练的格式。这可能包括文本清洗、图像裁剪、标注等操作。 4. 标注和注释数据:根据你的需求,对数据进行标注和注释,以便训练模型能够理解和学习数据的含义。例如,对文本数据可以进行分类、命名实体识别等标注,对图像数据可以进行目标检测、分割等注释。 5. 划分训练集和测试集:将数据集划分为训练集和测试集,用于模型的训练和评估。通常,训练集用于模型的训练,测试集用于评估模型的性能。 6. 数据增强(可选):如果你的数据量有限,可以使用数据增强技术生成更多的训练样本。例如,对图像进行旋转、翻转、缩放等操作,对文本进行词语替换、重排等操作。 7. 数据集的格式:根据你使用的模型和框架要求,将数据集保存为特定的格式,如CSV、JSON、TFRecord等。 8. 数据集的文档和元数据:为了方便其他人使用你的数据集,你可以提供相关的文档和元数据,包括数据集的描述、格式说明、标注规范等。 9. 数据集的分享与发布:如果你希望与他人共享你的数据集,可以将其上传到数据集共享平台或者在论文、博客等中公开分享。 请注意,在制作自己的数据集时,需要遵守相关的法律法规和道德准则,尊重数据的隐私和版权。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值