[C#]winform部署openvino调用padleocr模型

发布时间:2024年01月19日

【官方框架地址】

https://github.com/PaddlePaddle/PaddleOCR
【算法介绍】

OpenVINO和PaddleOCR都是用于计算机视觉应用的工具,但它们有不同的特点和用途。OpenVINO是一个由Intel开发的开源工具套件,主要用于加速深度学习推理,而PaddleOCR是PaddlePaddle框架的一个组件,主要用于光学字符识别(OCR)。

下面将介绍如何使用OpenVINO调用PaddleOCR,主要分为以下步骤:

  1. 安装OpenVINO和PaddleOCR:首先需要安装OpenVINO和PaddleOCR。可以从它们的官方网站上下载并按照说明进行安装。
  2. 准备数据:需要准备一组训练好的模型和输入数据。这些模型应该是在PaddleOCR上训练的,并且是ONNX格式。输入数据可以是图像或视频。
  3. 转换模型:使用OpenVINO的Model Optimizer工具将ONNX格式的模型转换为OpenVINO可以使用的格式。这一步将生成一个IR(Intermediate Representation)文件和一个XML文件。
  4. 配置推理引擎:创建一个XML文件来配置推理引擎。这个文件描述了如何加载模型,以及如何处理输入和输出数据。
  5. 调用推理引擎:使用OpenVINO的推理引擎来执行推理。推理引擎将从配置文件中读取模型和输入数据,并执行推理,然后返回结果。
  6. 处理结果:最后,需要对推理结果进行处理,例如将文本转换为字符串,或者将结果可视化。

需要注意的是,由于OpenVINO和PaddleOCR都是深度学习工具,因此需要一定的计算机视觉和深度学习知识才能正确使用它们。此外,由于它们都是大型工具套件,因此安装和配置可能需要一些时间和经验。

【效果展示】


【实现部分代码】

 string detectionModelDir = Application.StartupPath + "\\weights\\ch_PP-OCRv4_det_infer";
                string classificationModelDir = Application.StartupPath + "\\weights\\ch_ppocr_mobile_v2.0_cls_infer";
                string recognitionModelDir = Application.StartupPath + "\\weights\\ch_PP-OCRv4_rec_infer";
                string labelFilePath = Application.StartupPath + "\\weights\\ppocr_keys_v1.txt";
                FullOcrModel model = FullOcrModel.FromDirectory(detectionModelDir, classificationModelDir, recognitionModelDir, labelFilePath, ModelVersion.V4);

                PaddleOcrAll all = new PaddleOcrAll(model);
                all.AllowRotateDetection = true; /* 允许识别有角度的文字 */
                all.Enable180Classification = false; /* 允许识别旋转角度大于90度的文字 */

                Stopwatch sw = new Stopwatch();
                sw.Start();
                PaddleOcrResult result = all.Run(src);
                sw.Stop();
                Console.WriteLine("总耗时是:" + sw.Elapsed.TotalSeconds + "秒");
                tb_res.Text = result.Text;
                foreach (PaddleOcrResultRegion item in result.Regions)
                {
                    Cv2.Rectangle(src, item.Rect.BoundingRect(), new Scalar(255, 0, 0));
                }
                pictureBox2.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(src);


【视频演示】

https://www.bilibili.com/video/BV1iK4y1q7kk/?vd_source=989ae2b903ea1b5acebbe2c4c4a635ee
【源码下载】
【测试环境】

vs2019,netframework4.7.2
?

文章来源:https://blog.csdn.net/FL1623863129/article/details/135707311
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。