6款开源中文OCR使用介绍
前言
光学字符识别(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.
---------------------------------------------
转载:https://blog.csdn.net/bugang4663/article/details/131720149