当前位置: 首页 > article >正文

【实战指南】使用OpenVINO C# API轻松部署飞桨PP-OCRv4模型

作者:算力魔方创始人/英特尔创新大使刘力

《超4万6千星的开源OCR黑马登场,PaddleOCR凭什么脱颖而出?》收到了读者热烈反响,很多读者提出:如何在C#中部署飞桨PP-OCRv4模型?本文从零开始详细介绍整个过程。

一,什么是PP-OCRv4模型?

PP-OCRv4是PaddleOCR工具库的PP-OCR系列模型中,当前性能最优的一个。它在前代模型(PP-OCRv3)的基础上,针对检测模型和识别模型进行了数据、网络结构、训练策略等多个模块的优化,在多个应用场景中,精度均有大幅提升:

  • 中文场景,相对于PP-OCRv3中文模型提升超4%;

  • 英文数字场景,相比于PP-OCRv3英文模型提升6%;

  • 多语言场景(支持韩语、日语、德语、法语等80种语言),平均准确率提升超8%。

PP-OCRv4是一个两阶段的OCR系统,包含检测模型、方向分类模型和识别模型。在检测和识别之间添加方向分类模型,将不同角度的文本检测框修正为水平检测框,方便识别模型完成行文本识别。

图片

为了适应服务器和边缘端不同场景的部署需求,PP-OCRv4提供两种推理模型权重版本:

  • 边缘端:中英文超轻量PP-OCRv4模型(16.1M) = 检测模型(4.7M) + 识别模型(10.0M) + 方向分类模型(1.4M)。Hmean:62.24%;ACC:70.1%。

  • 服务器端:中英文高精度PP-OCRv4 server模型(199.4M) = 检测模型(110M) + 识别模型(88M) + 方向分类模型(1.4M)。Hmean:82.69%;ACC:84.04%。

PP-OCRv4模型详述链接:

https://github.com/PaddlePaddle/PaddleOCR/blob/main/docs/ppocr/blog/PP-OCRv4_introduction.md

PP-OCRv4模型的卓越性能使其在多个领域具有广泛的应用前景,如文档扫描、文字提取、智能表单填写、物流信息追踪、文档自动化处理、智能服务窗口、文献资料整理等等。本文将介绍使用OpenVINO™工具套件在英特尔® CPU、独立显卡、集成显卡和NPU上优化并部署飞桨PP-OCRv4模型。

PP-OCRv4模型在飞桨AIStudio星河社区范例项目:

https://aistudio.baidu.com/projectdetail/8770259

二,OpenVINO C# API简介

OpenVINO C# API是一个开源的 OpenVINO™ 的 .Net wrapper(包装器)项目,它基于最新的OpenVINO™ Runtime库开发,通过调用官方的OpenVINO™ C API ,允许开发者在 .NET 和 .NET Framework 环境中使用 C# 语言调用AI模型,并实现AI模型在英特尔® CPU、独立显卡、集成显卡、NPU上的推理加速。

OpenVINO™ C# API的GitHub仓:https://github.com/guojin-yan/OpenVINO-CSharp-API

三,搭建开发环境

请参考《C# 中使用OpenVINO™:轻松集成AI模型!》完成OpenVINO C# API开发环境搭建。然后,启动“命令提示符”,用命令创建“ppocrv4_csharp”推理项目:

dotnet new console -o ppocrv4_csharp -f net8.0

图片

然后,进入“ppocrv4_csharp”目录,使用NuGet安装OpenVINO™ C# API,命令如下:

dotnet add package OpenVINO.CSharp.APIdotnet add package OpenVINO.runtime.windotnet add package OpenVINO.CSharp.API.Extensions.OpenCvSharpdotnet add package OpenVINO.CSharp.API.Extensions.PaddleOCR

最后,安装OpenCvSharp 4.9.0版:​​​​​​​

dotnet add package OpenCvSharp4 --version 4.9.0.20240103dotnet add package OpenCvSharp4.runtime.win --version 4.9.0.20240103

完成PP-OCRv4的OpenVINO™ C# API开发环境安装。

四,编写C# PP-OCRv4推理程序

PP-OCRv4的范例程序已开源,请将代码仓克隆到本地:

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

接着,将“在线模型识别”范例代码拷贝到Program.cs中,如下所示:

图片

最后,在VS Code中运行该代码,结果如下所示:

图片

五,总结

使用OpenVINO C# API可以直接读入PP-OCRv4模型(无需转换),并能方便快捷的将PP-OCRv4模型用C#代码部署在英特尔® CPU、独立显卡、集成显卡、NPU等硬件上。

如果你有更好的文章,欢迎投稿!

稿件接收邮箱:nami.liu@pasuntech.com

更多精彩内容请关注“算力魔方®”!


http://www.kler.cn/a/543778.html

相关文章:

  • 【Elasticsearch】分析器的构成
  • 游戏引擎学习第100天
  • anolis os 8.9安装jenkins
  • 如何评估云原生GenAI应用开发中的安全风险(下)
  • 大模型基本原理(二)——ChatGPT的工作原理
  • QT实现多线程的方法
  • 讲解ES6中的变量和对象的解构赋值
  • C++ STL容器之set使用及复现
  • 【Go】01输入输出
  • WPF正则表达式验证输入是否包含中文字母数字,不能是纯符号
  • 基于 SpringBoot的流浪宠物管理系统【免费送】
  • chrome-mojo 概述
  • Linux基础18-C语言篇之运算符Ⅰ【入门级】
  • 深度学习-人脸识别 对用户面部特征进行提取和匹配,实现快速、准确的人脸识别解锁
  • 22、深度学习 - 自学之路 - 隐藏层常用激活使用tanh函数,输出层激活函数使用softmax函数,对MNIST进行升级后的程序展示。
  • 自然语言处理与词嵌入
  • 内网ip网段记录
  • MySQL中类似PostgreSQL中的string_agg函数--GROUP_CONCAT函数的使用
  • 算法——搜索算法:原理、类型与实战应用
  • 如果维护了多种语言版本的文本对应关系,另一种语言只需要将对应文本填入对应位置即可,这种情况应该如何实现自动填入
  • CEF132编译指南 MacOS 篇 - 构建 CEF (六)
  • 纯前端检查是否有发版,并提示用户刷新
  • 基于HTTPS的docker私有仓库搭建
  • 硬件学习笔记--40 电磁兼容试验-4 快速瞬变脉冲群试验介绍
  • Docker 的打包及基本使用
  • Unity学习part1