Skip to content
/ RapidOCR Public
forked from RapidAI/RapidOCR

A cross platform OCR Library based on PaddleOCR & OnnxRuntime & OpenVINO.

License

Notifications You must be signed in to change notification settings

MYQ-C/RapidOCR

 
 

Repository files navigation

RapidOCR (捷智OCR- 信创级开源OCR - 为世界内容安全贡献力量)

简体中文 | English

Open in Colab
PyPI

目录

提供信创平台多架构商业支持

包括Arm/X86/mips(龙芯)/RISC-V等信创CPU支持,同时兼容onnxruntime/openvino/NCNN,有意联系: [email protected] , 请先邮件咨询服务项目,即时回复联系方式

简介

  • 💖目前已知运行速度最快、支持最广,完全开源免费并支持离线部署的多平台多语言OCR SDK
  • 中文广告: 欢迎加入我们的QQ群下载模型及测试程序,qq群号:887298230
  • 缘起:百度paddlepaddle工程化不是太好,为了方便大家在各种端上进行ocr推理,我们将它转换为onnx格式,使用Python/C++/Java/Swift/C# 将它移植到各个平台。
  • 名称来源: 轻快好省并智能。 基于深度学习技术的OCR技术,主打人工智能优势及小模型,以速度为使命,效果为主导。
  • 基于百度的开源PaddleOCR 模型及训练,任何人可以使用本推理库,也可以根据自己的需求使用百度的paddlepaddle框架进行模型优化。

近期更新(more)

🧻2022-11-20 upadte:

  • [python] 添加版面分析部分,支持中文、英文和表格三种版面的检测分析。详情参见:Rapid Structure部分。

🎃2022-11-01 update:

  • 添加Hugging Face Demo, 增加可以调节超参数的功能,详情可访问Hugging Face Demo

🚩2022-10-01 udpate:

垂直相关项目(more)

衍生项目

生态框架

flowchart LR
    subgraph Step
    direction TB
    C(Text Det) --> D(Text Cls) --> E(Text Rec)
    end

    A[/OurSelf Dataset/] --> B(PaddleOCR) --Train--> Step --Convert--> F(ONNX)
    F --> G{RapidOCR Deploy\n<b>Python/C++/Java/C#</b>}
    G --> H(Windows x86/x64) & I(Linux) & J(Android) & K(Web) & L(Raspberry Pi)

    click B "https://github.com/PaddlePaddle/PaddleOCR" _blank
Loading

常见问题 FAQ

SDK 编译状态

鉴于ubuntu用户都是商业用户,也有编译能力,暂不提供预编译包使用,可自行编译。

平台 编译状态 提供状态
Windows x86/x64 CMake-windows-x86-x64 下载链接
Linux x64 CMake-linux 暂不提供,自行编译

在线demo

  • 自建在线demo
    • 说明: 本在线demo不存储小伙伴们上传测试的任何图像数据,详情参见:ocrweb/README
    • demo所用模型组合(最优组合)为:
    ch_PP-OCRv3_det + ch_ppocr_mobile_v2.0_cls + ch_PP-OCRv3_rec
    
    • 运行机器配置: 4核 AMD EPYC 7K62 48-Core Processor
    • 示例图:
  • Hugging Face Demo
    • 该demo依托于Hugging Face的Spaces构建,采用Gradio库生成,同时添加三个超参数:
      • box_thresh: 检测到的框是文本的概率,值越大,框中是文本的概率就越大
      • unclip_ratio: 控制检测到文本框的大小,值越大,检测框整体越大
      • text_score: 文本识别结果是正确的置信度,值越大,显示出的识别结果更准确
    • 示例图:

项目结构

(点击展开)
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 格式图片的支持

模型相关

模型名称 模型简介 模型大小 备注
⭐ ch_PP-OCRv3_det_infer.onnx 轻量文本检测模型 2.23M 较v1轻量检测,精度有较大提升 from PaddleOCR
⭐ ch_PP-OCRv2_rec_infer.onnx 轻量文本识别模型 7.79M

各个版本ONNX模型效果对比

文本检测模型(仅供参考)

  • 测试集:自己构建中英文(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

模型转onnx

原始发起者及初创作者

致谢

  • 非常感谢DeliciaLaniD修复ocrweb中扫描动画起始位置错位问题。
  • 非常感谢zhsunlight关于参数化调用GPU推理的建议以及细致周到的测试。
  • 非常感谢lzh111222334修复python版本下rec前处理部分bug。
  • 非常感谢AutumnSun1996#42中的建议。

赞助

赞助者 应用的产品
-
  • 如果您想要赞助该项目,可直接点击当前页最上面的Sponsor按钮,请写好备注(您的Github账号名称),方便添加到上面赞助列表中。

版权声明

  • 如果你的产品使用了本仓库中的全部或部分代码、文字或材料
  • 请注明出处并包括我们的github url: https://github.com/RapidAI/RapidOCR

授权

  • OCR模型版权归百度所有,其它工程代码版权归本仓库所有者所有。
  • 本软件采用Apache 授权方式,欢迎大家贡献代码,提交issue 甚至pr.

联系我们

  • 您可以通过QQ群联系到我们:887298230

  • 群号搜索不到时,请直接点此链接,找到组织

  • 用QQ扫描以下二维码:

示例图

C++/JVM示例图像

.Net示例图像

多语言示例图像

About

A cross platform OCR Library based on PaddleOCR & OnnxRuntime & OpenVINO.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 52.5%
  • Python 19.1%
  • Jupyter Notebook 10.8%
  • Kotlin 7.2%
  • C# 4.3%
  • Shell 1.5%
  • Other 4.6%