RapidOCR (捷智OCR)
简体中文 | English
目录
简介
-
💖目前已知运行速度最快、支持最广,完全开源免费并支持离线部署的多平台多语言OCR SDK
-
中文广告: 欢迎加入我们的QQ群下载模型及测试程序,qq群号:887298230
-
缘起:百度paddlepaddle工程化不是太好,为了方便大家在各种端上进行ocr推理,我们将它转换为onnx格式,使用
python/c++/java/swift/c#
将它移植到各个平台。 -
名称来源: 轻快好省并智能。 基于深度学习技术的OCR技术,主打人工智能优势及小模型,以速度为使命,效果为主导。
-
基于百度的开源PaddleOCR 模型及训练,任何人可以使用本推理库,也可以根据自己的需求使用百度的paddlepaddle框架进行模型优化。
近期更新
🎄2021-12-18 update
- 添加Google Colab Demo
- 更改
python/rapidOCR.sh
中默认det模型
2021-11-28 update
- 更新ocrweb部分
- 添加显示各个阶段处理时间
- 更新说明文档
- 更换文本检测模型为
ch_PP-OCRv2_det_infer.onnx
,推理更快,更准
2021-11-13 update
- 添加python版本中文本检测和识别可调节的超参数,主要有
box_thresh|unclip_ratio|text_score
,详情见参数调节 - 将文本识别中字典位置以参数方式给出,便于灵活配置,详情见keys_path
2021-10-27 update
- 添加使用onnxruntime-gpu版推理的代码(不过gpu版本的onnxruntime不太好用,按照官方教程配置,感觉没有调用起来GPU)
- 具体使用步骤参见: onnxruntime-gpu推理配置
2021-09-13 update
- 添加基于
python
的whl文件,便于使用,详情参见release/python_sdk
2021-09-11 update
- 添加PP-OCRv2新增模型onnx版本
- 使用方法推理代码不变,直接替换对应模型即可。
- 经过在自有测试集上评测:
- PP-OCRv2检测模型效果有大幅度提升,模型大小没变。
- PP-OCRv2识别模型效果无明显提升,模型大小增加了3.58M。
- 模型上传到百度网盘 提取码:30jv
之前更新记录
点击查看
2021-08-07 update
-
现在正在做的
- PP-Structure 表格结构和cell坐标预测 正在整理中
-
之前做的,未完成的,欢迎提PR
- 打Dokcer镜像
- 尝试onnxruntime-gpu推理
2021-07-17 update
- 完善README文档
- 增加英文、数字识别onnx模型,具体参见
python/en_number_ppocr_mobile_v2_rec
,用法同其他 - 整理一下模型转onnx
2021-07-04 update
- 目前仓库下的python程序已经可以在树莓派4B上,成功运行,详细信息请进群,询问群主
- 更新整体结构图,添加树莓派的支持
2021-06-20 update
- 优化ocrweb中识别结果显示,同时添加识别动图演示
- 更新
datasets
目录,添加一些常用数据库链接(搬运一下^-^) - 更新FAQ
2021-06-10 update
- 添加server版文本识别模型,详情见提取码:30jv
2021-06-08 update
- 整理仓库,统一模型下载路径
- 完善相关说明文档
2021-03-24 update
- 新模型已经完全兼容ONNXRuntime 1.7 或更高版本。 特别感谢:@Channingss
- 新版onnxruntime比1.6.0 性能提升40%以上。
整个框架
FAQ
常见问题SDK 编译状态
鉴于ubuntu用户都是商业用户,也有编译能力,暂不提供预编译包使用,可自行编译。
平台 | 编译状态 | 提供状态 |
---|---|---|
Windows x86/x64 | 下载链接 | |
Linux x64 | 暂不提供,自行编译 |
在线demo
- 说明: 本在线demo不存储小伙伴们上传测试的任何图像数据
- demo所用模型组合为:
ch_PP-OCRv2 det
+mobile cls
+mobile rec
- 运行机器配置:
4核 AMD EPYC 7K62 48-Core Processor
- 示例图:
项目结构
(点击展开)
RapidOCR
├── android # 安卓工程目录
├── api4cpp # c语言跨平台接口库源码目录,直接用根下的CMakelists.txt 编译
├── assets # 一些演示用的图片,不是测试集
├── commonlib # 通用库
├── cpp # 基于c++的工程项目文件夹
├── datasets # 常用OCR相关数据集汇总
├── dotnet # .Net程序目录
├── FAQ.md # 一些问答整理
├── 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
- IOS范例: 等待有缘人贡献代码
- 依据python版本重写C++推理代码,以提升推理效果,并增加对gif/tga/webp 格式图片的支持
模型相关
- 可以直接下载使用的模型 (百度云下载链接:提取码:30jv) 或者 Google Drive
模型名称 | 模型简介 | 模型大小 | 备注 |
---|---|---|---|
⭐ ch_PP-OCRv2_det_infer.onnx | 轻量文本检测模型 | 2.23M | 较v1轻量检测,精度有较大提升 |
⭐ ch_PP-OCRv2_rec_infer.onnx | 轻量文本识别模型 | 7.79M | |
ch_ppocr_mobile_v2.0_det_infer.onnx | 轻量文本检测模型 | 2.23M | PP-OCRv1 |
ch_ppocr_mobile_v2.0_cls_infer.onnx | 轻量文本方向分类模型 | 571KB | PP-OCRv1 |
ch_ppocr_mobile_v2.0_rec_infer.onnx | 轻量文本识别模型 | 4.21M | PP-OCRv1 |
ch_ppocr_server_v2.0_det_infer.onnx | 服务器版文本检测模型 | 46.60M | PP-OCRv1 |
ch_ppocr_server_v2.0_rec_infer.onnx | 服务器版文本识别模型 | 106M | PP-OCRv1 |
japan_rec_crnn.onnx | 轻量日语识别模型 | 3.38M | PP-OCRv1 |
en_number_mobile_v2.0_rec_infer.onnx | 轻量英文和数字识别模型 | 1.79M | PP-OCRv1 |
模型转onnx
- 手把手教你使用ONNXRunTime部署PP-OCR by @Channingss
- ✧✧PaddleOCRModelConverter by @SWHL
- Paddle2OnnxConvertor by @benjaminwan
原始发起者及初创作者
版权声明
- 如果你的产品使用了本仓库中的全部或部分代码、文字或材料
- 请注明出处并包括我们的github url:
https://github.com/RapidAI/RapidOCR
授权
- OCR模型版权归百度所有,其它工程代码版权归本仓库所有者所有。
- 本软件采用Apache 授权方式,欢迎大家贡献代码,提交issue 甚至pr.
联系我们
-
您可以通过QQ群联系到我们:887298230
-
群号搜索不到时,请直接点此链接,找到组织
-
用QQ扫描以下二维码: