文章目录

  • 输入
  • 输出
  • Python脚本

输入

img_path : 图片文件夹路径
label_path : 标签文件夹路径

输出

脚本创建DataSet文件夹,下设images与labels文件夹,对应存放。

Python脚本

'''
Descripttion: split_img.py
version: 1.0
Author: UniDome
Date: 2022-04-20 16:28:45
LastEditors: UniDome
LastEditTime: 2022-04-20 16:39:56
'''
import os, shutil, random
from tqdm import tqdmdef split_img(img_path, label_path, split_list):try :   # 创建数据集文件夹Data = '../DataSet'os.mkdir(Data)train_img_dir = Data + '/images/train'val_img_dir = Data + '/images/val'test_img_dir = Data + '/images/test'train_label_dir = Data + '/labels/train'val_label_dir = Data + '/labels/val'test_label_dir = Data + '/labels/test'# 创建文件夹os.makedirs(train_img_dir)os.makedirs(train_label_dir)os.makedirs(val_img_dir)os.makedirs(val_label_dir)os.makedirs(test_img_dir)os.makedirs(test_label_dir)except:print('文件目录已存在')train, val, test = split_listall_img = os.listdir(img_path)all_img_path = [os.path.join(img_path, img) for img in all_img]# all_label = os.listdir(label_path)# all_label_path = [os.path.join(label_path, label) for label in all_label]train_img = random.sample(all_img_path, int(train * len(all_img_path)))train_img_copy = [os.path.join(train_img_dir, img.split('\\')[-1]) for img in train_img]train_label = [toLabelPath(img, label_path) for img in train_img]train_label_copy = [os.path.join(train_label_dir, label.split('\\')[-1]) for label in train_label]for i in tqdm(range(len(train_img)), desc='train ', ncols=80, unit='img'):_copy(train_img[i], train_img_dir)_copy(train_label[i], train_label_dir)all_img_path.remove(train_img[i])val_img = random.sample(all_img_path, int(val / (val + test) * len(all_img_path)))val_label = [toLabelPath(img, label_path) for img in val_img]for i in tqdm(range(len(val_img)), desc='val ', ncols=80, unit='img'):_copy(val_img[i], val_img_dir)_copy(val_label[i], val_label_dir)all_img_path.remove(val_img[i])test_img = all_img_pathtest_label = [toLabelPath(img, label_path) for img in test_img]for i in tqdm(range(len(test_img)), desc='test ', ncols=80, unit='img'):_copy(test_img[i], test_img_dir)_copy(test_label[i], test_label_dir)def _copy(from_path, to_path):shutil.copy(from_path, to_path)def toLabelPath(img_path, label_path):img = img_path.split('\\')[-1]label = img.split('.jpg')[0] + '.txt'return os.path.join(label_path, label)def main():img_path = r'D:\UniDome\UniFind\Python\VideoToimg\porton_test\glasses\images'label_path = r'D:\UniDome\UniFind\Python\VideoToimg\porton_test\glasses\labels'split_list = [0.7, 0.2, 0.1] # 数据集划分比例[train:val:test]split_img(img_path, label_path, split_list)if __name__ == '__main__':main()

