我把 PP-OCRv6 做成了一个绿色版 C++ HTTP OCR 服务:解压即用,C#、Java、Python 都能调 目录说明效果它解决了什么问题项目特点接口设计绿色部署包为什么选择 OpenCV DNN适合哪些人目前验证效果总结下载说明最近一直在整理 OCR 推理项目这次做了一个更适合实际部署和客户集成的版本lw.OpenCVDNN.PPOCR.HttpServer它是一个基于 C 开发的 PP-OCR HTTP 服务底层使用 OpenCV 5 DNN 做 OCR 推理默认集成 PP-OCRv6 tiny 模型。程序提供 HTTP 接口客户端只需要把图片转成 base64 上传就可以拿到识别文本、坐标、置信度和 OCR 耗时。更重要的是这次做成了绿色部署包解压即可运行不需要安装复杂环境。效果它解决了什么问题很多 OCR 项目在演示时很好用但真正交付给客户时经常会遇到这些问题环境依赖复杂需要安装 Python、CUDA、ONNX Runtime、各种运行库新手很容易卡在环境配置上。调用语言受限如果只提供 C DLLC# 可以调但 Java、Python、Web 系统接入还要再封装一层。部署不够友好客户希望拿到一个文件夹双击或者注册服务就能跑而不是重新编译源码。不方便测试接口服务启动后如果没有测试页面还要额外写 Postman、Python 脚本去验证。所以这次我把 OCR 推理能力封装成了一个 HTTP 服务。项目特点lw.OpenCVDNN.PPOCR.HttpServer主要包含这些能力C 原生 HTTP 服务使用 OpenCV 5 DNN 推理默认 PP-OCRv6 tiny 模型CPU 推理不依赖 GPUbase64 图片上传返回识别文本、坐标、置信度、耗时内置 HTML 测试页面支持 Windows 服务支持开机自启动spdlog 日志记录绿色部署包带 C 运行时整个服务启动后浏览器访问http://127.0.0.1:8080/就可以打开测试页面选择图片点击识别页面会显示 OCR 结果并自动绘制文本框。接口设计OCR 接口非常简单POST /api/ocr Content-Type: application/json请求内容{ imageBase64: data:image/jpeg;base64,... }返回内容{ code: 0, msg: ocr success, elapsed_ms: 228, image_width: 1280, image_height: 720, results: [ { text: 识别文本, score: 0.99, x1: 10, y1: 20, x2: 200, y2: 20, x3: 200, y3: 50, x4: 10, y4: 50 } ] }这样的接口形式对接非常方便。C# 可以调Java 可以调Python 可以调前端也可以直接调。绿色部署包这次整理后的部署包结构大致如下lw.OpenCVDNN.PPOCR.HttpServer ├─ lw.OpenCVDNN.PPOCR.HttpServer.exe ├─ lw.OpenCVDNN.PPOCRSharp.dll ├─ opencv_world500.dll ├─ C运行时DLL ├─ inference ├─ www ├─ scripts ├─ README.md ├─ 使用说明.md └─ 绿色部署包说明.md其中inference目录放模型文件www目录放测试页面scripts目录放启动和服务安装脚本。控制台运行lw.OpenCVDNN.PPOCR.HttpServer.exe --port 8080安装成 Windows 服务scripts\install_service.bat卸载服务scripts\uninstall_service.bat也可以指定端口scripts\install_service.bat 18080这种方式比较适合客户现场部署也适合把 OCR 能力挂到业务系统旁边作为独立服务。为什么选择 OpenCV DNN这版主要目标不是追求极限性能而是追求部署简单、依赖清晰、方便学习。OpenCV DNN 的优点是依赖少Windows 部署方便C 集成简单不需要额外推理框架运行环境适合 CPU 场景对新手更友好对于很多普通 OCR 业务比如票据、证件、表格截图、软件截图、拍照识别等CPU 版本已经可以满足不少场景。如果后续追求更高性能还可以继续扩展 ONNX Runtime、OpenVINO、TensorRT 等版本。适合哪些人这个项目比较适合想学习 PP-OCR C 部署的开发者想把 OCR 封装成 HTTP 服务的开发者C#、Java、Python 项目需要快速接 OCR 的团队不想折腾 Python 环境的 Windows 用户需要绿色部署、客户现场交付的项目想研究 OpenCV 5 DNN 推理的朋友目前验证效果当前绿色包已经完成实际测试/health 正常 /api/ocr 测试成功 PP-OCRv6 tiny 模型 返回 22 个识别结果 OCR 耗时约 200ms实际速度会受到图片大小、CPU 性能、模型选择、检测参数等影响。默认使用的是 PP-OCRv6 tiny如果需要更高精度也可以切换到 small 模型。总结这次的lw.OpenCVDNN.PPOCR.HttpServer重点不是做一个“大而全”的 OCR 平台而是做一个简单、清晰、可部署、方便集成的 OCR 服务。它的定位很明确一个可以直接交付、可以快速测试、可以被各种语言调用的 C OCR HTTP 服务。对于想学习 OCR 工程化部署的朋友也可以从这个项目开始看清楚一个 OCR 服务从模型、推理、接口、日志、网页测试到 Windows 服务部署的完整流程。下载方式一通过网盘分享的文件lw.OpenCVDNN.PPOCR.HttpServer 链接: https://pan.baidu.com/s/1n1p0xn_Ss_BRLwN0DN3oFg 提取码: 9ii4方式二服务下载