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.
解决方法:
- 将tesseract安装目录添加到电脑的环境变量。
- 在代码中指定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
浙公网安备 33010602011771号