一款支持80+语言,包括:拉丁文、中文、阿拉伯文、梵文等开源OCR库

大家好,今天给大家分享一个基于PyTorch的OCR库EasyOCR,它允许开发者通过简单的API调用来读取图片中的文本,无需复杂的模型训练过程。

项目介绍

EasyOCR 是一个基于Python的开源项目,它提供了一个简单易用的光学字符识别(OCR)工具,支持超过80种语言以及多种书写脚本,包括拉丁文、中文、阿拉伯文、天城体、西里尔文等。

EasyOCR 利用PyTorch作为其深度学习执行框架,展示了对人工智能和机器学习在文本识别领域的强大应用能力。

核心特点

多语言支持:支持超过 80 种语言和所有流行的书写系统,包括拉丁文、中文、阿拉伯文、梵文、西里尔文等,可满足全球用户处理不同语言文档的需求。

高准确性:对于正常图片文本识别,准确率能达到较高水平,无论是手写体还是印刷体都能够较为准确地识别,其深度学习模型能够学习不同语言的字符特征和书写风格,从而提高识别精度。

文本检测与识别功能兼具:不仅可以识别图片中的文本内容,还能检测出文本框的位置,以左上、右上、右下、左下坐标顺序依次返回,可应用于多种需要定位文本的场景,如文档排版分析、图像内容理解等。

支持 GPU 加速:配置好相应的 CUDA、PyTorch、Torchvision Python 环境后,可使用 GPU 进行加速,识别速度相比 CPU 快 6~7 倍,能够提高处理效率,更快地完成大量图片的文本识别任务。

易于使用:将所有功能封装到一个类中,通过简单的函数调用即可实现文本识别和检测。并且已经上传到 PyPI,可通过 pip 命令完成安装,使用 Python 调用非常方便。

技术架构

关键技术
  • CRAFT 算法:用于文本检测。

  • CRNN 模型:用于文本识别,由特征提取、序列标注和解码三个组件组成。

  • PyTorch:用于深度学习模型的训练和推理。

框架
  • Python:主要编程语言。

  • PyTorch:深度学习框架。

  • OpenCV:用于图像处理。

应用场景

文档数字化:帮助用户将纸质文档快速、准确地转换为电子文档,便于存储、检索和共享,提高文档管理的效率和便利性。

数据录入:能够自动化数据录入流程,减少人工输入的错误和时间成本,适用于处理大量表单、报表等数据的场景,如企业的财务数据录入、物流信息录入等。

多语言翻译:自动识别并提取不同语言的文本,为多语言翻译提供基础,方便跨国交流和信息共享,例如在处理跨国公司的文件、国际学术文献等方面有很大的应用价值。

内容审核:可以自动识别图像中的文本内容,用于内容审核和合规性检查,帮助用户快速筛选出包含特定关键词或不符合规定的文本信息,如在社交媒体、网络平台等的内容监管方面发挥作用。

其他场景:还可应用于金融领域的票据识别、互联网爬虫中的文本提取、支付系统中的二维码和条形码识别、大数据处理中的文本抓取和解析、车辆车牌识别等多种业务场景。

安装使用

安装

安装依赖
  • Python 环境:确保你已经安装了 Python 3.6 或更高版本。

  • CUDA 和 cuDNN(可选):如果你有 NVIDIA GPU 并希望使用 GPU 加速,请安装 CUDA 和 cuDNN。

  • PyTorch:EasyOCR 依赖于 PyTorch,因此需要先安装 PyTorch。

步骤 1:安装 PyTorch

首先,你需要安装 PyTorch。你可以根据你的系统配置和是否使用 GPU,在 PyTorch 官网 上找到合适的安装命令。例如,如果你使用的是 Windows 系统并且没有 GPU,可以使用以下命令:

pip install torch torchvision torchaudio

步骤 2:安装 EasyOCR

安装完 PyTorch 后,你可以通过 pip 安装 EasyOCR。

pip install easyocr

使用

可通过下列代码进行简单验证。

import easyocr
reader = easyocr.Reader(['ch_tra','en']) # 加载简体中文和英文模型
result = reader.readtext('chinese.jpg')

以此图片为例

将输出下列结果

