Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
EasyOCR — 即用型 OCR,支持 80 多种语言及所有主流书写文字,包括拉丁文、中文、阿拉伯文、天城文、西里尔文等。 | Kitploit
工具/GitHubGitHub/jaidedai/easyocr
通用工具脚本与自动化机器学习
GitHubjaidedai/easyocr

EasyOCR

即用型 OCR,支持 80 多种语言及所有主流书写文字,包括拉丁文、中文、阿拉伯文、天城文、西里尔文等。

查看仓库网站
29.9k3.6k8个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

EasyOCR

PyPI Status license Tweet Twitter

即用型 OCR,支持 80+ 种语言以及所有主流书写文字,包括:拉丁文、中文、阿拉伯文、天城文、西里尔文等。

在我们的网站上试用 Demo

已通过 Gradio 集成到 Huggingface Spaces 🤗。试试 Web Demo:Hugging Face Spaces

最新动态

  • 2024 年 9 月 24 日 - 版本 1.7.2

    • 修复多项兼容性问题
  • 阅读全部版本说明

后续计划

  • 手写文本支持

示例

example

example2

example3

安装

使用 pip 安装

最新稳定版:

root@kitploit:~
pip install easyocr

最新开发版:

root@kitploit:~
pip install git+https://github.com/JaidedAI/EasyOCR.git

注意 1:对于 Windows,请先按照此处的官方说明安装 torch 和 torchvision:https://pytorch.org。在 pytorch 网站上,务必选择与你拥有的 CUDA 版本对应的正确版本。如果你只打算以 CPU 模式运行,请选择 CUDA = None。

注意 2:我们还在此处提供了一个 Dockerfile:here。

使用方法

root@kitploit:~
import easyocr
reader = easyocr.Reader(['ch_sim','en']) # 此操作只需运行一次即可将模型加载到内存中
result = reader.readtext('chinese.jpg')

输出将以列表格式呈现,每个元素分别表示一个边界框、检测到的文本和置信度。

