PaddleOCR训练自己模型(1)----数据准备

发布于:2024-04-16 ⋅ 阅读:(284) ⋅ 点赞:(0)

一、下载地址:

PaddleOCR开源代码(下载的是2.6RC版本的,可以根据自己需求下载)

具体环境安装就不详细介绍了, 挺简单的,也挺多教程的。

二、数据集准备及制作

(1)下载完代码及配置完环境之后,运行PPOCRLabel.py文件,打开标注软件(2.7版本的会运行报错,解决方案如下解决PPOCRLabel.py报错operands could not be broadcast together with shapes (213,488,4) (1,1,3)-CSDN博客

(2)运行成功后,点击文件,导入图片所在的路径,然后点击自动标注

(3)自动标注完之后,核对每一张的标签。核对完成之后点击确认,否则导出的时候不会显示

(4)点击左上角的文件,导出标记结果导出识别结果。两个文件都导出完之后,会多生成几个文件。

 

(5)在PaddleOCR下创建一个train_data文件夹,然后将标注好的整个文件夹复制到train_data里。

(6)打开PPOCRLabel/gen_ocr_train_val_test.py文件,把路径修改为自己的路径,然后运行gen_ocr_train_val_test.py

(7)运行结束之后会在train_data里面生成det和rec两个文件夹,分别对应定位和文字识别的数据

使用2.6版本代码生成的txt文件会有空行,训练时会报错估计是bug。如果有空行可以通过下面代码来修改,把det和rec两个文件夹下的txt文件都修改(代码路径自行修改)

import os
import json

# 1.读取txt文件, 把文件里的空行去除,并更新到原文件
txt_path = r"D:\Github_Code\PaddleOCR\train_data\rec\train.txt"

# 读取txt文件, 把文件里的空行去除,并更新到原文件
def read_txt(txt_path):
    with open(txt_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()
    new_lines = []
    for line in lines:
        if line.strip() != '':
            new_lines.append(line)
    with open(txt_path, 'w', encoding='utf-8') as f:
        f.writelines(new_lines)
    return new_lines

lines = read_txt(txt_path)






网站公告

今日签到

点亮在社区的每一天
去签到