# RapidOcrCpp **Repository Path**: RapidAI/RapidOcrCpp ## Basic Information - **Project Name**: RapidOcrCpp - **Description**: No description available - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-22 - **Last Updated**: 2026-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RapidOcrCpp #### 介绍 该项目通过MNN(Alibaba)/Ncnn(Tencent)/OnnxRuntime(Microsoft)等推理引擎,通过DbNet/AngleNet/CrnnNet,通过引擎携带转换器转换paddle(百度飞浆)模型来识别OCR文字 #### 软件架构 ``` 项目目前只是利用各引擎的CPU部分来识别,降低学习门坎,通过简单注册工厂模式,将引擎打包到动态、静态库,方便调用 /include/RapidOcr //源码.h目录 /include/RapidOcr/Core //核心.h目录 /include/RapidOcr/Provider //引擎.h目录 /src //源码.cpp目录 /src/Core //核心.cpp目录 /src/Provider //引擎.cpp文件目录 /cmake //cmake脚本目录 /cmake/RapidOcrConfig.cmake.in //项目发布cmake配置模板 /cmake/RapicOcr.pc.in //项目发布pkgconfig配置模板 /cmake/RapidOcrSourceConfig.cmake //源码配置脚本 /cmake/FindDepsPath.cmake //封装按cmake目录规则,查找依赖目录 /cmake/FindDepend.cmake //依赖查找脚本 /cmake/RapidOcrBuild.cmake //编译脚本 /cmake/RapidOcrInstall.cmake //安装脚本 /deps //依赖库目录 /deps/Ncnn //依赖库Ncnn目录 /deps/MNN //依赖库MNN目录 /deps/OnnxRuntime //依赖库OnnxRuntime目录 /models //模型目录 /models/Ncnn //Ncnn模型目录 /models/MNN //MNN模型目录 /models/OnnxRuntime //OnnxRuntime模型目录 /CMakeLists.txt //cmake主文件 /test //单文件测试目录 ``` #### 安装教程 1. 下载源码 ``` git clone https://gitee.com/A_knife/RapidOcrCpp ``` 2. 编译依赖 ``` 在deps目录下各依赖有ReadMe.md文件,根据提示编译即可,不同平台可自行填加编译参数 在window下如果使用官方依赖.dll,请自行按cmake标准目录存放,制件依赖xxxxConfig.cmake ├── deps/ # ===== 第三方依赖 ===== │ ├── onnxruntime/ │ │ ├── Linux/ │ │ ├── macOs/ │ │ └── Windows/ │ │ ├── include/ │ │ │ └── onnxruntime/ │ │ ├── lib/cmake/onnxruntime/onnxruntimeConfig.cmake │ │ └── bin/ │ │ │ ├── ncnn/ │ │ ├── Linux/ │ │ ├── macOs/ │ │ └── Windows/ │ │ ├── include/ │ │ │ └── ncnn/ │ │ ├── lib/cmake/ncnn/ncnnConfig.cmake │ │ └── bin/ │ │ │ ├── MNN/ │ │ ├── Linux/ │ │ ├── macOs/ │ │ └── Windows/ │ │ ├── include/ │ │ │ └── MNN/ │ │ ├── lib/cmake/MNN/MNNConfig.cmake │ │ └── bin/ │ │ 注:项目中cmake/FindDepsPath中列出了常见目录结构,在Cmake构建时会给出[DEBUG]提示 ``` 3. 选择项目引擎 ``` 在项目根目录下CMakeLists.txt中有 BUILD_WITH_ONNXRUNTIME=ON(启用OnnxRuntime引擎) BUILD_WITH_NCNN=ON(启用Ncnn引擎) BUILD_WITH_MNN(启用MNN引擎), 注,引擎可编译时选择一个、二个,三个打包 ``` 4. 其它编译参数说明 -DDEPS_PATH=指定存放依赖的目录,默认/deps -DCMAKE_BUILD_TYPE=Release | Debug 暂不持其它方式 -DBUILD_SHARED_LIBS=ON | OFF 默认ON,输出libRapidOcr.so/RapidOcr.dll -DBUILD_WITH_JNI=ON | OFF 默认OFF,ON输出libRapidOcr_jni.so/RapidOcr_jni.dll -DBUILD_OUTPUT_BIN=ON | OFF 默认ON,输出带调试信息的二进制可执行控制台代码 -DBUILD_OUTPUT_TEST=ON | OFF 默认OFF,编译/test目录下的c/cxx调用RapidOCR的测试代码 -DCMAKE_INSTALL_PREFIX=指定安装目录 将生成的库和二进制代码+头文件,安装到指定目录,实现下游调用 #### 使用说明 1. 项目代码编译可生成静态库、动态库和二进制测试可执行 2. 安装后的RapidOcr遵循cmake标准目录结构,供下游find_package使用,也可以支持pkg调用 3. 以RapidOcr为中间件的,参考/test目录下的使用方式 4. RapidOcr不做中间件的,/src/Core/Main.cpp可以直接输出二进制 #### 项目引用 ### 依赖与致谢 (Dependencies & Acknowledgements) 本项目使用了以下优秀的推理框架来实现模型部署: * **OpenCV** * 用途:图像读写、色彩空间转换、仿射变换、结果绘制 * 官网:[https://opencv.org](https://opencv.org) * 仓库:[https://github.com/opencv/opencv](https://github.com/opencv/opencv) * 协议:Apache-2.0 License * **ONNX Runtime** * 用途:跨平台高性能推理。 * 官网:[https://onnxruntime.ai](https://onnxruntime.ai) * 仓库:[https://github.com/microsoft/onnxruntime](https://github.com/microsoft/onnxruntime) * 协议:MIT License * **ncnn** * 用途:移动端/嵌入式端高性能计算。 * 官网:[https://github.com/Tencent/ncnn](https://github.com/Tencent/ncnn) * 协议:BSD-3-Clause License * **MNN (Mobile Neural Network)** * 用途:轻量级端侧推理。 * 官网:[https://www.mnn.zone](https://www.mnn.zone) * 仓库:[https://github.com/alibaba/MNN](https://github.com/alibaba/MNN) * 协议:Apache-2.0 License * **OpenVINO™ Toolkit** * 用途:Intel 硬件平台加速。 * 官网:[https://software.intel.com/openvino](https://software.intel.com/openvino) * 仓库:[https://github.com/openvinotoolkit/openvino](https://github.com/openvinotoolkit/openvino) * 协议:Apache-2.0 License ### OCR 推理模块 (Fork) 本项目 **Fork 并定制** 了 1. [RapidAI/RapidOcrOnnx](https://github.com/RapidAI/RapidOcrOnnx) 2. [RapidAI/RapidOcrNcnn](https://github.com/RapidAI/RapidOcrNcnn) > **修改内容**: > - 去除原项目中GPU部分 > - 合并两个项目共有部分,相近部分代码做了调整 > - 重构目录结构和重新制作CMAKE编译,暂不对 FOR Windows 编译/MT方式支持 (C++ OCR 推理引擎,基于 ONNX Runtime,底层模型为 PP-OCRv3 系列 ONNX 格式): #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request