目录
导言
下载源码
配置环境
安装依赖库
报错处理办法
下载模型
配置模型
文本效果
文字OCR识别结果:
什么是Paddle OCR? Paddle OCR特性:
超轻量级中文OCR,总模型仅8.6M
单模型支持中英文数字组合识别、竖排文本识别、长文本识别检测模型DB(4.1M)+识别模型CRNN(4.5M)多种文本检测训练算法,EAST、DB多种文本识别训练算法,Rosetta、CRNN、STAR-Net、RARE
本教程旨在帮助使用者快速了解PaddleOCR,并掌握PaddleOCR的使用方式,包括:
PaddleOCR快速使用 文本检测模型的训练方式 文件识别模型的训练方式
以上摘抄至: PaddleOCR使用教程 - 飞桨AI Studio - 人工智能学习与实训社区
导言
上文是官方的教程和介绍,但是属于部署在Linux端口上的,所以就希望每个喜欢代码的小伙伴也能简单易上手,所以出了个在window端的部署,使用的版本如下:
Window 10 系统
python 3.8
Pycharm
下载源码
首先下载源码: PaddleOCR: 基于飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测、文本识别的训练算法。https://gitee.com/paddlepaddle/PaddleOCR
配置环境 安装依赖库
在下载的文件夹下运行cmd命令:
pip install -r requirments.txt -i https://mirror.baidu.com/pypi/simple
报错处理办法: 这里有个很奇怪的报错问题,官方教程里命令行的安装,出现了找不到文件的提示:
[Errno 2] No such file or directory: 'requirments.txt'
后来我才发现原来下载的代码和官方教程出现的偏差
这个地方少了个E,所以各位小伙伴运行报错找不到文件可以查看一下文件名是否正确
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
这里有个很奇怪的报错问题,官方教程里命令行的安装,出现了找不到文件的提示:
[Errno 2] No such file or directory: 'requirments.txt'
后来我才发现原来下载的代码和官方教程出现的偏差
这个地方少了个E,所以各位小伙伴运行报错找不到文件可以查看一下文件名是否正确
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
运行前需要确认pip的版本是否满足要求,要求pip版本为9.0.1+。可通过事先升级pip,运行如下命令:
pip install --upgrade pip
下载模型
文本检测模型https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar 配置模型
文本检测模型https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar
配置模型
将以下三个文件放置到 PaddleOCR-release-2.3 inference det 文件夹下(手动创建)
执行以下代码
(作者图片文件路径:E: png2.jpg)
python tools/infer/predict_det.py --image_dir="E:png2.jpg" --det_model_dir="./inference/det/" --use_gpu=False
文本效果:
执行成功会有个新的文件夹 inference_results
文档识别效果(还不错,大部分都识别出来了)
到这一步就都差不多了,可以开始识别文字了,在文件夹PaddleOCR下新建py文件
文字OCR识别
from paddleocr import PaddleOCRimport cv2import numpy as npfrom PIL import Image, ImageDraw, ImageFontfrom paddleocr import PaddleOCR, draw_ocrfont=cv2.FONT_HERSHEY_SIMPLEX# Paddleocr目前支持中英文、英文、法语、德语、韩语、日语,可以通过修改lang参数进行切换# 参数依次为`ch`, `en`, `french`, `german`, `korean`, `japan`。ocr = PaddleOCR(use_angle_cls=True, lang="ch",use_gpu=False, rec_model_dir='./models/ch_ppocr_server_v2.0_rec_infer/', cls_model_dir='./models/ch_ppocr_mobile_v2.0_cls_infer/', det_model_dir='./models/ch_ppocr_server_v2.0_det_infer/') # need to run only once to download and load model into memoryimg_path = r'E:png1643776550(1).jpg'result = ocr.ocr(img_path, cls=True)# 显示结果from PIL import Imageimage = Image.open(img_path).convert('RGB')boxes = [line[0] for line in result]txts = [line[1][0] for line in result]scores = [line[1][1] for line in result]im_show = draw_ocr(image, boxes, txts, scores, font_path='./simfang.ttf')im_show = Image.fromarray(im_show)im_show.save('result.png')print(txts)
文字OCR识别结果:
(这一步会自己下载文件,有个进度条稍微等待一下就行了)
左边的是文字,后面的小数点是文字的置信区间