国外炫网站,男女生做内个的网站,腾讯广告推广平台入口,深圳网站制作哪家价格便宜目录 前言训练集、验证集#xff08;8:2#xff09;训练集、验证集、测试集#xff08;7:2:1#xff09; 前言
本博客是在我的另一篇博客 VOC 格式与 YOLO 格式的相互转换 的基础上进行的#xff0c;有需要可以参考 以下代码亲测可以直接复制运行#xff08;以下所有的路… 目录 前言训练集、验证集8:2训练集、验证集、测试集7:2:1 前言
本博客是在我的另一篇博客 VOC 格式与 YOLO 格式的相互转换 的基础上进行的有需要可以参考 以下代码亲测可以直接复制运行以下所有的路径修改成自己对应的路径 {\color{Red} \mathbf{以下代码亲测可以直接复制运行 以下所有的路径修改成自己对应的路径}} 以下代码亲测可以直接复制运行以下所有的路径修改成自己对应的路径
训练集、验证集8:2
split82.py 内容如下
import os
import shutil
import random
from tqdm import tqdm
标注文件是yolo格式txt文件
训练集验证集 82
def split_img(img_path, label_path, split_list):try: # 创建数据集文件夹Data ./VOCdevkit/VOC2007/ImageSets# 这里我的文件夹./VOCdevkit/VOC2007/ImageSets提前创建好了所以注释了下一行否则会抛异常# os.mkdir(Data)train_img_dir Data /images/trainval_img_dir Data /images/val# test_img_dir Data /images/testtrain_label_dir Data /labels/trainval_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 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)), desctrain , ncols80, unitimg):_copy(train_img[i], train_img_dir)_copy(train_label[i], train_label_dir)all_img_path.remove(train_img[i])val_img all_img_pathval_label [toLabelPath(img, label_path) for img in val_img]for i in tqdm(range(len(val_img)), descval , ncols80, unitimg):_copy(val_img[i], val_img_dir)_copy(val_label[i], val_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] .txtreturn os.path.join(label_path, label)if __name__ __main__:img_path ./VOCdevkit/VOC2007/JPEGImageslabel_path ./YoloLabelssplit_list [0.8, 0.2] # 数据集划分比例[train:val]split_img(img_path, label_path, split_list)训练集、验证集、测试集7:2:1
split721.py内容如下
import os, shutil, random
from tqdm import tqdm
标注文件是yolo格式txt文件
训练集验证集测试集 721
def split_img(img_path, label_path, split_list):try:Data ./VOCdevkit/VOC2007/ImageSets# Data是你要将要创建的文件夹路径路径一定是相对于你当前的这个脚本而言的# os.mkdir(Data)train_img_dir Data /images/trainval_img_dir Data /images/valtest_img_dir Data /images/testtrain_label_dir Data /labels/trainval_label_dir Data /labels/valtest_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)), desctrain , ncols80, unitimg):_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)), descval , ncols80, unitimg):_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)), desctest , ncols80, unitimg):_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] .txtreturn os.path.join(label_path, label)if __name__ __main__:img_path ./VOCdevkit/VOC2007/JPEGImages # 你的图片存放的路径路径一定是相对于你当前的这个脚本文件而言的label_path ./YoloLabels # 你的txt文件存放的路径路径一定是相对于你当前的这个脚本文件而言的split_list [0.7, 0.2, 0.1] # 数据集划分比例[train:val:test]split_img(img_path, label_path, split_list)完成我的另一篇博客 VOC 格式与 YOLO 格式的相互转换以及本文YOLO 划分数据集训练集、验证集、测试集之后我的整个项目结构如下图所示