效果特别好的百度OCR识别引擎——百度飞桨PaddleOCR
可离线部署
PaddleOCR精度高,
文字在旋转的状态下的精度高
识别文字
识别表格
封装
把它封装了一下,代码开源Github:https://github.com/sdcb/paddlesharp,
可以直接安装NuGet包使用,
支持.NET Framework/.NET Core、支持Linux、支持GPU调用,
支持14种语言模型的自动下载
怎么封装的
基于C API使用起来不方便,但上层不是有咱们.NET/C#嘛,我相信再不方便的API,只要用上了C#/.NET去封装它,都能做得很方便地去调用。
做出了这样的一个架构(这个架构本质是模仿了OpenCvSharp4)
最底层是C API的NuGet封装包,这个用PInvoke来封装C API,它的NuGet包名字是:Sdcb.PaddleInference
与底层配套的包叫native binding包,提供了两个,一个是基于CPU的Sdcb.PaddleInference.runtime.win64.mkl,一个是基于GPU的Sdcb.PaddleInference.runtime.win64.cuda11_cudnn8_tr7。
值得注意的是,native binding包与低层包没有任何依赖关系。
再往上层是应用包,应用包依赖于低层的推理库包Sdcb.PaddleInference,文字识别OCR就是Paddle推理库Inference的一个应用,因此提供了一个Sdcb.PaddleOCR,封装了PaddleDetector、PaddleClassificator、PaddleRecognizor以及PaddleOcrAll用来做串联
最往上层走就是扩展包,我提供了一个用于帮助用户自动下载OCR模型的Sdcb.PaddleOCR.KnownModels,注意这个扩展包与上述包没有任何引用关系。