PaddleOCRSharp 是一个.NET版本OCR可离线使用类库。项目核心组件PaddleOCR.dll目前已经支持C\C++、.NET、Python、Golang、Rust、java等众多开发语言的直接API接口调用。项目包含文本识别、文本检测、表格识别功能。本项目做了大量优化,提高了识别率和推理性能。包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持中英文、纯英文以及多种语言文本检测识别。
PaddleOCRSharp封装极其简化,实际调用仅几行代码,极大的方便了中下游开发者的使用和降低了PaddleOCR的使用入门级别,同时提供不同的.NET框架使用,方便各个行业应用开发与部署。Nuget包即装即用,可以离线部署,不需要网络就可以识别的高精度中英文OCR。
本项目支持官方所有公开的通用OCR模型,如:PPOCRV2、PPOCRV3、PPOCRV4、PP-OCRv4_server、PP-OCRv4_server_doc(1.5万字符字典模型)。最新版默认使用中英文V4模型(ch_PP-OCRv4):
★windows系统支持:win7SP1、win10、win11、winserver2012R2、winserver2016、winserver2019、winserver2022等。免费版支持在x86的CPU上使用,CPU指令集需要包含AVX指令集。
★windows下版本有免费开源版、CPU加速版(付费版)、GPU加速版(付费版)
★linux系统支持(付费版):统信UOS、麒麟、ubuntu、CentOS8等绿色离线部署,支持docker部署。支持国产CPU如华为鲲鹏、飞腾、海光、兆芯等CPU。
本文主要介绍PaddleOCRSharp的常见问题与解决方案,共广大开发者们遇到问题参考。
Q: VS发布后部分dll没有复制到发布目录?
VS最新版已经修复该问题。升级VS到最新版即可。
Q: 找不到依赖项:PaddleOCR.dll?
PaddleOCRSharp从4.4.0版本开始,底层运行时依赖包独立为一个Paddle.Runtime.win_x64 包,nuget安装需要安装Paddle.Runtime.win_x64包。
Paddle.Runtime.win_x64为通用运行时包,也可以在C++项目中安装使用Paddle.Runtime.win_x64 包。
PaddleClasSharp和PaddleSegSharp,从4.4.0版本开始,都依赖Paddle.Runtime.win_x64 包。
如果安装了仍有提示,建议卸载旧版并删除旧版的文件,重新安装新版nuget包。
Q: PaddleOCRSharp是否支持linux?
PaddleOCRSharp从4.5.0版本开始,支持跨平台linux。支持统信UOS、麒麟、ubuntu、CentOS8系统。支持x86架构和ARM64架构的的CPU。跨平台linux需要付费获取相关运行.so文件
Q: PaddleOCRSharp速度不够快、CPU利用率高?
PaddleOCRSharp基于Paddle飞桨推理框架,已经在优化了大量代码。如果仍然不满足要求,可以购买GPU版本的SDK,或者CPU加速版(换其他推理框架)的SDK,所有收费版本的API接口不变,PaddleOCRSharp文件通用。可以联系QQ277784829购买。
Q: win7与Windows server部署相关问题?
.net6、net7、net core3.1部署,环境依赖参见微软的[在Windows上安装.NET](https://learn.microsoft.com/zh-cn/dotnet/core/install/windows?tabs=net60)
Q: 是否支持多线程调用?
支持多线程排队。OCR内部已经有多线程预测机制。
Q: 项目是否支持x86?(32位操作系统)
本项目只支持X64位程序;实测32位库速度相当慢。如确实需要,请构建64位其他服务模式或者web模式,然后32位程序调用。
Q: Web IIS部署问题
IIS部署情况下需要删除 web.config文件中 hostingModel="inprocess"这个配置。
使用IIS调试,需要设置“进程外”模式,IIS需要设置为64位
Q: Web IIS部署遇到错误
Initialize err:--------------------------------------C++ Traceback (most recent call last):--------------------------------------Not support stack backtrace yet.----------------------Error Message Summary:----------------------PreconditionNotMetError: The third-party dynamic library (mklml.dll) that Paddle depends on is not configured correctly. (error code is 126) Suggestions: 1. Check if the third-party dynamic library (e.g. CUDA, CUDNN) is installed correctly and its version is matched with paddlepaddle you installed. 2. Configure third-party dynamic library environment variables as follows: - Linux: set LD_LIBRARY_PATH by `export LD_LIBRARY_PATH=...` - Windows: set PATH by `set PATH=XXX; (at ...\paddle\phi\backends\dynload\dynamic_loader.cc:312)
IIS部署情况下需要删除 web.config文件中 hostingModel="inprocess"这个配置。
使用IIS调试,需要设置“进程外”模式
Q:找不到依赖项或无法加载依赖项:PaddleOCR.dll
请使用CPU工具检查当前CPU是否支持。
如果支持,则检查对应文件是否存在。
如果存在,则调试检查程序加载dll的目录是否与PaddleOCR.dll目录一致。
默认使用:
string root = AppDomain.CurrentDomain.BaseDirectory;#if NET461_OR_GREATER || NETCOREAPP || NET6_0_OR_GREATER root = AppContext.BaseDirectory;#endif
Q: Windows server2012R2 操作系统上使用问题
进QQ群下载补丁:PaddleOCRSharp免安装VC++2017依赖文件_win server2012
Q: Windows server2008R2 操作系统上使用问题
需要安装VC++2017运行时,可以安装vc++2015-2019运行时合集
Q: Windows7 操作系统上使用问题
需要安装VC++2017运行时,可以安装vc++2015-2019运行时合集