Paddle OCR文字识别学习
Posted 禤XX
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Paddle OCR文字识别学习相关的知识,希望对你有一定的参考价值。
Paddle OCR主要分为三个部分:
- 文本检测:文本检测的任务是定位出输入图像中的文字区域。
- 文本识别:文本识别的任务是识别出图像中的文字内容,一般输入来自于文本检测得到的文本框截取出的图像文字区域。
- 文档结构化识别:传统意义上的OCR技术可以解决文字的检测和识别需求,但在实际应用场景中,最终需要获取的往往是结构化的信息,如身份证、发票的信息格式化抽取,表格的结构化识别等等,多在快递单据抽取、合同内容比对、金融保理单信息比对、物流业单据识别等场景下应用。
现阶段使用Paddle OCR进行自动化测试分为两个步骤:先用文本检测划分文字区域,再使用文本识别对每个划分好的文字区域进行检测。如果是对中英文图像进行识别,推荐使用Paddle OCR提供的模型,如果是对其他语言的文字进行识别,推荐在Paddle OCR提供的预处理模型的基础上使用自己的数据进行加训,提高识别精度。
1.准备
Paddle OCR推荐环境
- PaddlePaddle >= 2.1.2
- Python 3.7
- CUDA10.1 / CUDA10.2
- CUDNN 7.6
(1)安装PaddlePaddle
-
如果机器安装的是CUDA9或者CUDA10
python3 -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple
-
如果机器是CPU
python3 -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
(2)安装PaddleOCR whl包
pip install "paddleocr>=2.0.1" # 推荐使用2.0.1+版本
2.中英文模型
使用Paddle OCR快速开始
from paddleocr import PaddleOCR, draw_ocr
import time
import cv2
old_time=time.time()
#图片地址
img_path = 'D:\\\\codes\\\\OCR\\\\demo\\\\demo_img2.png '
ocr = PaddleOCR(lang="ch") # 首次执行会自动下载模型文件,可以通过修改 lang 参数切换语种
result = ocr.ocr(img_path)
#定义需要识别的文字
tar_str="快速扫描"
# 可通过参数控制单独执行识别、检测
# result = ocr.ocr(img_path, det=False) 只执行识别
# result = ocr.ocr(img_path, rec=False) 只执行检测
# 打印检测框和识别结果
for line in result:
aa=line[1][0]
if tar_str in line[1][0]:
point=line[0]
print(line)
new_time=time.time()
print('耗时:', new_time-old_time)
#使用OpenCV将要识别的文字框出
image = cv2.imread(img_path)
cv2.rectangle(image, (int(point[0][0]),int(point[0][1])), (int(point[2][0]),int(point[2][1])), (255, 0, 0), 2)
cv2.namedWindow("demo1", cv2.WINDOW_NORMAL)
cv2.imshow("demo1",image)
key = cv2.waitKey(0)
print(tar_str,":",point)
Paddle OCR中中英文模型预设的文本检测模型为 det_model_dir='C:\\\\Users\\\\lll/.paddleocr/whl\\\\det\\\\ch\\\\ch_PP-OCRv3_det_infer'
,预设的文本识别模型为rec_model_dir='C:\\\\Users\\\\lll/.paddleocr/whl\\\\rec\\\\ch\\\\ch_PP-OCRv3_rec_infer'
,预设的方向分类器模型为 cls_model_dir='C:\\\\Users\\\\lll/.paddleocr/whl\\\\cls\\\\ch_ppocr_mobile_v2.0_cls_infer'
Paddler OCR预设模型的具体位置,可以在通过一次识别后PaddlerOCR打印出来的log找到
除了使用脚本操作,还可以使用命令行操作,使用命令行操作,需要先从https://github.com/PaddlePaddle/PaddleOCR下载整个Paddle OCR包
# 快速运行
!python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_det_mv3_db/" --rec_model_dir="./inference/ch_rec_mv3_crnn/"
以上是关于Paddle OCR文字识别学习的主要内容,如果未能解决你的问题,请参考以下文章