一个函数调用搞定多语言 OCR

想用三行 Python 出结果、又不想折腾系统二进制时,EasyOCR 就是你会去拿的那个 OCR 库。你用你的语言建一个 Reader,对图像调 readtext(),拿回一组检测结果,每个带边框、识别出的文本和置信度。底层它把 CRAFT 文本检测器和一个识别网络配在 PyTorch 上,开箱覆盖 80 多种语言。截至 2026-06 有 29,616 星,是 Python 里做 OCR 最流行的方式之一。

它的卖点是广度加易用:从拉丁到中文、阿拉伯、天城文、西里尔、泰文,各种文字系统都能用,不必像传统引擎那样四处找语言包。

它擅长什么

EasyOCR 的强项是多语言的拍摄文本和场景文字,这种带变化的输入,深度学习模型比字符匹配处理得好。一次调用就返回可直接用的结构化结果,GPU 加速让批量处理变得可行。做一个快速的多语言原型,它在「出第一个结果的速度」上很难被超越。

安装

pip install easyocr

它依赖 PyTorch,所以要 GPU 就先装一个 CUDA 版的 torch。和 pytesseract 不同,它不需要单独的 OCR 二进制。首次运行时,它会把检测和识别模型下到 ~/.EasyOCR/,在容器里值得预热一下,免得冷启动卡在下载上。

维护疑问

有件 README 不会直说、但你动手前该知道的事:活跃开发已明显放缓。实质性代码提交在 2026 年之前就稀疏了,未决 issue 数有几百个,README 自己也写明,因资源有限,超过六个月的 issue 会被自动关闭。有人开的 issue 标题就直接是「这项目弃坑了吗?」。核心库仍能用、在常见场景下稳定,所以它不是死项目,但你不该指望新功能、快速修 bug,或对最新 PyTorch 怪癖的支持。围着你装的那个版本来规划。

适合与不适合

想要广语言覆盖又最少搭建、手上有 GPU 让它快、处理印刷或场景文字时,选它。做原型、或能锁定一个可用版本的项目,它很出色。

如果你需要活跃的上游支持、最新框架兼容,或手写(它不支持),它就弱一些。某些文字如日文和从右往左的语言,据报准确率偏低,纯 CPU 推理也慢。这些情况下,下面那几个引擎值得对比。

EasyOCR 和其它 OCR 引擎的对比

EasyOCRTesseractdocTRPaddleOCR
Stars29,61674,7376,14082,109
API一次 readtext()引擎加包装可配置管线predictor API
语言开箱 80+靠数据文件 100+较少,可扩展中日韩强
运行于CPU 或 GPU(偏 GPU)CPU,轻量CPU 或 GPUCPU 或 GPU
维护放缓活跃活跃活跃

数字为截至 2026 年 6 月的 GitHub 数据。Tesseract 更轻、对 CPU 友好,但需要更多搭建和干净输入。docTR 给一条活跃维护、可定制的「检测加识别」管线。PaddleOCR 是中日韩文字的更强选,且在活跃开发。EasyOCR 的优势是一行、多语言的起步,风险是维护节奏。

star 曲线

star 曲线在 2020 到 2023 那段涨得快,那时 EasyOCR 是 Python OCR 的显而易见之选,之后随维护放缓而走平。曲线形状和维护故事一致:早期采用强劲,后来进入平台期。

issue 区给你的预警

除了维护信号,还有几个实际问题反复出现。首次运行卡在模型下载,所以生产里要预下载。PyTorch 版本兼容性会随 torch 演进而出问题,而按当前维护节奏修得慢。Apple 芯片(M 系列)用户报过设备和精度不一致。还有某些文字,尤其是日文和部分从右往左的语言,准确率比语言列表暗示的要低。这些都不致命,但正因如此,这里锁定一个已知可用版本比平时更重要。

相关仓库

要更轻、对 CPU 友好的引擎,看 Tesseract。要活跃维护、可定制的管线,看 docTR。要强中日韩支持,看 PaddleOCR。要把解析出的文档转成喂 LLM 的 Markdown,看 docling。想看什么在涨,见 每日榜每周报告

常见问题

EasyOCR 还是 Tesseract,该用哪个? EasyOCR 上手更容易、开箱覆盖更多语言,带 GPU 时处理场景文字更好。Tesseract 更轻、CPU 上跑得好、且在活跃维护。快速多语言用 EasyOCR,轻量离线又要好支持用 Tesseract。

EasyOCR 还在维护吗? 稳定但放缓。实质代码更新已稀疏,几百个 issue 未决,README 因资源有限自动关超过六个月的 issue。它能用,但别指望新功能或快速修复;锁定一个可用版本。

EasyOCR 支持手写吗? 不支持。它面向印刷和场景文字。手写需要别的路子,且任何通用 OCR 引擎的效果都有限。

EasyOCR 为什么慢? CPU 推理慢,因为模型是深度网络。一块 CUDA GPU 能大幅加速。另外预下载模型,否则首次运行会卡在拉取上。

EasyOCR 支持哪些语言? 80 多种,含拉丁、中文、阿拉伯、天城文、西里尔、泰文等。用 Reader(['en', 'ch_sim']) 加载。准确率因文字而异,日文等据报偏弱。