一、下载地址:
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)