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/"

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>