2023 数据集自动分配为训练集,测试集,验证集 过程讲解

准备工作

然后执行下面一段代码,需要修改的地方已经详细标注,只需要替换为自己的路径即可


import random
import os
import shutil

#    共有3处需要修改

#需要修改   1

#  修改训练集、验证集和测试集的比例分配
#  要分割的数据集数量要能被分配比例整除

train_percent = 0.8
test_percent = 0.1
valid_percent = 0.1


#需要修改  2

# 原始标注文件的路径(被分割的原始文件)
# 改成自己的路径
image_path = '.../.../images'
label_path = '.../.../labels'

images_files_list = os.listdir(image_path)
labels_files_list = os.listdir(label_path)
print('images files: {}'.format(images_files_list))
print('labels files: {}'.format(labels_files_list))


total_num = len(images_files_list)
print('total_num: {}'.format(total_num))

test_num = int(total_num * test_percent)
valid_num = int(total_num * valid_percent)
train_num = int(total_num * train_percent)

# 对应文件的索引
test_image_index = random.sample(range(total_num), test_num)
valid_image_index = random.sample(range(total_num), valid_num)
train_image_index = random.sample(range(total_num), train_num)


#需要修改  3

for i in range(total_num):
    print('src image: {}, i={}'.format(images_files_list[i], i))
    if i in test_image_index:

        #   '.../.../images/{}' 原始标注文件的路径(被分割的原始文件)  ,  '...../test/images/{}'分配后的文件存放的地点
        #   改成自己的路径
        shutil.copyfile('.../.../images/{}'.format(images_files_list[i]), '...../test/images/{}'.format(images_files_list[i]))
        shutil.copyfile('.../.../labels/{}'.format(labels_files_list[i]), '...../test/labels/{}'.format(labels_files_list[i]))
    elif i in valid_image_index:
        shutil.copyfile('.../.../images/{}'.format(images_files_list[i]), '...../valid/images/{}'.format(images_files_list[i]))
        shutil.copyfile('.../.../labels/{}'.format(labels_files_list[i]), '...../valid/labels/{}'.format(labels_files_list[i]))
    else:
        shutil.copyfile('.../.../images/{}'.format(images_files_list[i]), '...../train/images/{}'.format(images_files_list[i]))
        shutil.copyfile('.../.../labels/{}'.format(labels_files_list[i]), '...../train/labels/{}'.format(labels_files_list[i]))

 执行完成后,数据集已分配完毕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我来为您讲解如何使用Mask R-CNN训练自己的数据集。以下是基本步骤: 1. 准备数据 首先,您需要准备自己的数据集。这包括图像和相应的标注。在标注方面,您需要使用标注工具(如LabelImg)标注每个图像中的对象,并生成相应的标注文件。标注文件的格式通常是COCO格式,包括图像ID、对象类别、边界框坐标和分割掩码等信息。 2. 安装依赖项 在开始训练之前,您需要安装一些依赖项。这包括Python 3,TensorFlow,Keras和Mask R-CNN库。您可以通过以下命令安装这些依赖项: ``` pip install tensorflow-gpu==1.15 pip install keras==2.2.5 pip install mrcnn==0.2 ``` 3. 配置模型 接下来,您需要配置Mask R-CNN模型以适应您的数据集。您可以通过修改`samples/coco/coco.py`文件中的代码来实现。具体地,您需要指定类别数量、训练和验证数据集的路径、模型权重的保存路径等。 4. 训练模型 有了数据和模型配置之后,您就可以开始训练模型了。在训练之前,您需要下载预训练模型权重(如COCO预训练权重)并将其加载到模型中。然后,您可以通过运行以下命令来训练模型: ``` python samples/coco/coco.py train --dataset=/path/to/dataset --weights=coco ``` 请将`/path/to/dataset`替换为您自己的数据集路径。在训练过程中,模型将保存权重文件到指定的路径。 5. 测试模型 训练完成后,您可以使用`samples/coco/evaluate.py`脚本测试模型的性能。该脚本将计算模型在验证集上的平均精度(mAP)。 6. 使用模型 最后,您可以使用训练好的模型来进行目标检测或分割。您可以使用`samples/coco/inspect_model.py`脚本来测试模型对一张图像的输出。您还可以将模型嵌入到自己的应用程序中,以便进行实时目标检测或分割。 以上就是使用Mask R-CNN训练自己的数据集的基本步骤。如果您需要更详细的说明或遇到问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值