选型与快速跑通(Tesseract / EasyOCR / PaddleOCR)

目标:在本地装好一个 OCR 库,用几行代码把图片变成文字,先建立手感。

OCR 的完整流程通常包含图像预处理、文字检测、字符识别和后处理。第一期先跳过预处理,直接调用封装好的库,感受原始输出。

1. 经典轻量方案:Tesseract(pytesseract)

Tesseract 是老牌开源引擎,pytesseract 只是 Python 封装,需要先安装系统级的 Tesseract 可执行文件。Windows 上安装后如果不在 PATH 中,需要手动指定路径。

python

复制代码
# pip install pytesseract pillow
import pytesseract
from PIL import Image

# Windows 常见需要显式指定引擎路径
# pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

img = Image.open("test.png")
text = pytesseract.image_to_string(img, lang="chi_sim+eng")
print(text)

注意:lang 参数需要提前安装对应语言包。在 Ubuntu 上可以用 sudo apt install tesseract-ocr-chi-sim 安装简体中文数据。

2. 深度学习开箱方案:EasyOCR

如果不想折腾系统级依赖,EasyOCR 是更省事的选择。它基于 PyTorch,安装完 pip 包后模型会自动下载,支持中英文混合识别。

python

复制代码
# pip install easyocr
import easyocr

reader = easyocr.Reader(["ch_sim", "en"])  # 首次运行会下载模型
result = reader.readtext("test.png")

for bbox, text, score in result:
    print(text, f"{score:.2f}")

EasyOCR 的返回结果包含坐标、文本和置信度,方便后续按位置过滤或排序。

3. 中文场景优先:PaddleOCR

如果主要处理中文文档、票据或表格,PaddleOCR 在中文场景下的准确率通常更有优势。安装时注意先装 PaddlePaddle 再装 PaddleOCR。

python

复制代码
# pip install paddlepaddle paddleocr
from paddleocr import PaddleOCR

ocr = PaddleOCR(use_angle_cls=True, lang="ch")
result = ocr.ocr("test.png", cls=True)

for line in result[0]:
    print(line[1][0], f"{line[1][1]:.2f}")

第一期建议先用同一张图在三个库上都跑一遍,直观感受速度与准确率的差异,再决定后续深入哪个。https://github.com/0voice

相关推荐
Cooper251 小时前
DDC 命令成功但屏幕不动:用 gamma 表重做亮度映射
python·mac
Lank_M1 小时前
白底都占八成,PNG 为何只在图表页赢过 JPG
前端
张一凡931 小时前
给 Coding Agent 加一道"架构闸门":Jin 是如何做到"先审架构、再写代码、不漂移"的
前端·后端·agent
Linye1 小时前
AI 写的 HTML 原型全是空壳?聊聊真实 DOM 交互避坑
前端·人工智能
ZANE2 小时前
纯前端实现的 PDF 与图片互相转换工具技术实现
前端
师夷长技以自愈2 小时前
手搓 AI Agent 第 7 篇:菜做砸了别硬炒——错误分类 + 双账本熔断
人工智能·python
用户956256254292 小时前
15 分钟社媒简报 Agent:我只用了搜索和模型两步
python·api
Dumbness2 小时前
关键词回复里写了 {订单号},群机器人整条消息都炸了
python·微信
调接口的阿光2 小时前
调用对话接口时输出被截断怎么办:先看 finish_reason,再决定是续写一次、缩小范围,还是换成更短的格式(Python)
人工智能·python
Swot2 小时前
SvelteKit Remote Functions 使用指南
前端·后端