sdcb/SimdPaddleOCR
纯 C# PP-OCRv6 推理库:多平台手写 Kernel / GEMM 等算子、超高性能、低内存需求、超高准确率。 自带托管 ONNX 解释器,不依赖 Paddle Inference、ONNX Runtime 或 OpenCV 原生库。
解决的问题
SimdPaddleOCR 是一个面向 PP-OCRv6 的高性能纯 C# 推理库。它允许 .NET 开发者将 OCR(光学字符识别)集成到应用程序中,而无需依赖 Paddle Inference、ONNX Runtime 或 OpenCV 原生库等重量级原生依赖。
工作原理
该库实现了一个托管 ONNX 解释器,并带有手写 SIMD 内核和 GEMM 算子,以确保高性能和低内存占用。它支持多种像素格式(BGR24、RGB24、BGRA32、RGBA32),并处理检测、分类和识别阶段的推理过程。
在硬件加速方面,它通过 AVX/AVX2/AVX-512/VNNI 提供 CPU 支持,并通过 Vulkan 和 Metal(特别针对 .NET 10)提供 GPU 支持,所有实现均为纯 C#,无需嵌入原生二进制文件。
适用人群
需要快速、轻量级、跨平台 OCR 解决方案的 .NET 开发者,尤其是希望简化 Native AOT 部署并避免管理原生二进制依赖复杂性的开发者。
亮点
- 纯 C# 实现:不依赖 ONNX Runtime 或 OpenCV 等原生库。
- 高性能:通过手写 SIMD 内核和 GPU 后端(Vulkan/Metal)进行优化。
- 广泛兼容性:支持 .NET 10 和 .NET Standard 2.0,与 .NET Framework 4.8 兼容。
- 灵活输入:接受原始像素内存,可与 ImageSharp、SkiaSharp、OpenCvSharp 等各种图像库配合使用。
- AOT 友好:完全兼容 Native AOT,便于高效部署。
- 字符级精度:可使用 CTC 对齐估算单个字符的边界框。
相关
- 项目
- 项目
- Dispatch
- 项目
- 项目