Python使用Easyocr库进行文字识别
HDUZN

EasyOCR是一个开源的Python库,用于进行光学字符识别(OCR)。

它的主要特点包括:

  • 简单易用:只需要几行代码就可以实现OCR,非常容易上手。
  • 支持多种语言:英语、中文、日语等80多种语言都支持。
  • 准确率高:基于深度学习的算法,识别准确率高。
  • 训练自定义模型:支持使用自己的数据集训练自定义OCR模型。
  • 支持检测方向:可以自动检测图像文字方向。
  • 支持多语言混合:可以处理多国语言混合的图像。
  • 基于PyTorch:建立在PyTorch深度学习框架之上。

由于易用性强、准确率高等优,EasyOCR非常适合用于快速实现OCR功能,或者作为OCR项目的基础库。它可以广泛应用于票据识别、车牌识别、身份证识别等领域。

Github项目地址:https://github.com/JaidedAI/EasyOCR

测试

测试地址:https://www.jaided.ai/easyocr/

简体中文的语言代码:ch_sim

Python代码举例

API文档:https://www.jaided.ai/easyocr/documentation/

使用EasyOCR主要分为 三个步骤:

  1. 导入库:import easyocr
  2. 初始化识别器:reader = easyocr.Reader([语言代码])
  3. 光学字符识别:result = reader.readtext([图片路径])

result 将返回每个检测到文本区域的坐标、文本内容等信息。

语言代码中有多种的话,可以用逗号隔开,比如同时有中文和英文: ['ch_sim', 'en']

安装库

1
pip install easyocr

举例

1
2
3
4
5
6
7
8
9
10
11
12
# 导入库
import easyocr

# 创建一个简体中文语言模型的OCR识别器
reader = easyocr.Reader(['ch_sim'])

# 识别图像中的文字
result = reader.readtext('IMG_2103.JPG')

# 格式化显示result结果
for idx, res in enumerate(result):
print(f"Text {idx}: {res[1]}")

运行代码的时候如果报了以下的错误(这个是easyocr库中的文件中的代码):

1
2
    img = cv2.resize(img,(int(model_height*ratio),model_height),interpolation=Image.ANTIALIAS)   
AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'

解决方法:

1
2
3
4
5
6
7
8
# 1.查看当前Pillow版本,其中包含版本号,我这是 10.0.0
pip show pillow

# 2.卸载Pillow
pip uninstall Pillow

# 3.安装9.5.0版本的Pillow
pip install Pillow==9.5.0

如果不是用pip的方式,用自己的方式就行了,反正就是Pillow的版本的问题。

语言模型

语言模型有哪些,上面的测试地址中有。这些例一下常见的几种语言:

Language Code Name
Simplified Chinese 简体中文 ch_sim
Traditional Chinese 繁体中文 ch_tra
German 德语 de
English 英语 en
French 法语 fa
Italian 意大利语 it
Japanese 日语 ja
Korean 韩语 ko
Russian 俄语 ru
  • 本文标题:Python使用Easyocr库进行文字识别
  • 本文作者:HDUZN
  • 创建时间:2023-08-29 20:56:51
  • 本文链接:http://hduzn.cn/2023/08/29/Python使用Easyocr库进行文字识别/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论