训练CRNN之数据集下载与mat文件转换成txt格式

一、下载数据集之SVT

SVT数据集下载地址
首先当然是用上面那个链接把SVT下载下来,压缩包中主要包含的是一个.m文件,一个.mat文件以及茫茫多的png文件,且分为训练集,测试集以及一个包含额外训练集的extra包,这里我就只用train文件夹进行训练,用test文件夹下的数据进行测试。由于项目中使用的是lmdb,且懒得再重新写一个Dataset,因此决定生成SVT的lmdb文件,同时也可以学习一下lmdb数据集具体的使用。

转换代码:

import h5py
import os
import tqdm

def get_box_data(index, hdf5_data): # 读取标签数据
    """
    get `left, top, width, height` of each picture
    :param index:
    :param hdf5_data:
    :return:
    """
    meta_data = dict()  # 先定义字典传入
    meta_data['height'] = []  # 给字典名称分配位置
    meta_data['label'] = []
    meta_data['left'] = []
    meta_data['top'] = []
    meta_data['width'] = []

    def print_attrs(name, obj):
        vals = []  # 给文件名称分配位置
        if obj.shape[0] == 1:
            vals.append(obj[0][0])
        else:
            for k in range(obj.shape[0]):
                vals.append(int(hdf5_data[obj[k][0]][0][0]))
        meta_data[name] = vals

    box = hdf5_data['/digitStruct/bbox'][index]
    hdf5_data[box[0]].visititems(print_attrs)
    return meta_data

def get_name(index, hdf5_data):  # 读取名字
    name = hdf5_data['/digitStruct/name']
    return ''.join([chr(v[0]) for v in hdf5_data[name[index][0]].value])

folder='~/crnn.pytorch-master/data/train'
mat_data = h5py.File(os.path.join(folder, 'digitStruct.mat'))   # 路径拼接+打开文件
size = mat_data['/digitStruct/name'].size

for _i in tqdm.tqdm(range(size)):
    pic = get_name(_i, mat_data) 
    box = get_box_data(_i, mat_data)
    file_handle = open('~/crnn.pytorch-master/data/train/'+str(_i+1)+'.txt', mode='w',encoding='utf-8')
     # 创建变量名文件+存放在数据集的文件夹
    label=box['label']  # 读取标签
    for i in range(len(label)):
        file_handle.write(str(label[i]))
    file_handle.close()  # 关闭文件

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 课程设计基于python卷积循环神经网络(CRNN)的数字识别系统源码+模型+数据集+使用说明.zip 划分训练集与测试集 > 建议使用 ./tools 下 **split_train_and_test_dataset.py** 来执行划分操作 ## 3.修改配置文件 > 配置文件默认在 ./configs/global. yml ``` # 配置文件说明 Global: use_gpu: 是否使用gpu epoch_num: 训练总epoch数 save_model_dir: 模型保存文件夹,默认为./output save_epoch_step: 每几次epoch保存一次模型 learning_rate: 学习率,默认为0.001 character_dict_path: 字典,默认在./configs/dict.txt max_text_length: 最大文字长度 Train: data_dir: 训练文件夹路径 label_file_dir: 训练集标注文件路径 shuffle: 是否打乱,默认为True batch_size: 训练批次大小 Test: data_dir: 测试集文件夹路径 label_file_dir: 测试集标注文件路径 shuffle: 是否打乱,False batch_size: 测试批次大小 ``` ## 4.启动训练 > 运行项目内 train.py ## 5.进行推理 > 运行项目内 infer.py ```python # 选择训练好的模型路径 model_path = './output/best.pth' # 选择要推理的图片路径 image_path = './example.png' ``` 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值