OCR(Optical Character Recognition) 光学字符识别:是一种将图像中的文字自动转换为可编辑文本的技术。

比较常用的OCR库:PaddleOCR和pytesseract。

一,pytesseract库

pytesseract是一个将Tesseract OCR引擎封装为python的库,它依赖于Tesseract OCR引擎。特点:

  • 使用了传统的OCR引擎(Tesseract),也支持一些基本的图像处理操作。
  • 支持多种语言的文本识别,包括中文、英文、法文、德文等。
  • 使用简单,直接调用pytesseract.image_to_string()方法。
 
1,安装指引安装,期间设置指定安装目录。如需额外的语言包,则另外单独下载。
2,配置环境变量。
3,测试

 4,安装pytesseract包

pip install pytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple

5,代码

import pytesseract
from PIL import Image

img=Image.open('ocr.jpg')
result=pytesseract.image_to_string(img)
print(result)

报错

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information.

解决方法:

  1. 将tesseract安装目录添加到电脑的环境变量。
  2. 在代码中指定tesseract的路径。
    pytesseract.pytesseract.tesseract_cmd=r'D:\Program Files\Tesseract-OCR\tesseract.exe'

     

二,PaddleOCR

PaddleOCR是一个基于PaddlePaddle深度学习框架的OCR库,支持多种语言的文本识别。

特点如下:

  • 使用了基于深度学习的OCR模型,如CRNN、Attention OCR等,可以获取较高的识别经度。
  • 支持多种语言识别,包括中文,英文,日文,韩文等。
  • 提供了丰富的预训练模型,可以直接使用,也可以进行迁移学习。
  • 支持单张和批量图片的识别。
import cv2 
from paddleocr import PaddleOCR 
 
ocr = PaddleOCR()
 
# 读取图片 
img = cv2.imread('example.jpg')
 
# 进行 OCR 识别 
results = ocr.ocr(img)
 
# 输出识别结果 
for line in results:
    print(line)

PaddleOCR与pytesseract对比

  • 识别精度:PaddleOCR使用基于深度学习的模型,识别精度较高;pytesseract依赖于Tesseract OCR引擎,识别精度低。
  • 语言支持:PaddleOCR支持语言识别多,而pytesseract支持的语言相对较少。
  • 模型:PaddleOCR提供了丰富的预训练模型,可以进行迁移学习,而pytesseract则需要自己训练模型。
  • 使用便利性:pytesseract使用更简单。

根据需求和场景,可以选择合适的OCR库。如果对识别度要求较高,建议使用PaddleOCR;如果只是简单的OCR任务,可以使用pytesseract。

 

 

 posted on 2024-05-19 18:59  会飞的金鱼  阅读(164)  评论(0)    收藏  举报