首页 > 其他分享 >【OpenVINO】 使用 OpenVINO CSharp API 部署 PaddleOCR 项目介绍

【OpenVINO】 使用 OpenVINO CSharp API 部署 PaddleOCR 项目介绍

时间:2024-01-10 12:56:58浏览次数:27  
标签:OpenVINO 项目 PaddleOCR 模型 API CSharp

前言:   在之前的项目中,我们已经使用 OpenVINOTM CSharp API 部署 PaddleOCR 全系列模型,但随着PaddleOCRv4版本发布以及OpenVINO CSharp API版本迭代,上一版本的项目已经不再适用。因此在推出的最新项目中,已经完成了对PaddleOCRv4的匹配,并且采用了最新版本的 OpenVINOTM CSharp API,可以更快的实现在不同平台进行部署,减少使用者在使用时的步骤以及问题。

目录

1. 项目介绍

  该项目主要基于开发的[OpenVINOTM C# API](OpenVINOTM C# API)项目,基于 C# 编程语言在.NET框架下使用OpenVINOTM 部署工具部署百度飞桨下的 PaddleOCR 系列模型,实现图片文字识别、版面分析以及表格识别等功能。

  项目提供了简单的案例以及二次开发的API接口,大家可以根据自己需求进行再次开发与使用。

  项目PaddleOCR-OpenVINO-CSharp链接为:

https://github.com/guojin-yan/PaddleOCR-OpenVINO-CSharp

2. 项目环境

  在本项目中主要使用的是自己开发的OpenVINOTM C# API项目以及OpenCvSharp4项目,所使用NuGet Package程序包以及安装方式如下所示

2.1 NuGet Package

  • OpenVINO.CSharp.API >= 2023.2.0.2
  • OpenVINO.runtime.win >= 2023.2.0.1
  • OpenCvSharp4.Windows >= 4.8.0.20230708
  • OpenCvSharp4.Extensions >= 4.8.0.20230708

2.2 安装方式

  NuGet Package 可以通过Visual Studio 安装或者通过dotnet命令安装,安装方式如下:

dotnet add package OpenVINO.CSharp.API
dotnet add package OpenVINO.runtime.win
dotnet add package OpenCvSharp4.Windows
dotnet add package OpenCvSharp4.Extensions

3. 快速开始

3.1 获取项目源码

git clone https://github.com/guojin-yan/PaddleOCR-OpenVINO-CSharp.git
cd PaddleOCR-OpenVINO-CSharp

3.2 获取预测模型

  项目中所使用的模型均来自于 PaddleOCR ,模型目录可以参考

注意:

  经过测试,OpenVINO目前已经支持PP-OCR 系列模型列表、PP-Structure 系列模型列表中的所有模型,并且支持Paddlepaddle格式的模型,用户在下载后可以直接使用,但是表格识别模型ppstructure_mobile_v2.0_SLANet需要进行转换才可以使用,需要固定模行输入形状为[1, 3, 488, 488],转换方式keyi 参考该文章:Paddle2ONNX.

  为了方便大家快速使用,此处提供了模型的快速下载方式:

cd model
./ocr_model_download.sh
./stru_model_download.sh

  下载后模型文件目录结构为:

model
   ├──── paddle
            ├──── ch_ppocr_mobile_v2.0_cls_infer
            ├──── ch_PP-OCRv4_det_infer
            ├──── ch_PP-OCRv4_rec_infer
            ├──── ch_ppstructure_mobile_v2.0_SLANet_infer
            ├──── en_ppstructure_mobile_v2.0_SLANet_infer
            ├──── picodet_lcnet_x1_0_fgd_layout_cdla_infer

image

3.3 OCR识别

  可以直接通过Visual Studio直接运行该项目或者通过dotnet run指令运行该项目,dotnet run命令如下:

cd PaddleOCR-OpenVINO-CSharp/sample
dotnet run ./../../

  程序运行后输出如下图所示:

image
image

4. Contact

  如果您准备使用OpenVINO部署PaddleOCR模型,欢迎参考本案例。在使用中有任何问题,可以通过以下方式与我联系。

image

标签:OpenVINO,项目,PaddleOCR,模型,API,CSharp
From: https://www.cnblogs.com/guojin-blogs/p/17956244

相关文章

  • 2024 年的 API 管理新动向
    本文译自:WhatWillBetheAPIManagementTrendsfor2024?原文链接:https://thenewstack.io/what-will-be-the-api-management-trends-for-2024/原文作者:KennHussey预计到2030年末,API管理 市场的规模将增长六倍,这一增长主要受到一个核心理念的推动:API完全控制了数字世界。随......
  • Gateway API 实践之(一)FSM Gateway 中的故障注入策略
    在之前的文章中,我们快速体验了FSMGateway-一个开源的K8sGatewayAPI的实现。在即将发布的FSM1.2中,FSMGateway将会带来更多的功能:故障注入策略限流策略会话保持策略负载均衡算法熔断策略访问控制策略健康检查策略TLS上游策略...后面我们会推出系列的文章来介绍这些功......
  • API调试怎么做?Apipost快速上手
    前言Apipost是一款支持RESTfulAPI、SOAPAPI、GraphQLAPI等多种API类型,支持HTTPS、WebSocket、gRPC多种通信协议的API调试工具。除此之外,Apipost还提供了自动化测试、团队协作、等多种功能。这些丰富的功能简化了工作流程,提高了研发效率,这也让Apipost成为开发人员首选的API......
  • 免费IDEA插件推荐:Apipost-Helper
    IDEA插件市场中的API调试插件不是收费(FastRequest)就是不好用(apidoc、apidocx等等)今天给大家介绍一款国产的API调试插件:Apipost-Helper,完全免费且好看好用!这款插件由Apipost团队开发的,其官方介绍是:用于IDEA项目快速生成API文档,快速查询接口、接口代码功能,并支持在IDEA中进行API调......
  • 淘宝/天猫商品详情实时数据API技术实现
    随着电子商务的蓬勃发展,对于电商平台的商家而言,实时获取商品数据变得至关重要。通过API接口,可以轻松地从电商平台获取这些数据。本文将详细介绍如何使用淘宝/天猫提供的API接口实现商品详情数据的实时获取,并给出具体的代码示例。一、API接口介绍淘宝/天猫提供了丰富的API接口,用于获......
  • EasyCVR如何通过调用API接口查询和下载设备录像?
    EasyCVR是基于各种IP流媒体协议传输的视频汇聚和融合管理平台,采用了开放式的网络结构,支持高清视频的接入和传输、分发。在录像与回看功能方面,可视化监控云平台EasyCVR不仅支持录像的检索与回看,还支持下载、分享,包括下载云端录像和设备录像。今天我们就来介绍下,EasyCVR视频监控系统......
  • Qt读取文件对比:每次获取自定义的长度和使用系统的API,耗时对比
    0.前言在编程过程中,经常遇到文件读写操作,太频繁了。每次也都写的不一样。突发奇想,想测试下几种不同的读取文件的效率。测试以下三种方式读取文件效率:自定义读取文件耗时使用QFile类API读取文件耗时使用QTextStream类API读取文件耗时在测试前,说一下使用到的知识点。1.Qt......
  • 百度地图JavaScript API v2.0创建地图
    接口文档:https://lbsyun.baidu.com/index.php?title=jspopular3.0https://lbs.baidu.com/faq/api?title=webapi地图创建代码:<!DOCTYPEhtml><html><head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> &......
  • 【C++】STL 容器 - map 关联容器 ④ ( map 容器常用 api 操作 | 查找指定元素 | 获取
    文章目录一、查找指定元素-std::map#find()函数1、函数原型简介2、代码示例二、获取元素个数-std::map#count()函数1、函数原型简介2、代码示例三、获取大于等于指定键的元素-std::map#lower_bound函数1、函数原型简介2、代码示例四、获取大于指定键的元素-std::map#up......
  • JavaScript WebAPI(三)(详解)
    这次介绍一下webAPI中的一些知识:回调函数回调函数是指如果将函数A做为参数传递给函数B时,我们称函数A为回调函数例如://立即执行函数中传递的函数是一个回调函数(function(){console.log("我是回调函数")})();//监听事件中传递的参数是一个回调函数constdiv=document......