[([[448, 111], [917, 111], [917, 243], [448, 243]],'高鐵左營站',0.9247),
([[454, 214], [629, 214], [629, 290], [454, 290]], 'HSR', 0.9931),
([[664, 222], [925, 222], [925, 302], [664, 302]],'Station',0.3260),
([[312, 306], [937, 306], [937, 445], [312, 445]],'汽車臨停接送區',0.7417),
([[482, 418], [633, 418], [633, 494], [482, 494]],'Kiss',0.9577),
([[331, 421], [453, 421], [453, 487], [331, 487]], 'Car', 0.9630),
([[653, 429], [769, 429], [769, 495], [653, 495]], 'and', 0.9243),
([[797, 429], [939, 429], [939, 497], [797, 497]],'Ride',0.6400)]

你可以通过设置detail=0输出简单结果

result = reader.readtext('chinese.jpg', detail=0)

如果你有 GPU 并希望使用 GPU 加速,可以在创建 Reader 实例时设置 gpu=True

reader = easyocr.Reader(['ch_tra','en'], gpu=True)

总结

EasyOCR作为一个轻量级但功能强大的OCR库,为Python开发者提供了便捷的文字识别方案。虽然在某些复杂的场景下,EasyOCR的识别准确率可能不如一些商业OCR引擎,但对于大部分日常应用场景来说,EasyOCR已经足够胜任。相信随着EasyOCR的不断发展,它将在更多领域发挥其独特的作用。

项目地址

https://github.com/JaidedAI/EasyOCR

一款支持80+语言,包括:拉丁文、中文、阿拉伯文、梵文等开源OCR库 - BTool博客 - 在线工具软件,为开发者提供方便 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/483113.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cocotb pytest

打印python中的print , 应该使用 pytest -s

【C++】STL——map和set

目录 1、序列式容器和关联式容器前 2、set 2.1 set类的介绍 2.2 set的构造和迭代器 2.3 set的增删查 set 的插入 set的查找 set的删除 2.4 multiset和set的差异 3、map 3 .1 pair类型 3.2 map的构造 3.3 map的增删查 map的构造遍历 map的插入 map的删除 map的查…

java基础概念46-数据结构1

一、引入 List集合的三种实现类使用了不同的数据结构! 二、数据结构的定义 三、常见的数据结构 3-1、栈 特点:先进后出,后进先出。 java内存容器: 3-2、队列 特点:先进先出、后进后出。 栈VS队列-小结 3-3、数组 3-…

Docker:在 ubuntu 系统上生成和加载 Docker 镜像

本文将介绍在 ubuntu系统上进行 Docker 镜像的生成和加载方法和代码。 文章目录 一、下载和安装 docker二、加载 docker 文件三、保存你的镜像四、将镜像上传到云端并通过连接下载和加载 Docker 镜像五、Docker 容器和本地的文件交互5.1 从容器复制文件到本地宿主机5.1.1 单个文…

《数据挖掘:概念、模型、方法与算法(第三版)》

嘿,数据挖掘的小伙伴们!今天我要给你们介绍一本超级实用的书——《数据挖掘:概念、模型、方法与算法》第三版。这本书是数据挖掘领域的经典之作,由该领域的知名专家编写,系统性地介绍了在高维数据空间中分析和提取大量…

做异端中的异端 -- Emacs裸奔之路4: 你不需要IDE

确切地说,你不需要在IDE里面编写或者阅读代码。 IDE用于Render资源文件比较合适,但处理文本,并不划算。 这的文本文件,包括源代码,配置文件,文档等非二进制文件。 先说说IDE带的便利: 函数或者变量的自动…

【C++】编程题目分析与实现回顾:从浮点数运算到整型转换的全面解读

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目一:计算成绩问题分析与优化实现优化后的实现优势 💯题目二:浮点数向零舍入不同实现方式的比较1. 使用强制类型转换 (int)2. 使用标准…

时间表格Java

输入:XXX XXX 小时 分钟 输出: XXX:XXX ~ XXX: XXX XXX:XXX ~ XXX: XXX XXX:XXX ~ XXX: XXX 处理:间隔五分钟、区间45分钟 14:15 ~ 15:0 15:5 ~ 15:50 15:55 ~ 16:40 16:45 ~ 17:30 17:35 ~ 18:20…

Spring AOP 的实现和切点表达式的介绍

