6款开源中文OCR使用介绍(亲测效果)

文章介绍了六款开源OCR项目,包括PaddleOCR、CnOCR、chinese_liteOCR、EasyOCR、TesseractOCR和chineseocr,分析了它们的简介、使用方法和优缺点。PaddleOCR和CnOCR因其优秀的识别效果和轻量级模型受到推荐,而TesseractOCR的中文识别效果不佳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

光学字符识别(Optical Character Recognition, OCR)是指对文本材料的图像文件进行分析识别处理,以获取文字和版本信息的过程。也就是说将图象中的文字进行识别,并返回文本形式的内容。
ocr主要流程:
在这里插入图片描述
随着ocr技术的日渐成熟,目前github中有很多开源项目可供选择,下面将介绍几种常用的开源ocr项目。

开源ocr项目

1. Paddle OCR(推荐指数:★★★★★)

1.1 简介

飞桨首次开源文字识别模型套件PaddleOCR,目标是打造丰富、领先、实用的文本识别模型/工具库。最新开源的超轻量PP-OCRv3模型大小仅为16.2M。同时支持中英文识别;支持倾斜、竖排等多种方向文字识别;支持GPU、CPU预测;用户既可以通过PaddleHub很便捷的直接使用该超轻量模型,也可以使用PaddleOCR开源套件训练自己的超轻量模型。

1.2 使用

安装使用说明

1.3 优缺点

  • 优点
    • 轻量模型,执行速度快
    • 支持pip直接安装
    • ocr识别效果好,效果基本可以比肩大厂收费ocr(非高精版)
    • 支持表格和方向识别
    • 支持补充训练且很方便
  • 缺点
    • 部分符号识别效果一般,如 '|‘识别为’1’
    • 对于部分加粗字体可能出现误识别,需要自己补充训练
    • 偶尔会出现部分内容丢失的情况

2. CnOCR(推荐指数:★★★★★)

2.1 简介

CnOCR 是 Python 3 下的文字识别(Optical Character Recognition,简称OCR)工具包,支持简体中文、繁体中文(部分模型)、英文和数字的常见字符识别,支持竖排文字的识别。自带了20+个训练好的识别模型,适用于不同应用场景,安装后即可直接使用。同时,CnOCR也提供简单的训练命令供使用者训练自己的模型。

2.2 使用

安装使用说明

2.3 优缺点

  • 优点
    • 轻量模型,执行速度快,速度略快于paddle ocr
    • 支持pip直接安装
    • ocr识别效果好,识别效果比肩paddle ocr
    • 支持训练自己的模型
  • 缺点
    • 部分符号识别效果差
    • 部分场景下会出现空格丢失情况
    • 模型补充训练没有paddle ocr方便

3. chinese_lite OCR(推荐指数:★★★)

3.1简介

超轻量级中文 ocr,支持竖排文字识别, 支持 ncnn、mnn、tnn 推理, 模型大小仅4.7M。

3.2 使用

安装使用说明

3.3 优缺点

  • 优点
    • 轻量模型,执行速度快,速度优于CnOCR和Paddle OCR
    • ocr识别效果尚可,优于一般开源模型,但比不上CnOCR和Paddle OCR
    • 作者提供了多种语言下的Demo
  • 缺点
    • 不支持pip安装
    • 文本位置识别略差
    • 不支持补充训练
    • 类手写字体识别效果一般
    • 部分场景下会出现误识别竖版文字的情况
      例如:
    姓     名: 张三
    性     别: 男
    年     龄: 19
    户     籍: 北京
    
    误识别为 '姓性年户'
    

4. EasyOCR(推荐指数:★★)

4.1 简介

EasyOCR是一个用于从图像中提取文本的python模块。它是一种通用的OCR,可以读取自然场景文本和文档中的密集文本。我们目前正在支持80多种语言并不断扩展。

4.2 使用

官方文档

4.3 优缺点

  • 优点
    • 支持pip安装,但需要自己手动下载模型
    • ocr识别效果尚可,优于一般开源模型
  • 缺点
    • 速度很慢,900 * 1200像素图片平均需要30s左右
    • 不支持补充训练

5. Tesseract OCR(推荐指数:★)

5.1 简介

Tesserat OCR 是一款可在各种操作系统运行的 OCR 引擎,这是一款开源软件,在Apache 许可下发布。最初由惠普在20世纪80年代作为专有软件开发,在2005年以开源的形式发布,从2006年开始由谷歌赞助,开发语言为 C++。

5.2 使用

官方文档

5.3 优缺点

  • 优点
    • 支持补充训练
  • 缺点
    • 安装使用困难,不支持pip安装
    • 中文识别效果差

6. chineseocr(推荐指数:★★)

6.1 简介

基于yolo3 与crnn 实现中文自然场景文字检测及识别

  • 文字方向检测 0、90、180、270度检测(支持dnn/tensorflow)
  • 支持(darknet/opencv dnn /keras)文字检测,支持darknet/keras训练
  • 不定长OCR训练(英文、中英文) crnn\dense ocr 识别及训练 ,新增pytorch转keras模型代码(tools/pytorch_to_keras.py)
  • 支持darknet 转keras, keras转darknet, pytorch 转keras模型
  • 身份证/火车票结构化数据识别
  • 新增CNN+ctc模型,支持DNN模块调用OCR,单行图像平均时间为0.02秒以下
    CPU版本加速
  • 支持基于用户字典OCR识别
  • 新增语言模型修正OCR识别结果
  • 支持树莓派实时识别方案

