制作训练时需要生成txt文件


创作人:ZLY


前言

在进行训练的时候,必不可少的需要使用的文件是txt文件,用来进行数据读取


一、前期准备

1.库要求

本次使用的库包含:
OS,numpy,python 无版本限制

2.存储格式

1.文件内容展示
在这里插入图片描述

2.文件夹展示

在这里插入图片描述

  1. train.txt文件展示
    在这里插入图片描述
    4.label标签文件展示

在这里插入图片描述

二、使用步骤

1.引入库

代码如下(示例):

import os
import random #乱序使用随机函数

2.设置保存地址

地址为:train,eval,label

#保存地址
first_filedir="/home/aistudio/ttst"
traindir="/home/aistudio/train_set.txt"
evaldir="/home/aistudio/eval_set.txt"

3.判断该地址下,是否含有已经存在的txt

if(os.path.exists(traindir)):  # 判断有误文件
    os.remove(traindir)  # 删除文件
if(os.path.exists(evaldir)):  # 判断有误文件
    os.remove(evaldir)  # 删除文件
fp = open(traindir,'w')
fp = open(evaldir,'w')

4.构建生成train,eval的函数

def make_txt(first_filedir,traindir,evaldir):
    #构建训练列表
    train_list=[]
    eval_list=[]
    filelist = os.listdir(first_filedir) #获取主目录下的子文件如N0,N1
    for first_dir in filelist:
        second_filedir=first_filedir+'/'+first_dir# 遍历到/home/aistudio/ttst/N0
        second_filelist=os.listdir(second_filedir)# 读取主目录下的子文件如N0_NPY
        count = 0#计数
        for second_dir in second_filelist:
            count = count + 1 
            third_filedir=second_filedir+'/'+second_dir#真正的指向了文件N0_0_21.npy文件
            if count % 10 == 0:#定义为每10张图片,取一张为测试图片
                #此处可以自定义*
                eval_list.append(third_filedir + ' ' + second_dir[1] + '\n')
            else:
                train_list.append(third_filedir + ' ' + second_dir[1] + '\n')

6.乱序

    #乱序    
    random.shuffle(eval_list)
    #读写
    with open(evaldir, 'a') as f:
        for eval_image in eval_list:
            f.write(eval_image)
    #乱序    
    random.shuffle(train_list)
    with open(traindir, 'a') as f:
        for train_image in train_list:
            f.write(train_image)

7.制作predict(test)文件

import os
if(os.path.exists('/home/aistudio/test_set.txt')):  # 判断有误文件
    os.remove('/home/aistudio/testing_set.txt')  # 删除文件

fp = open("/home/aistudio/test_set.txt",'w')

def make_train_txt(first_filedir):
    with open(f'/home/aistudio/test_set.txt', 'a') as f_train:
            filelist = os.listdir(first_filedir) #获取主目录下的子文件如N0,N1
            for first_dir in filelist:
                second_filedir=first_filedir+'/'+first_dir# 遍历到/home/aistudio/ttst/N0
                second_filelist=os.listdir(second_filedir)# 读取主目录下的子文件如N0_NPY
                for second_dir in second_filelist: 
                    third_filedir=second_filedir+'/'+second_dir#真正的指向了文件N0_0_21.npy文件
                    f_train.write(third_filedir + '\n')

make_train_txt("/home/aistudio/ttst")

总结

本次实验实现了如何制作txt文件,以npy文件为例子

完整代码
import os
import random #乱序使用随机函数
#保存地址
first_filedir="/home/aistudio/ttst"
traindir="/home/aistudio/train_set.txt"
evaldir="/home/aistudio/eval_set.txt"
#判断该地址下,是否含有已经存在的txt
if(os.path.exists(traindir)):  # 判断有误文件
    os.remove(traindir)  # 删除文件
if(os.path.exists(evaldir)):  # 判断有误文件
    os.remove(evaldir)  # 删除文件
fp = open(traindir,'w')
fp = open(evaldir,'w')
#构建生成txt文件函数,传入参数为(文件夹地址,训练txt地址,测试txt地址)
def make_txt(first_filedir,traindir,evaldir):
    #构建训练列表
    train_list=[]
    eval_list=[]
    filelist = os.listdir(first_filedir) #获取主目录下的子文件如N0,N1
    for first_dir in filelist:
        second_filedir=first_filedir+'/'+first_dir# 遍历到/home/aistudio/ttst/N0
        second_filelist=os.listdir(second_filedir)# 读取主目录下的子文件如N0_NPY
        count = 0#计数
        for second_dir in second_filelist:
            count = count + 1 
            third_filedir=second_filedir+'/'+second_dir#真正的指向了文件N0_0_21.npy文件
            if count % 10 == 0:#定义为每10张图片,取一张为测试图片
                #此处可以自定义*
                eval_list.append(third_filedir + ' ' + second_dir[1] + '\n')
            else:
                train_list.append(third_filedir + ' ' + second_dir[1] + '\n')
    #乱序    
    random.shuffle(eval_list)
    #读写
    with open(evaldir, 'a') as f:
        for eval_image in eval_list:
            f.write(eval_image)
    #乱序    
    random.shuffle(train_list)
    with open(traindir, 'a') as f:
        for train_image in train_list:
            f.write(train_image)
