当前位置: 首页 > article >正文

一款支持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.kler.cn/a/419788.html

相关文章:

  • Ai编程cursor + sealos + devBox实现登录以及用户管理增删改查(十三)
  • 三维测量与建模笔记 - 5.3 光束法平差(Bundle Adjustment)
  • MySQL 函数创建中的 Err 1418:原因解析与解决指南20241203
  • Flink四大基石之State(状态) 的使用详解
  • 嵌入式蓝桥杯学习1 点亮LED
  • 基于Matlab BP神经网络的电力负荷预测模型研究与实现
  • 【k8s深入学习之 event 记录】初步了解 k8s event 记录机制
  • 【ROS2】Ubuntu22.04安装ROS humble
  • 网络诊断指南:网络故障排查步骤与技巧
  • iOS——MVC、MVP、MVVM
  • leetcode——二分法
  • 4.22CACHE计算
  • 如何在centos7 安装vscode软件教程(图文教程)
  • Meta Reality Labs的VR/AR投资战略转向:内部视角与市场影响
  • mysql数据库varchar截断问题
  • C# 编程效率提升指南:掌握算数运算、循环与方法封装
  • 【054A】基于51单片机指南针(LCD1602显示)【Keil程序+报告+原理图】
  • python创建临时文件
  • 爬虫—Scrapy 整合 ChromeDriver 实现动态网页拉取
  • oracle数据库的启动与关闭
  • mongodb下载与使用
  • 分布式协同 - 分布式系统的特性与互斥问题
  • TI毫米波雷达(七)——high accurary示例分析(二)
  • 微信小程序——文档下载功能分享(含代码)
  • MySQL基础(语句)知识复习 (除索引和视图)
  • Hive项目实战:大数据处理与分析