开源 GPU OCR:不依赖 CUDA,C# 和 Web 都能用的 lw.PPOCR.Vulkan

做 OCR 项目,除了识别效果,大家往往还关心几个问题:

部署麻不麻烦?能不能离线运行?C# 如何调用?有没有现成的界面和 HTTP 服务?

这次,给大家介绍一个我持续开发的开源项目:lw.PPOCR.Vulkan。

它使用 C++ 和 Vulkan Compute 实现 PP-OCR GPU 推理,提供完整 OCR、C# WinForms Demo,以及 HTTP/Web 服务。模型、字典和示例随部署包提供,方便先体验,再接入自己的项目。

项目地址:lw.PPOCR.Vulkan(github.com/lxw112190/l...

一、这个项目有什么特点?

lw.PPOCR.Vulkan 不依赖 OpenCV DNN、ONNX Runtime 或 CUDA 运行时。

它在原生 C++ 中读取项目支持的 ONNX 模型,组织计算任务,再通过 Vulkan Compute 执行网络推理。

目前支持固定的 PP-OCRv6 Tiny、Small、Medium 三套模型,默认采用 FP32 网络计算。

对于使用预编译包的用户,不需要安装 Python、Visual Studio、CUDA 或 Vulkan SDK。但目标电脑仍需安装兼容的显卡驱动,GPU 也必须满足项目的能力要求。

这里需要说明:不依赖 CUDA,不等于所有显卡都能运行。 当前已在 Windows 10 的 AMD 集显和 NVIDIA RTX 4060 Laptop GPU 上完成实体测试,其他设备需要结合驱动和实际能力验证。

二、完整 OCR 和框选识别,都能用

项目提供两种识别方式。

完整 OCR 适合直接输入整张图片,依次完成文字检测、可选方向分类和文字识别,输出文字、四点坐标、置信度及分阶段耗时。

仅识别 适合已经裁剪好的文字区域,只执行文字识别,不重复运行检测网络。

如果你的程序已经知道文字在哪里,例如固定区域截图、相机采集区域,或者用户手动框选,就可以使用仅识别接口,避免不必要的检测开销。

项目定位是核心 OCR 能力,不包含 PDF、表格结构或版面解析,也不是可以加载任意模型的通用 ONNX 引擎。

三、C# 开发者可以先用 WinForms Demo 体验

Windows 部署包包含现成的 C# WinForms 测试程序。

完整解压后,运行 Demo,即可选择 GPU 和模型,初始化后进行整图识别。界面可以显示检测框、识别文字、JSON 结果和耗时,也支持鼠标框选区域后仅识别。

项目同时提供 C# 示例源码和稳定 C ABI,方便把 OCR 能力接入现有应用。

对于 C# 开发者,可以先通过 Demo 验证自己的图片和目标显卡,再参考调用示例完成集成,不必一开始就搭建完整开发环境。

四、不想直接调用 DLL?可以使用 HTTP 服务

除了原生接口,项目还提供 HTTP 服务和浏览器测试页面。

启动服务后,打开网页即可上传图片,查看文字、检测框和耗时。其他程序也可以通过 HTTP 接口调用,无需直接处理原生 DLL。

服务支持二进制图片、JSON/Base64 图片、仅识别批量请求,并提供 API Key、有界请求队列、等待超时,以及运行和访问日志。

默认只监听本机。需要开放给其他电脑访问时,应同时配置认证和网络访问限制,不建议把未认证的服务直接暴露到公网。

五、实际速度怎么样?

我们对最新本机代码进行了一轮完整 OCR 测试。

测试环境为 Windows 10、RTX 4060 Laptop GPU;使用 100 张带标注的生成图片,共 614 行、20,125 个字符。方向分类开启,检测长边上限为 960,网络采用默认 FP32。

全数据预热后,每个模型测量三轮,结果如下:

模型 平均完整 OCR 耗时 字符准确率
Tiny 23.24 ms/张 95.12%
Small 36.65 ms/张 97.72%
Medium 74.69 ms/张 98.80%

耗时包含原生完整 OCR 调用及结果 JSON 取回、解析,不包含图片文件解码、模型初始化、HTTP 或界面开销。

字符准确率采用 1−字符错误率(CER),计入错字、漏字和多字,不代表每张图片都能完全识别正确。

这些数据来自生成图片和单台设备,不是所有真实场景的性能承诺。 首次调用、新尺寸图片、显卡空闲降频和不同驱动,都可能影响耗时。建议用自己的图片测试后,再决定选择哪套模型。

六、优化的不只是网络计算

OCR 的总耗时,还包括缩放、归一化、裁剪、数据搬运和结果处理。

在设备能力满足时,项目会自动启用 GPU 图像前处理和透视裁剪,共享原图,减少重复搬运。能力不足时,图像处理保留在 CPU,网络仍通过 Vulkan 推理。

最近的优化还包括执行计划缓存、工作区复用及部分计算路径优化。当前版本号为 v1.0.1,这一轮维护重点改善大小图交替识别时的 REC 执行计划复用。

默认路径保持 FP32,不通过降低精度来宣传提速。缓存也有内存成本,因此项目会同时记录速度、资源占用和正确性,而不只展示一个最快的数字。

七、如何下载体验?

源码和文档:GitHub 项目主页(github.com/lxw112190/l...

部署包入口:GitHub Releases(github.com/lxw112190/l...

Windows 用户完整解压部署包后,可以直接运行 WinForms Demo,或按包内说明启动 HTTP 服务。

项目提供 Windows x64 和 Linux x64 构建与部署支持。Windows 已有上述实体 GPU 测试;Linux 软件 Vulkan CI 验证不等于 Linux 实体显卡已经全部验证。

C# Demo 另需兼容的 .NET Framework 4.0 或更高版本。没有兼容 Vulkan 设备时,程序会明确报错,不会自动切换到 CPU OCR。

项目采用 Apache-2.0 开源,使用及分发时请遵守项目和第三方组件的许可证要求。

联系与支持

欢迎用自己的图片和显卡测试,也欢迎提交问题、建议和改进代码。

如果项目对你有帮助,欢迎 Star、转发,或支持项目维护。

让本地 GPU OCR 更容易体验,也更容易接入实际项目。

相关推荐
珠海西格电力31 分钟前
AI预测与优化:基于机器学习的负荷预测与调度策略
大数据·人工智能·机器学习·信息可视化·架构·能源
沉下心来学鲁班33 分钟前
DeepAgents 记忆机制:让 AI Agent 拥有“跨对话“的记忆
服务器·人工智能·python
龙腾AI白云39 分钟前
数字孪生驱动大模型工业知识库:为具身机器人植入领域专业经验
数据库·人工智能·机器学习·知识图谱
大飞记Python1 小时前
MiMo-V2.6-Distill-Qwen-9B 本地部署实测:8GB内存可跑,但推理能力让人失望
人工智能·ai·ai编程
在所不辞兄1 小时前
分层PINN提升多物理场一致性
人工智能·神经网络·算法·机器学习·工程仿真
林伽一1 小时前
从2048并发会话到501B开源模型,算力账本开始按“单位卡产出“计价|2026年10月07日
人工智能·安全·ai·开源
桃西西呀1 小时前
Spring AI Alibaba 之一:整体概览与分层架构,看清它在 Spring AI 之上到底加了什么
人工智能·spring·llm
winfredzhang1 小时前
用 Chrome 插件 + 局域网 Qwen2.5-VL 打造视频截屏 OCR 工具
人工智能·chrome·ocr·api·plugin
做cv的小昊1 小时前
【大模型算法自学笔记01】NLP基础知识(1.1 自注意力)
人工智能·笔记·算法·自然语言处理·大模型·llm