# ocr_engine **Repository Path**: mcli10/ocr_engine ## Basic Information - **Project Name**: ocr_engine - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-26 - **Last Updated**: 2026-02-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OCR Inference Engine (Windows/Linux) 高性能 OCR 推理引擎,支持 Windows (x86/x64) 和 Linux 平台。基于 ONNX Runtime 和 OpenCV 实现,提供统一的 C API 接口。 ## 📁 项目结构 ```text ocr_infer_engine/ ├── 3rdparty/ # 第三方依赖库 │ ├── windows/ # Windows 依赖 (x86/x64) │ └── linux/ # Linux 依赖 ├── config/ # 配置文件 │ └── engine_config.json ├── docs/ # 文档 │ ├── ARCHITECTURE.md │ └── WINDOWS_MIGRATION_GUIDE.md ├── include/ # 公共头文件 ├── models/ # 模型文件 (需自行下载或放置) ├── scripts/ # 辅助脚本 │ ├── windows/ # Windows 构建脚本 │ └── linux/ # Linux 构建脚本 ├── src/ # 源代码 │ └── legacy/ # 旧代码归档 ├── test/ # 测试程序源码 ├── CMakeLists.txt # 主 CMake 配置文件 └── README.md # 本文档 ``` ## 🚀 快速开始 (Windows x86) 本项目已针对 Windows x86 (32位) 环境进行适配,支持使用 Visual Studio 2019 进行构建。 ### 1. 环境准备 - **Visual Studio 2019**: 安装 "使用 C++ 的桌面开发" 工作负载。 - **CMake**: 3.18 或更高版本。 - **依赖库**: 项目已在 `3rdparty/windows/x86` 预置了 OpenCV 4.7.0 和 ONNX Runtime 1.15.1 的 32 位库文件,无需手动安装。 ### 2. 编译构建 运行 Windows 构建脚本: ```cmd .\scripts\windows\build_win_x86.bat ``` 脚本会自动: 1. 设置 VS2019 x86 编译环境。 2. 创建 `build_win32` 目录并运行 CMake 配置。 3. 执行编译并安装到 `install` 目录。 ### 3. 运行测试 编译成功后,测试程序和依赖 DLL 会被生成到 `bin/Release` 目录。 ```cmd cd bin/Release ocr_engine_test.exe ``` > **注意**: 构建脚本会自动将 `config/`、`models/` 和依赖的 DLL 复制到测试目录。 ## 🐧 快速开始 (Linux) Linux 环境下的构建依然保留支持。 ```bash mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc) make install ``` ## 🔌 API 接口 核心 C API 定义在 `include/engine_api.h` 中: ```c // 初始化引擎 int EngineInitialize(const char* engine_type, const char* config_path, void** engine); // 创建推理任务 int EngineTaskCreate(void* engine, const unsigned char* data, uint32_t data_len, const char* params, uint64_t* task_id, const char* trace_id); // 获取结果 (阻塞或轮询) int EngineGetResult(void* engine, uint64_t task_id, int32_t time_out, const unsigned char** result, uint32_t* result_len, const char* trace_id); // 销毁任务 int EngineTaskDestroy(void* engine, uint64_t task_id, const char* trace_id); // 释放引擎 int EngineFinalize(void* engine); ``` ## ⚙️ 配置说明 配置文件位于 `config/engine_config.json`,支持调整模型路径、线程数、并发限制等参数。 ```json { "models": { "det_model_path": "models/dbnet.onnx", "cls_model_path": "models/angle_net.onnx", "rec_model_path": "models/crnn_lite_lstm.onnx", "keys_path": "models/keys.txt" }, "inference": { "num_threads": 4, "padding": 50 } } ``` ## 📚 更多文档 - [架构设计](docs/ARCHITECTURE.md) - [Windows 迁移指南](docs/WINDOWS_MIGRATION_GUIDE.md)