#执行函数
make_txt(first_filedir,traindir,evaldir)
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Halcon OCR是一款强大的OCR(Optical Character Recognition,光学字符识别)软件。训练文件是用于训练Halcon OCR引擎的重要组成部分。 在使用Halcon OCR训练文件起着至关重要的作用。训练文件包含了各种不同字体、大小、颜色和风格的字符样本。通过对这些样本的识别和辨别,Halcon OCR可以学会如何正确识别不同的字符。 训练文件一般由两个主要部分组成:样本图像和字符标签。样本图像是训练文件中最重要的组成部分,它包含了不同字体和样式的字符图像。这些字符图像通过扫描或者手动绘制得到,并且需要有一定的多样性,以便训练文件可以覆盖到各种场景下的字符。 字符标签是与样本图像相对应的字符标识。它告诉Halcon OCR训练文件中每个样本图像所代表的字符是什么。这些标签可以是英文字母、数字、符号或者其他语言的字符,取决于应用场景。 在创建训练文件需要确保样本图像与字符标签的对应关系是正确的。这可以通过手动输入或者自动识别的方式来实现。对于大规模的训练文件,建议使用自动识别的方式来提高效率。 使用训练文件进行训练,Halcon OCR会根据样本图像和字符标签的关系来学习字符的特征和识别规则。通过大量的训练,Halcon OCR可以准确地识别不同样式和字体的字符,实现高效的光学字符识别。 总之,Halcon OCR训练文件是用于训练Halcon OCR引擎的关键组成部分,它包含了各种样本图像和字符标签,用于训练引擎学习字符特征和识别规则,从而实现准确的光学字符识别。 ### 回答2: Halcon OCR训练文件是用于训练Halcon OCR引擎的文件。Halcon是一种可以进行图像处理与分析的软件开发工具。OCR(Optical Character Recognition,光学字符识别)是一项技术,可以将图像中的文字转换为可编辑和可搜索的文本。Halcon OCR训练文件用于训练OCR引擎,使其能够识别特定字体、特定大小和特定样式的文字。 Halcon OCR训练文件通常由两个主要部分组成:训练图片和训练数据。训练图片是用于训练的一系列图像,这些图像中包含了所需识别的文字。训练数据是每个训练图片上的文字的标签信息,用于训练引擎建立文字识别模型。 在训练过程中,Halcon OCR引擎会使用训练图片和标签信息,根据一定的训练算法和模型结构进行学习和训练。通过反复训练,引擎可以逐渐调整模型参数,提高对字体、大小和样式的识别准确度。 训练完成后,Halcon OCR引擎将生成一个训练模型文件,该文件包含了训练过程中学到的识别规则和特征。引擎可以根据该模型文件进行识别任务,从输入图像中找出并识别出文字。 总之,Halcon OCR训练文件是用于训练Halcon OCR引擎的文件,其中包含了训练图片和训练数据,通过训练可以建立一个识别特定字体、特定大小和特定样式文字的模型文件。该模型文件可以用于实际的文字识别任务。 ### 回答3: Halcon OCR训练文件是指用于训练Halcon OCR(Optical Character Recognition,光学字符识别)引擎的文件。Halcon是一种强大的视觉处理软件,能够识别图像中的文字并将其转化为可编辑的文本。 为了让Halcon OCR能够准确地识别各种字体、大小和风格的字符,需要进行训练训练文件包含了用于训练OCR引擎的数据,其中包括各种字体和字符的样本。通过对大量的字符样本进行训练,OCR引擎可以学习字符的特征和区别,并建立字符识别模型。 在创建训练文件之前,需要收集大量的字符样本,以涵盖各种字体和大小。字符样本可以通过手动采集、扫描文字文档或从已有的数据集中获取。采集样本,应该包含不同字体、大小和倾斜度的字符。 制作训练文件需要使用Halcon的训练工具,通过将字符样本加载到工具中进行训练训练过程中,需要手动标记字符的边界框,以便OCR引擎能够准确地识别字符。标记边界框可以通过在字符样本上绘制矩形或多边形来完成。 一旦训练文件创建完成,就可以将其加载到Halcon OCR引擎中使用。OCR引擎会根据训练文件中的模型进行字符识别,并将结果返回。通过不断优化训练文件训练过程,可以提高OCR引擎的准确性和鲁棒性。 总而言之,Halcon OCR训练文件是用于训练Halcon OCR引擎的文件,其中包含字符样本和识别模型。通过训练文件,Halcon OCR引擎能够识别各种字体、大小和风格的字符。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Self Revolution

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值