1 Star 0 Fork 1

王晓鹏/cv_yolov8

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
7_voc_split_txt.py 1.54 KB
一键复制 编辑 原始数据 按行查看 历史
王晓鹏 提交于 2024-07-04 16:19 +08:00 . update
import os
import random
'''
对图片数据集进行随机分类
以8: 1: 1的比例分为训练数据集,验证数据集和测试数据集
运行后在ImageSets文件夹中会出现四个文件
'''
ROOT = os.getcwd() + "/"
print(ROOT)
trainval_percent = 0.9
train_percent = 0.9
xmlfilepath = ROOT + 'Annotations'
imagefilepath = ROOT + 'images'
#创建 ImageSets/Main 目录
imagesets = ROOT + 'ImageSets'
imagesets_main = ROOT + 'ImageSets/Main'
if not os.path.exists(imagesets):
os.mkdir(imagesets)
if not os.path.exists(imagesets_main):
os.mkdir(imagesets_main)
# 获取该路径下所有文件的名称,存放在list中
total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)
ftrainval = open(imagesets_main + '/trainval.txt', 'w')
ftest = open(imagesets_main + '/test.txt', 'w')
ftrain = open(imagesets_main + '/train.txt', 'w')
fval = open(imagesets_main + '/val.txt', 'w')
for i in list:
# 获取文件名称中.xml之前的序号
name = total_xml[i][:-4] + '\n'
#检查是否有对应的图片文件
image_file = os.path.join(imagefilepath, total_xml[i][:-4]+'.jpg')
if os.path.exists(image_file):
if i in trainval:
ftrainval.write(name)
if i in train:
ftrain.write(name)
else:
fval.write(name)
else:
ftest.write(name)
ftrainval.close()
ftrain.close()
fval.close()
ftest.close()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/chris118/cv_yolov8.git
git@gitee.com:chris118/cv_yolov8.git
chris118
cv_yolov8
cv_yolov8
master

搜索帮助