root@kitploit:~
[([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),
 ([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436),
 ([[517, 81], [565, 81], [565, 123], [517, 123]], '东', 0.9989598989486694),
 ([[78, 126], [136, 126], [136, 156], [78, 156]], '315', 0.8125889301300049),
 ([[514, 126], [574, 126], [574, 156], [514, 156]], '309', 0.4971577227115631),
 ([[226, 170], [414, 170], [414, 220], [226, 220]], 'Yuyuan Rd.', 0.8261902332305908),
 ([[79, 173], [125, 173], [125, 213], [79, 213]], 'W', 0.9848111271858215),
 ([[529, 173], [569, 173], [569, 213], [529, 213]], 'E', 0.8405593633651733)]

注意 1:['ch_sim','en'] 是你想要识别的语言列表。你可以同时传入多种语言,但并非所有语言都可以一起使用。英语与所有语言兼容,而共享常见字符的语言通常也彼此兼容。

注意 2:除了文件路径 chinese.jpg 之外,你还可以传入 OpenCV 图像对象(numpy 数组)或字节形式的图像文件。原始图像的 URL 也可以。

注意 3:reader = easyocr.Reader(['ch_sim','en']) 这一行用于将模型加载到内存中。这会花费一些时间,但只需运行一次。

你还可以设置 detail=0 以获得更简洁的输出。

root@kitploit:~
reader.readtext('chinese.jpg', detail = 0)

结果:

root@kitploit:~
['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']

所选语言的模型权重会自动下载,你也可以从 model hub 手动下载,并将它们放入 '~/.EasyOCR/model' 文件夹中。

如果你没有 GPU,或者 GPU 内存较低,可以通过添加 gpu=False 以纯 CPU 模式运行模型。

root@kitploit:~
reader = easyocr.Reader(['ch_sim','en'], gpu=False)

更多信息请阅读教程和 API 文档。

在命令行运行

root@kitploit:~
$ easyocr -l ch_sim en -f chinese.jpg --detail=1 --gpu=True

训练/使用你自己的模型

识别模型,点击此处阅读。

检测模型(CRAFT),点击此处阅读。

实现路线图

  • 手写支持
  • 重构代码以支持可替换的检测和识别算法 API 应该像这样简单
root@kitploit:~
reader = easyocr.Reader(['en'], detection='DB', recognition = 'Transformer')

其想法是能够将任何最先进的模型插入 EasyOCR。有很多天才正在尝试构建更好的检测/识别模型,但我们并不想在这里成为天才。我们只是想让他们的工作成果能够迅速为公众所用……而且是免费的。(好吧,我们相信大多数天才都希望自己的作品能尽可能快、尽可能大地产生积极影响)流程应该类似下图。灰色槽位是可替换的浅蓝色模块的占位符。

plan

致谢与参考

本项目基于多篇论文和开源仓库的研究与代码。

所有深度学习执行均基于 Pytorch。❤️

检测执行使用此官方仓库中的 CRAFT 算法及其论文(感谢来自 @clovaai 的 @YoungminBaek)。我们还使用了他们预训练的模型。训练脚本由 @gmuffiness 提供。

识别模型是 CRNN(论文)。它由 3 个主要组件组成:特征提取(我们目前使用 Resnet)和 VGG、序列标注(LSTM)和解码(CTC)。识别执行的训练流程是 deep-text-recognition-benchmark 框架的修改版本。(感谢来自 @clovaai 的 @ku21fan)这个仓库是一颗值得获得更多认可的宝石。

Beam search 代码基于此仓库和他的博客。(感谢 @githubharald)

数据合成基于 TextRecognitionDataGenerator。(感谢 @Belval)

关于 CTC 的一篇很好的解读来自 distill.pub,点击此处。

想要贡献吗?

让我们通过让 AI 触手可及来共同推动人类进步!

3 种贡献方式:

程序员: 对于小的 bug/改进,请发送 PR。对于较大的改动,请先通过开启 issue 与我们讨论。这里有一个标记为 'PR WELCOME' 的可能 bug/改进 issue 列表。

用户: 告诉我们 EasyOCR 如何帮助到你/你的组织,以鼓励进一步发展。同时请在 Issue 板块 中发布失败案例,以帮助改进未来的模型。

技术负责人/专家: 如果你觉得这个库有用,请帮忙宣传!(参见 Yann Lecun 关于 EasyOCR 的帖子)

新语言请求指南

要请求新语言,我们需要你发送一个包含以下 2 个文件的 PR:

  1. 在 easyocr/character 文件夹中,我们需要包含所有字符列表的 'yourlanguagecode_char.txt'。请参阅该文件夹中其他文件的格式示例。
  2. 在 easyocr/dict 文件夹中,我们需要包含你语言词汇列表的 'yourlanguagecode.txt'。 平均而言,每种语言我们大约有 30000 个单词,较流行的语言则有超过 50000 个单词。这个文件中单词越多越好。

如果你的语言有独特的元素(例如 1. 阿拉伯语:字符在相互连接时会改变形态 + 从右到左书写 2. 泰语:某些字符需要位于线上方,某些位于下方),请尽你所能向我们说明,和/或提供有用的链接。要构建一个真正可用的系统,关注这些细节非常重要。

最后,请理解我们的优先级必须放在流行语言或彼此共享大部分字符的语言组合上(如果你的语言属于这种情况,也请告诉我们)。开发一个新模型至少需要一周时间,因此你可能需要等待一段时间才能发布新模型。

参见开发中的语言列表

Github Issues

由于资源有限,超过 6 个月的 issue 将被自动关闭。如果问题很关键,请重新开启 issue。

商业咨询

关于企业支持,Jaided AI 提供针对自定义 OCR/AI 系统的全方位服务,涵盖实施、训练/微调和部署。点击此处联系我们。

下载工具