ocr识别软件本地部署 (ocr训练数据集)

一个基于pytorch框架的纯净版本的OCR(OpticalCharacterRecognition,光学字符识别)技术windows本地搭建。该OCR的核心算法组成是CTPN(文字检测)+CRNN(文字识别)。 (原代码链接在文末)

环境配置

所需依赖库:

python-3.5+

pytorch-0.4.1+

torchvision-0.2.1

opencv-3.4.0.14

numpy-1.14.3

安装方式1

以上是本次ocr技术实现所依赖的库文件,除了pytorch和torchvision不能直接pip安装的其他的都是可以直接pip安装。例如:

pip install numpy(库名)==1.14.3(版本号)

注意:pytorch 和 torchvision如果要用GPU的话都需要对应CUDA版本 , 你可以在官网上查找对应版本 pytorch的官网

安装方式2

本文提供了源代码的压缩包ocr-pytorch版.7z,其中包含了利用conda打包好的虚拟环境ocr.tar.gz。

1. 首先将在anaconda的虚拟环境安装目录中:D:\Anaconda\envs\ ,新建一个ocr名称的文件夹

2. 将ocr.tar.gz这个conda环境压缩包解压到D:\Anaconda\envs\ocr

3. 使用conda env list查看虚拟环境

ocr训练数据集,ocr系统工作的最后一个流程

预训练模型测试

上述ocr-pytorch版.7z中含有源代码,在将其解压到某个文件夹后,按下win键输入cmd调用windows终端,在终端cd D:\项目\ocr-pytorch版(这里用你自己的安装到的文件夹路径),用

conda activate ocr

demo文件夹中多张图片测试

预训练好的模型文件保存在 checkpoints文件夹下面.。执行以下命令对test_images文件夹中的图片进行测试。

python3 demo.py

在 ./test_images文件夹中的图片会被用来做文字检测&识别的测试,,最终的结果图片+文字txt会被存储在 ./test_result文件夹。

test_one单张图片测试

如果你想测试单张图片, 执行以下命令。其中的[filename]是图片的绝对路径/相对路径。

python3 test_one.py [filename]

结果示例:

ocr训练数据集,ocr系统工作的最后一个流程

训练自定义模型

该OCR训练由两部分训练模块组成:CTPN训练+CRNN训练,两个所对应的训练代码在train_code文件夹中。

CTPN训练

1. 把自定义图片数据集放入[train_img]文件夹中, 然后把自定义标签数据集放入[train_label]文件夹中.

2. 在config.py文件中icdar17_mlt_img_dir变量对应图片文件夹路径;icdar17_mlt_gt_dir对应标签文件夹路径。

3. 然后在cmd终端cd到train_code/train_ctpn文件夹下,执行下面的命令进行训练。

python3 ctpn_train.py

CRNN训练

1. 首先需要准备自己的 text-line 数据集,用一个txt文件组织数据集。 在这个txt文件中,每一行表示一个text-line图片路径和被'\t'分隔开来的图片标签。如下所示:

data_set/my_data1/0001.jpg\t37918
data_set/my_data1/0002.jpg\tHello World!
data_set/my_data1/0003.jpg\t你好
...

2. 在train_warp_ctc.py中用你自己的txt文件路径去替换下面的变量内容。

config.train_infofile = ['path_to_train_infofile1.txt','path_to_train_infofile2.txt']
config.val_infofile = 'path_to_test_infofile.txt'

3. 如果你想用 warp-ctc 作为你的损失函数,执行以下命令1;如果你想用 pytorch-ctc 作为你的损失函数, 执行这个命令2。

python3 train_warp_ctc.py  # 命令1
python3 train_pytorch_ctc.py  # 命令2

总结

本篇博客主要是对一个基于pytorch框架纯净版OCR技术实现的代码分享、测试&训练思路分享。欢迎大家免费使用,本文的代码分享在 百度网盘 大小是7.53GB。提取码:nrpi