YOLOv5数据集划分脚本(train、val、test)相关推荐

  1. 【YOLOv5 数据集划分】训练和验证、训练验证和测试(train、val)(train、val、test)

    [YOLOv5 数据集划分]训练和验证.训练验证和测试(train.val),(train.val.test) ①在已有测试集的情况下划分训练集和验证集 # 将图片和标注数据按比例切分为 训练集和测试 ...

  2. YOLOv5 数据集划分及生成labels

    0.本人文件夹存放格式 (因为要测试多个数据集和不同的yolov5版本和其他算法,所以数据集整体放到外面)                                               ...

  3. YOLOv5将自己数据集划分为训练集、验证集和测试集

    在用自己数据集跑YOLOv5代码时候,需要将自己的VOC标签格式数据集转为yolo格式. 首先是要获取自己的数据集,然后再对数据集进行标注,保存为VOC(xml格式).然后再把标注完的数据集划分为训练 ...

  4. 【目标检测】将目标检测数据集划分为训练集、验证集与测试集 python代码

    文件结构 数据集data_dir文件结构: ├── data_dir: 数据集图片所在目录(可包含其他合适文件,本脚本只对图片进行统计)├── 1.jpg: 图片1├── 2.jpg: 图片2└── ...

  5. 制作YOLOv5数据集

    制作YOLOv5数据集 1 使用labelImg标注数据集 1.1 下载labelImg 1.2 使用labelImg标注数据 1.2.1 数据存放 1.2.2 标注数据 2 将voc标签转换到yol ...

  6. 处理数据集python脚本(处理自己制作的数据集)

    import osclass BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(self):self.path = './qiche1' # 表示需要命名处 ...

  7. 数据集划分——训练集、测试集、验证集按照7:1:2

    数据集划分--训练集.测试集.验证集按照7:1:2 前面我对乳腺超声图像数据库进行数据增强,得到: 然后对数据集进行划分,按照训练集.测试集.验证集7:1:2的比例. 代码: import os im ...

  8. 数据集划分、label生成及按label将图片分类到不同文件夹

    1.数据集介绍 1.1 概念 1.2 数据集结构 2. 数据集划分及生成label 2.1 结构一 2.2 结构二 2.3 结构三 3. 数据集按label分类到不同文件夹 1.数据集介绍 1.1 概 ...

  9. 深度学习篇之数据集划分方法-附代码python详细注释

    在深度学习训练模型过程中,我们第一步就是要收集相应的数据集,之后我们就是要将数据划分为训练集train和验证集val,但是有时间我们时常面临数据量庞大的问题,手动划分显然是不现实的,因为太麻烦了,而且 ...

最新文章

  1. win10分辨率不能调整_图文介绍win10系统使用hdmi连接电视的处理方法
  2. 51CTO现已开通二级域名~~~~~
  3. java安装好了打不开机_这都不犯规?王骁辉尺度把握得真好 难怪0+0+0能打20分钟...
  4. Kali 更新源、更新系统和软件、删除软件和配置
  5. JavaScript的检测及其数据类型
  6. 计算机控制z反变换公式,第三章 计算机控制系统的数学描述(修正Z变换).ppt
  7. [李景山php]每天TP5-20161205|Loader.php-3
  8. java小游戏 : 飞翔的小鸟 (完整版)
  9. 服务器能用usb pe安装win7系统,另一种U盘(支持winPE,可以安装win7)安装ubuntu系统的方法...
  10. html网站计数器代码,如何在网站添加计数器代码
  11. JavaScript封装拖动滑块验证
  12. 软文营销成功案例-华为用猫设置手机解锁密码
  13. 咸鱼Maya笔记—Maya 场景操作
  14. 2018电视剧行业调研报告-趋势篇
  15. 通过PowerShell管理Office 365组
  16. 写出语句的四元式序列
  17. Excel如何冻结窗口
  18. 网页安全证书错误但无法安装证书的解决办法
  19. Android2.0 Release 1 Eclair API变化预览
  20. No qualifying bean of type 'com.xxx.xx.service.xxService' available: expected at leas

热门文章

  1. Apereo CAS 4.1 反序列化命令执行漏洞复现
  2. LLVM:Rust、Clang等语言的强大支持以及编译原理和过程
  3. java opengl 图片文字_如何通过opengl显示相机预览
  4. 8月17日云栖精选夜读:用户体验再掀高潮_阿里云域名领跑用户体验
  5. 随机生成5个英文验证码,判断用户输入的是否正确不区分大小写
  6. Matlab 基于IRLS的加权Cauchy稳健估计算法之二
  7. 纯干货!短视频脚本怎么写?零基础新手小白也能写好短视频脚本!【覃小龙课堂】
  8. jiffies机制及其实验与使用 jiffies与HZ换算
  9. php把图片合成视频,如何把照片做成视频 照片音乐视频制作 并插入几段短视频片段...
  10. 【架构师之路】四、系统架构