分类数据集列表生成代码

部署运行你感兴趣的模型镜像

直接运行就可以,项目链接:(待更新)

import codecs  
import os  
import random  
import shutil  
from PIL import Image  
  
# 训练和验证数据集的比例,多少比例用于训练
train_ratio = 4.0 / 5
  
all_file_dir = 'imgdata/IDcard'  
class_list = [c for c in os.listdir(all_file_dir) if os.path.isdir(os.path.join(all_file_dir, c)) and not c.endswith('Set') and not c.startswith('.')]  
class_list.sort()
print(class_list)  
train_image_dir = os.path.join(all_file_dir, "trainImageSet")  # 这里生成trainImageSet/ 文件,训练集图片都保存在该文件夹下(不论是哪个分类)。
if not os.path.exists(train_image_dir):  
    os.makedirs(train_image_dir)  
      
eval_image_dir = os.path.join(all_file_dir, "evalImageSet")  
if not os.path.exists(eval_image_dir):  
    os.makedirs(eval_image_dir)  
  
train_file = codecs.open(os.path.join(all_file_dir, "train.txt"), 'w')  
eval_file = codecs.open(os.path.join(all_file_dir, "eval.txt"), 'w')  
  
with codecs.open(os.path.join(all_file_dir, "label_list.txt"), "w") as label_list:  
    label_id = 0  
    for class_dir in class_list:  
        # label_list.write("{0}\t{1}\n".format(label_id, class_dir))  # \t在这里表示tab键而不是空格,所有下一行替换成空格。
        label_list.write("{0} {1}\n".format(label_id, class_dir))
        image_path_pre = os.path.join(all_file_dir, class_dir)  
        for file in os.listdir(image_path_pre):  
            try:  
                img = Image.open(os.path.join(image_path_pre, file))  
                if random.uniform(0, 1) <= train_ratio:  
                    shutil.copyfile(os.path.join(image_path_pre, file), os.path.join(train_image_dir, file))  
                    train_file.write("{0} {1}\n".format(os.path.join(train_image_dir, file), label_id))  
                else:  
                    shutil.copyfile(os.path.join(image_path_pre, file), os.path.join(eval_image_dir, file))  
                    eval_file.write("{0} {1}\n".format(os.path.join(eval_image_dir, file), label_id))  
            except Exception as e:  
                pass  
                # 存在一些文件打不开,此处需要稍作清洗  
        label_id += 1  
              
train_file.close()  
eval_file.close() 

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值