6.2 使用

官方文档

6.3 优缺点

  • 优点
    • 支持补充训练
    • 有多版本优化模型
  • 缺点
    • 项目较老,使用的三方库较老,部分三方库已废弃,环境配置困难
    • 中文ocr识别效果一般
    • 不支持pip安装

总结

上述6个开源模型是常见的国内ocr模型,每个我都部署测试过,整体来看推荐使用paddle ocr和cnocr,某些场景下,如小图片且对速度要求较高可以尝试使用chinese_lite ocr.



有其他开源中文ocr推荐,欢迎补充!

<think>我们已知用户希望了解muggle_ocr使用方法和示例代码。根据引用[1]、[2]、[3]提供的示例代码,我们可以总结出以下使用步骤:1.安装模块:根据引用[1]和[4],安装muggle-ocr可能会遇到问题,因为从官方源可能无法直接安装(被移除)。但引用[1]提供了使用阿里云镜像安装的方法,而引用[4]指出需要自行下载文件安装。但根据引用[1]的示例,安装命令为:```bashpipinstallmuggle-ocr#或者使用阿里云镜像pipinstall-ihttp://mirrors.aliyun.com/pypi/simple/--trusted-hostmirrors.aliyun.commuggle-ocr```如果安装失败,可能需要按引用[4]所述自行下载安装。2.使用步骤:-导入包:`importmuggle_ocr`-初始化SDK:有两种模型类型,分别是`ModelType.OCR`(用于识别普通印刷文本,包括中文)和`ModelType.Captcha`(用于识别4-6位验证码)。-读取图片文件并调用预函数。3.示例代码(综合引用[1][2][3]):-识别普通文本(光学印刷文本):```pythonimportmuggle_ocr#初始化模型,使用OCR模型(用于普通文本)sdk=muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR)#读取图片withopen("test1.png","rb")asf:b=f.read()#识别text=sdk.predict(image_bytes=b)print(text)```-识别验证码(4-6位):```python#初始化模型,使用Captcha模型(用于验证码)sdk=muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha)withopen("test1.png","rb")asf:b=f.read()text=sdk.predict(image_bytes=b)print(text)```注意:引用[1]和[3]中均提到,官方文档可能存在错误,将`ModelType.OCR`和`ModelType.Captcha`的说明弄反了,但根据实际使用,`ModelType.OCR`用于普通印刷文本(包括中文),而`ModelType.Captcha`用于验证码。因此,在编写教程时,应按照上述代码示例进行说明。同时,需要提醒用户安装问题。如果安装失败,可尝试:-使用镜像源(如阿里云)安装-如果镜像源也没有,可能需要自行下载安装包进行安装(引用[4])。此外,根据引用[3],`ModelType.OCR`可以识别中文,所以对于中文文本的识别可以使用该模型。现在,我们可以整理成一个完整的教程。</think> ### muggle_ocr 使用教程 `muggle_ocr`是一个高性能的Python验证码识别库,提供两种模型用于不同类型识别任务。以下是详细使用指南: #### 🛠 安装说明 ```bash # 推荐使用阿里云镜像安装 pip install -i http://mirrors.aliyun.com/pypi/simple/ muggle-ocr ``` ⚠️ 注意:若安装失败可能因为官方移除了库(引用[4]),需手动下载安装包安装。 #### 📝 核心功能示例 ##### 1. 通用文本识别(印刷体/中文) ```python import muggle_ocr # 初始化OCR模型 sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR) # 读取图片文件 with open("document.png", "rb") as f: image_bytes = f.read() # 识别并输出结果 text = sdk.predict(image_bytes=image_bytes) print("识别结果:", text) # 可识别中文印刷文本[^3] ``` ##### 2. 验证码识别(4-6位字符) ```python import muggle_ocr # 初始化验证码专用模型 sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha) with open("captcha.jpg", "rb") as f: captcha_bytes = f.read() # 识别验证码 code = sdk.predict(image_bytes=captcha_bytes) print("验证码:", code) # 输出4-6位验证码[^1][^3] ``` #### ⚙️ 参数说明 | 参数 | 可选值 | 用途 | |------|--------|------| | `model_type` | `ModelType.OCR` | 通用文本识别 | | | `ModelType.Captcha` | 验证码识别 | | `image_bytes` | 二进制数据 | 图片数据流 | #### 💡 使用技巧 1. **图片预处理**:验证码识别前建议进行灰度化、二值化处理 2. **错误处理**:添加异常捕获应对识别失败 ```python try: text = sdk.predict(image_bytes) except Exception as e: print(f"识别失败: {str(e)}") ``` 3. **性能优化**:批量识别时复用SDK实例避免重复初始化 #### ❓ 常见问题 1. `ModuleNotFoundError`:检查是否安装成功,尝试`pip show muggle-ocr` 2. 识别率低:确保图片清晰,验证码图片尺寸建议80×30像素 3. 中文识别错误:使用`ModelType.OCR`并确认图片包含完整文字 📌 注:文档中`ModelType.OCR`与`ModelType.Captcha`的用途说明可能存在混淆(引用[1][^1]),实践中请以实际效果为准。 --- ###
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值