#author("2024-07-10T12:15:31+08:00","default:Admin","Admin") #author("2024-07-10T12:34:40+08:00","default:Admin","Admin") [[Deep Learning]] &color(red){※前提条件:本情報はUbentu15.04を基づいて説明してる}; * 概要 [#f9f5eff9] PaddleOCRSharp 是一个基于百度飞桨PaddleOCR的开源代码编写的.NET版本OCR工具类库。项目核心组件PaddleOCR.dll,由C++编写,需要用到OpenCV。 Github的项目地址 https://github.com/paddlepaddle/PaddleOCR Gitee地址 https://gitee.com/raoyutian/PaddleOCRSharp * 应用场景 [#t55488fe] PaddleOCRSharp适用于各种需要OCR技术的.NET开发场景,如文档数字化处理、自动识别表单数据、车牌识别等。无论是企业级应用还是个人开发者,PaddleOCRSharp都能提供强大的OCR支持。 * 模型 [#mfb97705] 可以在下面的网址下载到很多官方的模型 https://gitee.com/paddlepaddle/PaddleOCR/blob/dygraph/doc/doc_ch/models_list.md * 注意事项 [#qf6271e0] - &color(red){本项目只能在X64的CPU上编译和使用,只能在avx指令集上的CPU上使用。}; -- Visual studio 的“目标平台”改为“x64” - &color(red){PaddleOCR初次使用时会自动下载模型路径到C:\Users下用户路径,若使用者用户名为中文,将导致实例化失败(不支持中文路径)}; - &color(red){本项目依赖VC++2017X64运行库,请检查机器上是否安装VC++依赖库。2.0.4及以上版本,免安装VC++2017X64运行库}; -- 下载地址1:https://go.microsoft.com/fwlink/?LinkId=746572 -- 下载地址2:https://aka.ms/vs/17/release/vc_redist.x64.exe -- 运行库各版本:https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 DirectPlay 重新注册dll for %i in (%windir%\syswow64\*.dll) do regsvr32.exe /s %i 本项目目前支持以下.NET框架: #codeprettify{{ net35;net40;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net481; netstandard2.0;netcoreapp3.1; net5.0;net6.0;net7.0;net8.0 }} * 功能 [#hf88933e] ** 使用QRCoder生成二维码 [#i4eda1f6] #codeprettify{{ public static Bitmap GetQRCodeImage(string qrCode) { //获取含水印的二维码图像对象 QRCodeGenerator generator = new QRCodeGenerator(); QRCodeData data = generator.CreateQrCode(qrCode, QRCodeGenerator.ECCLevel.M); //qrCode是二维码内容,ECCLevel用于设置容错率 QRCode code = new QRCode(data); //Bitmap icon = new Bitmap("水印文件路径"); //定义二维码中央水印图标,文件路径一定要是绝对路径,如果是Web工程,可用Server.MapPath函数获取绝对路径 //icon:由于这里没水印图片,所以用null Bitmap qrImage = code.GetGraphic(10, Color.Black, Color.White,null, 15, 6, true); //获得含水印的二维码图像信息,如不需要水印可以调用另外函数:Bitmap qrImage = code.GetGraphic(10); return qrImage; } }} *Troubleshooting [#s3368140] ** System.DIINotFoundException: 无法动载DLL PaddleOCR.dll找不到指定的模块。 [#kffd70e4] 需要将下面这些dll(文件在开源作者PaddleOCRSharp\PaddleOCRLib文件夹里面)复制到debug文件夹中: #codeprettify{{ libiomp5md.dll mkldnn.dll mklml.dll opencv_world470.dll paddle_inference.dll PaddleOCR.dll }} 使用过程中遇到提示下面的错误 #codeprettify{{ Unable to load DLL 'PaddleOCR.dll' or one of its dependencies: 动态链接库(DLL)初始化例程失败。 (0x8007045A) at PaddleOCRSharp.PaddleOCREngine.Initialize(String det_infer, String cls_infer, String rec_infer, String keys, OCRParameter parameter) at PaddleOCRSharp.PaddleOCREngine..ctor(OCRModelConfig config, OCRParameter parameter) at TestApp.Form1.buttonInit_Click(Object sender, EventArgs e) in D:\WebBrower\TestApp\Form1.cs:line 82 }} 开发使用的windows Pro版系统可以运行,但是复制程序到其他下面两个系统里面提示上面的错误信息。 - windows Home版 - windows Pro版 尝试过以下的方法,但是无论如何都提示上面的错误信息。 - 开发电脑有独立显卡,更改Paddle的设置使用CPU,但后来发现Paddle默认就是CPU - 怀疑360杀毒软件的问题。但是退出、卸载后,问题依然存在 - 用DependencyWalker等工具查找、并复制缺少的dll等方式 -- 对比两个系统DependencyWalker读入DLL后的差异一样,也有问题, -- 从正常系统复制DLL到问题系统后,再用regsvr32 /s命令注册dll问题依然 开发的电脑和其他两台的区别 - Kernel32.dll的版本不同外,其他都一样 - 硬件安装了独立显卡 - 没有安装360 - 开发电脑安装的VS2022Preview版,HOME版安装VS2022版,PRO版没有安装VS 然后担心系统发布后也不好用,于是安装了下面的系统尝试,结果什么也没有安装,一把成功 #codeprettify{{ Windows Server 2022 Datacenter 版本号 21H2 操作系统内部版本 20348.169 }} 这个服务器系统里面,默认安装了,下面的2015-2022版本一个 - Microsoft Visual C++ 2015-2022 Redistributable(x64) - Microsoft Visual C++ 2015-2022 Redistributable(x86) ** Windows Server系统 PaddleOCR失败解决方案 [#heba0e6e] 使用如下步骤安装windows media player: + 打开“服务器管理器”,点击【添加角色和功能】,然后下一步,直到【功能】界面; + 勾选【媒体基础】、【墨迹和手写服务】,【用户界面和基础结构】下的【桌面体验】 + 单击【安装】按钮;等安装完毕后,根据提示重新启动计算机即可。 &ref(paddleocr_1.jpg); #hr(); コメント: #comment_kcaptcha