简体中文 | English
-
💖目前已知运行速度最快、支持最广,完全开源免费并支持离线部署的多平台多语言OCR SDK
-
中文广告: 欢迎加入我们的QQ群下载模型及测试程序,qq群号:887298230
-
缘起:百度paddlepaddle工程化不是太好,为了方便大家在各种端上进行ocr推理,我们将它转换为onnx格式,使用
python/c++/java/swift/c#
将它移植到各个平台。 -
名称来源: 轻快好省并智能。 基于深度学习技术的OCR技术,主打人工智能优势及小模型,以速度为使命,效果为主导。
-
基于百度的开源PaddleOCR 模型及训练,任何人可以使用本推理库,也可以根据自己的需求使用百度的paddlepaddle框架进行模型优化。
近期更新(more)
- 修复python版中v3 rec推理bug,并将v3 rec与v2 rec合并为同一套推理代码,更加简洁和方便
- 添加python模块下的单元测试
- 该页面添加致谢模块,感谢为这个项目作出贡献的小伙伴。
- 添加对单行文本的处理能力,对于单行文本,可自行设定阈值,不过检测模块,直接识别即可。详情参见README
- 优化python部分代码逻辑,更优雅简洁。
- python推理部分,增加参数选择使用GPU推理的配置选项,在正确安装
onnxruntime-gpu
版本前提下,可以一键使用(Fix issue#30) - 具体基于GPU的推理情况,需要等我后续整理一下,再更新出来
- 详情参见:onnxruntime-gpu版推理配置
- 重新整理python部分推理代码,将常用调节参数全部放到yaml文件中,便于调节,更加容易使用,详情参见:README
- 之前旧的推理代码位于分支:old_python_infer
- 增加基于PaddleOCR v3 rec的python版本推理代码,详情参见v3 rec
- 增加PaddleOCR v3 rec模型转换后的ONNX模型,直接去网盘下载替换即可。(百度网盘 | Google Drive)
- 增加文本识别模型各个版本效果对比表格,详情点击各个版本ONNX模型效果对比。v3的文本识别模型从自己构建测试集上的指标来看不如之前的好。
常见问题 FAQ
鉴于ubuntu用户都是商业用户,也有编译能力,暂不提供预编译包使用,可自行编译。
平台 | 编译状态 | 提供状态 |
---|---|---|
Windows x86/x64 | 下载链接 | |
Linux x64 | 暂不提供,自行编译 |
- 说明: 本在线demo不存储小伙伴们上传测试的任何图像数据
- demo所用模型组合(最优组合)为:
ch_PP-OCRv3_det + ch_ppocr_mobile_v2.0_cls + ch_PP-OCRv3_rec
- 运行机器配置:
4核 AMD EPYC 7K62 48-Core Processor
- 示例图:
(点击展开)
RapidOCR
├── android # 安卓工程目录
├── api4cpp # c语言跨平台接口库源码目录,直接用根下的CMakelists.txt 编译
├── assets # 一些演示用的图片,不是测试集
├── commonlib # 通用库
├── cpp # 基于c++的工程项目文件夹
├── docs # 相关的一些说明文档
├── dotnet # .Net程序目录
├── images # 测试用图片,典型的测试图,一张是自然场景
├── include # 编译c语言接口库时的头文件目录
├── ios # 苹果手机平台工程目录
├── jvm # 基于java的工程目录
├── lib # 编译用库文件目录,用于编译c语言接口库用,默认并不上传二进制文件
├── ocrweb # 基于python和Flask web
├── python # python推理代码目录
├── release # 发布的sdk
└── tools # 一些转换脚本之类
- C++范例(Windows/Linux/macOS): demo
- Jvm范例(Java/Kotlin): demo
- .Net范例(C#): demo
- Android范例: demo
- python范例: demo
- OpenVINO加速版本,进行中
- IOS范例: 等待有缘人贡献代码
- 依据python版本重写C++推理代码,以提升推理效果,并增加对gif/tga/webp 格式图片的支持
- 可以直接下载使用的模型 (百度网盘 | Google Drive)
模型名称 | 模型简介 | 模型大小 | 备注 |
---|---|---|---|
⭐ ch_PP-OCRv3_det_infer.onnx | 轻量文本检测模型 | 2.23M | 较v1轻量检测,精度有较大提升 from PaddleOCR |
⭐ ch_PP-OCRv2_rec_infer.onnx | 轻量文本识别模型 | 7.79M |
- 测试集:自己构建
中英文(111个,包含卡证、文档和自然图像)
模型 | infer_Speed(s/img) | precision | recall | hmean | 模型大小 |
---|---|---|---|---|---|
ch_ppocr_mobile_v2.0_det_infer.onnx | 0.4345742 | 0.7277 | 0.8413 | 0.7785 | 2.3M |
ch_PP-OCRv2_det_infer.onnx | 0.5116553 | 0.7817 | 0.8472 | 0.8123 | 2.3M |
ch_PP-OCRv3_det_infer.onnx | 0.5723512 | 0.7740 | 0.8837 | 0.8237 | 2.4M |
- 测试集: 自己构建
中英文(168个)
模型 | infer_Speed(s/img) | Score | Exact_Match | Char_Match | 模型大小 |
---|---|---|---|---|---|
ch_ppocr_mobile_v2.0_rec_infer.onnx | 0.0111 | 0.7287 | 0.5595 | 0.8979 | 4.3M |
ch_PP-OCRv2_rec_infer.onnx | 0.0193 | 0.6955 | 0.4881 | 0.9029 | 8.0M |
ch_PP-OCRv3_rec_infer.onnx | 0.0145 | 0.5537 | 0.3274 | 0.7800 | 11M |
ch_PP-OCRv3_rec_train_student.onnx | 0.0157 | 0.5537 | 0.3274 | 0.7800 | 11M |
ch_PP-OCRv3_rec_train_teacher.onnx | 0.0140 | 0.5381 | 0.3095 | 0.7667 | 11M |
- PaddleOCRModelConverter by @SWHL
- Paddle2OnnxConvertor by @benjaminwan
- 手把手教你使用ONNXRunTime部署PP-OCR by @Channingss
- 非常感谢DeliciaLaniD修复ocrweb中扫描动画起始位置错位问题。
- 非常感谢zhsunlight关于参数化调用GPU推理的建议以及细致周到的测试。
- 非常感谢lzh111222334修复python版本下rec前处理部分bug。
赞助者 | 应用的产品 |
---|---|
- 如果你的产品使用了本仓库中的全部或部分代码、文字或材料
- 请注明出处并包括我们的github url:
https://github.com/RapidAI/RapidOCR
- OCR模型版权归百度所有,其它工程代码版权归本仓库所有者所有。
- 本软件采用Apache 授权方式,欢迎大家贡献代码,提交issue 甚至pr.
-
您可以通过QQ群联系到我们:887298230
-
群号搜索不到时,请直接点此链接,找到组织
-
用QQ扫描以下二维码: