python人工智能识别字符,即用型 OCR,支持 80 多种语言和所有流行的书写脚本

python人工智能识别字符,即用型 OCR,支持 80 多种语言和所有流行的书写脚本
即用型 OCR,支持 80 多种语言和所有流行的书写脚本,包括拉丁文、中文、阿拉伯文、梵文、西里尔文等。

OCR(Optical Character Recognition,光学字符识别)技术是一种通过电子设备如扫描仪或数码相机,将纸质文档中的字符转换成计算机可以理解和处理的文本信息的技术。这一过程涉及对文档进行影像扫描,然后通过影像预处理、文字特征抽取、字符比对识别等步骤,最终实现文字的电子化。
OCR的工作流程
1. 影像输入:首先,需要识别的文档通过扫描仪、相机等设备转换成数字图像。
2. 影像预处理:对获取的图像进行噪声去除、影像规范化、二值化处理等,以优化后续的文字识别。
3. 文字特征抽取:在这一步,系统会分析图像中的每一个文字区域,提取出字符的形状、大小、间距等特征。
4. 比对识别:将提取的特征与已建立的字符库进行比对,从而识别出每一个字符。
5. 人工校正:尽管现代OCR技术已经非常先进,但仍然可能存在识别错误。因此,通常需要人工进行最后的校对和更正。
6. 输出结果:经过校正后,识别结果将以文本格式输出,可供文字处理软件进一步编辑。
OCR技术的关键挑战
– 拒识率和误识率:如何减少OCR系统拒识(无法识别)和误识(错误识别)的情况,是提高OCR性能的关键。
– 手写与印刷体识别:手写文字的识别难度远大于印刷体,因为手写体缺乏规则性。
– 字体和版面多样性:不同的字体和版面设计也会对OCR系统的性能造成影响。
– 影像质量:原始影像的质量直接关系到OCR的准确性,因此,确保高质量的影像输入是必要的。

例子



安装

安装使用pip
对于最新的稳定版本:
  1. pip install easyocr

复制代码

对于最新的开发版本:
注 1:对于 Windows,请先按照官方说明安装 torch 和 torchvision https://pytorch.org。在 pytorch 网站上,请务必选择您拥有的正确的 CUDA 版本。如果您打算仅在 CPU 模式下运行,请选择CUDA = None。
注2:我们在这里还提供了一个Dockerfile 。

用法

  1. import easyocr
  2. reader = easyocr.Reader([‘ch_sim’,’en’]) # this needs to run only once to load the model into memory
  3. result = reader.readtext(‘chinese.jpg’)

复制代码

输出将采用列表格式,每个项目分别代表一个边界框、检测到的文本和置信度。

  1. [([[189, 75], [469, 75], [469, 165], [189, 165]], ‘愚园路’, 0.3754989504814148),
  2. ([[86, 80], [134, 80], [134, 128], [86, 128]], ‘西’, 0.40452659130096436),
  3. ([[517, 81], [565, 81], [565, 123], [517, 123]], ‘东’, 0.9989598989486694),
  4. ([[78, 126], [136, 126], [136, 156], [78, 156]], ‘315’, 0.8125889301300049),
  5. ([[514, 126], [574, 126], [574, 156], [514, 156]], ‘309’, 0.4971577227115631),
  6. ([[226, 170], [414, 170], [414, 220], [226, 220]], ‘Yuyuan Rd.’, 0.8261902332305908),
  7. ([[79, 173], [125, 173], [125, 213], [79, 213]], ‘W’, 0.9848111271858215),
  8. ([[529, 173], [569, 173], [569, 213], [529, 213]], ‘E’, 0.8405593633651733)]

复制代码

注1:[‘ch_sim’,’en’]是您要阅读的语言列表。您可以同时传递多种语言,但并非所有语言都可以一起使用。英语与所有语言兼容,并且具有共同字符的语言通常彼此兼容。
注 2:除了 filepath 之外chinese.jpg,您还可以将 OpenCV 图像对象(numpy 数组)或图像文件作为字节传递。原始图像的 URL 也是可以接受的。
注3:该行reader = easyocr.Reader([‘ch_sim’,’en’])用于将模型加载到内存中。这需要一些时间,但只需运行一次。
您还可以设置detail=0更简单的输出。
  1. reader.readtext(‘chinese.jpg’, detail = 0)

复制代码

结果:
  1. [‘愚园路’, ‘西’, ‘东’, ‘315’, ‘309’, ‘Yuyuan Rd.’, ‘W’, ‘E’]

复制代码

所选语言的模型权重将自动下载,或者您可以从模型中心手动下载它们并将其放入“~/.EasyOCR/model”文件夹中
如果您没有 GPU,或者您的 GPU 内存不足,您可以通过添加gpu=False.
  1. reader = easyocr.Reader([‘ch_sim’,’en’], gpu=False)

复制代码

在命令行上运行

  1. $ easyocr -l ch_sim en -f chinese.jpg –detail=1 –gpu=True

复制代码

训练/使用您自己的模型

对于识别模型,请阅读此处。
对于检测模型 (CRAFT),请阅读此处。
实施路线图
  • 手写支持
  • 重构代码以支持可交换的检测和识别算法 API 应该像
  1. reader = easyocr.Reader([‘en’], detection=’DB’, recognition = ‘Transformer’)

复制代码

我们的想法是能够将任何最先进的模型插入 EasyOCR。有很多天才试图做出更好的检测/识别模型,但我们并不是想成为天才。我们只是想让公众能够快速免费地接触到他们的作品。(好吧,我们相信大多数天才都希望他们的工作尽可能快/尽可能大地产生积极影响)管道应该如下图所示。灰色插槽是可更换浅蓝色模块的占位符。

OCR的应用
OCR技术的应用极为广泛,包括但不限于:
– 文档数字化:将纸质文档转换为电子文档,便于存储和检索。
– 自动数据录入:自动识别和录入表单、发票等数据。
– 辅助阅读:帮助视障人士通过语音合成技术阅读文本。
– 智能交通:车牌识别技术,用于停车场和收费站等。
– 教育辅助:学生和教师可以通过OCR技术快速从书籍或笔记中提取重要信息。
发展历史
OCR技术的研究始于20世纪60至70年代,早期研究主要集中在数字和简单字符的识别上。随着技术的发展,OCR系统的识别范围逐渐扩展到复杂的文字和排版。进入21世纪,随着计算机性能的提升和人工智能技术的发展,OCR技术取得了长足的进步,准确率和应用范围都得到了极大的扩展。
结语
OCR作为一项成熟的技术,正在不断地融入我们的日常生活和工作中,显著提高了信息处理的效率。随着技术的不断进步,未来的OCR技术有望在更多领域发挥其重要作用,进一步推动信息化和智能化的发展。
下载说明:
1.本站资源都是白菜价出售,同样的东西,我们不卖几百,也不卖几十,甚至才卖几块钱,一个永久会员能下载全站100%源码了,所以单独购买也好,会员也好均不提供相关技术服务。
2.如果源码下载地址失效请联系站长QQ进行补发。
3.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!
4.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,由于源码具有复制性,一经售出,概不退换。用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【安安资源网】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。
5.请您认真阅读上述内容,购买即以为着您同意上述内容,由于源码具有复制性,一经售出,概不退换。
安安资源网 » python人工智能识别字符,即用型 OCR,支持 80 多种语言和所有流行的书写脚本