关于图像分割任务中按照比例将数据集随机划分成训练集和测试集

1. 前言

之前写了分类和检测任务划分数据集的脚本,三大任务实现了俩,基于强迫症,也实现一下图像分割的划分脚本

分类划分数据:关于图像分类任务中划分数据集,并且生成分类类别的josn字典文件

检测划分数据:关于目标检测中按照比例将数据集随机划分成训练集和测试集

之前写了目标检测的可视化脚本,明天看看要不要把分类和分割的可视化也实现一下,之前的博文里实现过,但都是大项目里的一个环节,看看能不能单独实现一下

 

这里的脚本和未划分数据的目录在同一路径

2. 完整代码

如下:

import random
import os
import shutil
from tqdm import tqdm# 划分数据函数
def split_data(root, test_rate):images_path = [os.path.join(root, i) for i in os.listdir(root)]  # 获取所有图片路径test_split_path = random.sample(images_path, k=int(len(images_path) * test_rate))  # 随机采样测试集# 遍历所有图片for image_path in tqdm(images_path, desc='loading...'):# 获取相应的标注文件,这里需要根据目录、后缀更改mask_path = image_path.replace('images', 'masks')# 划分数据if image_path in test_split_path:  # 在测试集shutil.copy(image_path, './data/test/images')shutil.copy(mask_path, './data/test/masks')else:shutil.copy(image_path, './data/train/images')shutil.copy(mask_path, './data/train/masks')if __name__ == '__main__':rawDataSet = './rawDataSet/images'  # 原始数据的图片路径if os.path.exists('./data'):  # 如果之前有,那么删除shutil.rmtree('./data')os.makedirs('./data/train/images')  # 训练集图片os.makedirs('./data/train/masks')   # 训练集标签os.makedirs('./data/test/images')  # 测试集图片os.makedirs('./data/test/masks')   # 测试集标签# 划分数据split_data(root=rawDataSet, test_rate=0.2)

运行过程:这里测试五个数据

运行结果:

 

3. 注意的点

根据训练图片找到对应mask模板的时候,这里要根据目录更换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/329052.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫-3-模拟登录,代理ip,json模块

#本文仅供学习使用(O`) 如果服务器响应的数据为json数据: 那么我们可以用 res.json() 或 json模块(将json字符串转换为Python里面的字典类型) 接收数据。

IMU用于无人机故障诊断

最近,来自韩国的研究团队通过开发以IMU为中心的数据驱动诊断方法,旨在多旋翼飞行器可以自我评估其性能,即时识别和解决推进故障。该方法从单纯的常规目视检查跃升为复杂的诊断细微差别,标志着无人机维护的范式转变。 与依赖额外传…

Jenkins修改全局maven配置后不生效解决办法、以及任务读取不同的settings.xml文件配置

一、修改Global Tool Configuration的maven配置不生效 说明:搭建好jenkins后,修改了全局的settings.xml,导致读取settings一直是之前配置的。 解决办法一 Jenkins在创建工作任务时,会读取当前配置文件内容,固定在这…

MediaPipeUnityPlugin(最新版)摇摆拳人脸识别

1、从https://github.com/homuler/MediaPipeUnityPlugin 下载Release Package 目前是MediaPipeUnity.0.12.0.unitypackage 2、导入Unity工程 3、打开Face Detection场景,做一些设置修改 1、打开Bootstrap,图像源改成Video,把Solution拖拽到…

SD点击扩展的可用 想下载其他插件的时候报错

这个错误通常是由于命令行标志禁用了扩展访问所导致的。 您可以尝试在启动WebUI的时候添加一个参数–enable-insecure-extension-access,或者在webui-user.sh的export COMMANDLINE_ARGS参数中增加以下参数 --enable-insecure-extension-access。

【远程计算机,这可能是由于 Credssp 加客数据库修正】解决方案

1、winR打开运行窗口 输入gpedit.msc命令,若找不到,可以进行如下文件编辑格式为cmd echo offpushd "%~dp0"dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txtdir /b C:\Win…

ASP.NET Core中实现个人资料上传图片功能

当用户需要在ASP.NET Core中实现修改个人资料的功能时,其中一个常见的需求就是允许上传个人头像图片。下面将详细介绍如何在ASP.NET Core中实现修改个人资料上传图片的功能。 步骤一:控制器中添加一个HttpPost方法 首先,我们在控制器中添加…

【笑小枫】2023:岁月如歌,坚持与放弃的交织;2024:新的征程,希望与期望的绽放

笑小枫的专属目录 2023:岁月如歌,坚持与放弃的交织笑小枫的坚持笑小枫的放弃回顾2023 2024:新的征程,希望与期望的绽放笑小枫的希望笑小枫的期望展望2024 结语 随着2023年的结束,我站在了新的起点上,回首过…

线程安全、共享变量的可见性

Java中的线程安全问题 谈到线程安全问题,我们先说说什么是共享资源。所谓共享资源,就是说该资源被多个线程所持有或者说多个线程都可以去访问该资源。 线程安全问题是指当多个线程同时读写一个共享资源并且没有任何同步措施时,导致出现脏数…

第15课 利用openCV实现人脸识别

这节课,我们再来看一个简单且实用的例子:人脸识别。这个小例子可以让你进一步领略openCV的强悍。 1.复制demo14并改名为demo15。 2.修改capImg函数: int fmle::capImg() {// 加载人脸检测分类器cv::CascadeClassifier faceCascade;faceCas…

各银行小微企业信贷相关产品和机器学习建模案例

各银行小微企业贷款业务 互联网的时代,大量新信息技术的涌现和网络的无处不在,想要抢占这片金融天地,必须重视小微金融业务,小微企业是一直具有重大潜力的客户,商业银行、消金公司发展小微信贷业务可以拓宽自身客户群…

Vue2 实现内容拖拽或添加 HTML 到 Tinymce 富文本编辑器的高级功能详解

在 Web 开发中,Tinymce 被广泛应用作为富文本编辑器。除了基础的文本编辑功能,Tinymce 还提供了一系列高级功能,使得文本编辑更加灵活和便捷。本文将介绍如何在 Tinymce 中实现一些高级功能,并深入了解每个工具的使用。 Tinymce …