1. 快速入手 AOP:就是面相切面编程,切面指的就是某一类特定的问题,也可以理解为面相特定方法编程,例如之前使用的拦截器,就是 AOP 思想的一种应用,统一数据返回格式和统一异常处理也是 AOP 思想的实现方式…

shell脚本30个案例(五)

前言: 通过一个多月的shell学习,总共写出30个案例,分批次进行发布,这次总共发布了5个案例,希望能够对大家的学习和使用有所帮助,更多案例会在下期进行发布。 案例二十一、系统内核优化 1.问题&#xff1…

一文解析Kettle开源ETL工具!

ETL(Extract, Transform, Load)工具是用于数据抽取、转换和加载的软件工具,用于支持数据仓库和数据集成过程。Kettle作为传统的ETL工具备受用户推崇。本文就来详细说下Kettle。 一、Kettle是什么? Kettle 是一款开源的 ETL&#x…

IDEA使用HotSwapHelper进行热部署

目录 前言JDK1.8特殊准备DECVM安装插件安装与配置参考文档相关下载 前言 碰到了一个项目,用jrebel启动项目时一直报错,不用jrebel时又没问题,找不到原因,又不想放弃热部署功能 因此思考能否通过其他方式进行热部署,找…

使用无监督机器学习算法进行预测性维护

目录 一、说明 二、主成分分析(PCA) 三、 K-means方法 四、K-最近邻 (KNN) 五、密度的空间聚类 (DBSCAN) 六、更先进的预测性维护算法 6.1 独立成分分析 (ICA) 6.2 PCA 和 ICA 有什么区别? 6.3 OPTICS 聚类 6.4 自组织映射 (SOM) 6.5 局部敏…

Elasticsearch 进阶

核心概念 索引(Index) 一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母),并且当我们要对这个索…

107.【C语言】数据结构之二叉树求总节点和第K层节点的个数

目录 1.求二叉树总的节点的个数 1.容易想到的方法 代码 缺陷 思考:能否在TreeSize函数内定义静态变量解决size的问题呢? 其他写法 运行结果 2.最好的方法:分而治之 代码 运行结果 2.求二叉树第K层节点的个数 错误代码 运行结果 修正 运行结果 其他写法 1.求二…

vue2 虚拟DOM 和 真实DOM (概念、作用、Diff 算法)

虚拟 DOM 和 真实DOM&#xff08;概念、作用、Diff 算法&#xff09; 1.1 概念 真实 DOM&#xff08;Document Object Model&#xff09;&#xff1a;是浏览器中用于表示文档结构的树形结构。 <h2>你好</h2>虚拟DOM&#xff1a;用 JavaScript 对象来模拟真实 DOM…

Spring AI 框架介绍

Spring AI是一个面向人工智能工程的应用框架。它的目标是将Spring生态系统的设计原则&#xff08;如可移植性和模块化设计&#xff09;应用于AI领域&#xff0c;并推广使用pojo作为AI领域应用的构建模块。 概述 Spring AI 现在(2024/12)已经支持语言&#xff0c;图像&#xf…

matlab 中的 bug

在matlab中绘图&#xff0c;设置 axe 的背景颜色 axes_in3.Color #00235B ;打印的时候 print(figure_handle1,-dpng,-r300,"merge_yt_ey") ;此时保存的图片无法识别背景颜色 原因在于 matlab 中的 InverseHardcopy 将 InvertHardcopy 设置成 off 则可以解决这个问…

【数据库系列】Liquibase 与 Flyway 的详细对比

在现代软件开发中&#xff0c;数据库版本控制是一个至关重要的环节。为了解决数据库迁移和变更管理的问题&#xff0c;开发者们通常会使用工具&#xff0c;如 Liquibase 和 Flyway。本文将对这两个流行的数据库迁移工具进行详细比较&#xff0c;从基础概念、原理、优缺点到使用…

DVWA靶场通关——DOM型XSS漏洞

一、DOM型XSS攻击概述 DOM型XSS&#xff08;DOM-based Cross-Site Scripting&#xff0c;DOM XSS&#xff09;是一种跨站脚本攻击&#xff08;XSS&#xff09;的变种&#xff0c;它与传统的反射型XSS&#xff08;Reflected XSS&#xff09;或存储型XSS&#xff08;Stored XSS&a…