.NET版OCR紧随PP-OCRv3重磅发布

.net版OCR地址PaddleOCRSharp:

 https://gitee.com/raoyutian/paddle-ocrsharp

PaddleOCRSharp是一个基于PaddleOCR的C++代码修改并封装的.NET的工具类库。包含文本识别、文本检测、基于文本检测结果的统计分析的表格识别功能,同时针对小图识别不准的情况下,做了优化,提高识别准确率。包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测。项目封装极其简化,实际调用仅几行代码,极大的方便了中下游开发者的使用和降低了PaddleOCR的使用入门级别,同时提供不同的.NET框架使用,方便各个行业应用开发与部署。Nuget包即装即用,可以离线部署,不需要网络就可以识别的高精度中英文OCR。

20000+Star超轻量OCR系统PP-OCRv3效果再提升5% - 11%

OCR方向的工程师,之前一定听说过PaddleOCR这个项目。

  • 项目累计Star数量已超过20000+;

  • 频频登上GitHub Trending和Paperswithcode 日榜月榜第一;

  • 在Medium与Papers withCode 联合评选的《Top Trending Libraries of 2021》,从百万量级项目中脱颖而出,荣登Top10!

  • 在《2021中国开源年度报告》中被评为活跃度Top5!

本次PaddleOCR最新发版,带来四大重磅升级,包括:

  • 发布超轻量OCR系统PP-OCRv3:中英文、纯英文以及多语言场景精度再提升5% - 11%!

  • 发布半自动标注工具PPOCRLabelv2:新增表格文字图像、图像关键信息抽取任务和不规则文字图像的标注功能。

  • 发布OCR产业落地工具集:打通22种训练部署软硬件环境与方式,覆盖企业90%的训练部署环境需求。

.NET使用示例

安装:

PM> Install-Package PaddleOCRSharp -Version 2.0.0
OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";if (ofd.ShowDialog() != DialogResult.OK) return;var imagebyte = File.ReadAllBytes(ofd.FileName);Bitmap bitmap = new Bitmap(new MemoryStream(imagebyte));OCRModelConfig config = null;OCRParameter oCRParameter = new  OCRParameter ();OCRResult ocrResult = new OCRResult();//建议程序全局初始化一次即可,不必每次识别都初始化,容易报错。PaddleOCREngine engine = new PaddleOCREngine(config, oCRParameter);{ocrResult = engine.DetectText(bitmap );}if (ocrResult != null){MessageBox.Show(ocrResult.Text,"识别结果");}//不再用OCR时,请把PaddleOCREngine释放

本项目目前支持以下NET框架:

net35;net40;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;
netstandard2.0;netcoreapp3.1;
net5.0;net6.0;

PP-OCRv3优化策略解读

PP-OCR是PaddleOCR团队自研的超轻量OCR系统,面向OCR产业应用,权衡精度与速度。近期,PaddleOCR团队针对PP-OCRv2的检测模块和识别模块,进行共计9个方面的升级,打造出一款全新的、效果更优的超轻量OCR系统:PP-OCRv3。

从效果上看,速度可比情况下,多种场景精度均有大幅提升

  • 中文场景,相比PP-OCRv2,中文模型提升超5%;

  • 英文数字场景,相比PP-OCRv2,英文数字模型提升11%;

  • 多语言场景,优化80+语种识别效果,平均准确率提升超5%。

383bd660e088f3dba3eac3df909a6e43.png

全新升级的PP-OCRv3的整体框架图(粉色框中为PP-OCRv3新增策略)如下图。检测模块仍基于DB算法优化;而识别模块不再采用CRNN,更新为IJCAI 2022最新收录的文本识别算法SVTR (论文名称:SVTR: Scene Text Recognition with a SingleVisual Model),并对其进行产业适配。

d18f271f9838faa23b592ef199407b57.png

具体的优化策略包括以下几点:

1.检测模块

  • LK-PAN:大感受野的PAN结构

  • DML:教师模型互学习策略

  • RSE-FPN:残差注意力机制的FPN结构

2.识别模块

  • SVTR_LCNet:轻量级文本识别网络

  • GTC:Attention指导CTC训练策略

  • TextConAug:挖掘文字上下文信息的数据增广策略

  • TextRotNet:自监督的预训练模型

  • UDML:联合互学习策略

  • UIM:无标注数据挖掘方案

PaddleOCRSharp项目地址:

GitHub:https://github.com/raoyutian/PaddleOCRSharp

Gitee:https://gitee.com/raoyutian/paddle-ocrsharp

PaddleOCRSharp最新版本v2.0.0是基于PaddleOCR的最新版V2.5的C++代码修改而成,并适配PP-OCRv3。

关注【明月心技术学堂】公众号

获取更多技术内容~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《零基础看得懂的C++入门教程 》——(5) 容我套个娃 循环

一、学习目标 了解循环的使用方法 目录 预备第一篇,使用软件介绍在这一篇,C与C使用的软件是一样的,查看这篇即可:《软件介绍》 想了解编译原理和学习方法点这篇,学习方法和一些原理C与C都是相同的《脱离学习误区》 …

Android两个注意事项.深入了解Intent和IntentFilter(两)

深入理解Intent和IntentFiler(二)转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 在上一篇文章中,我们比較具体学习了"Intent"的相关知识,如今将学习怎样设置Intent对象的这些属性以及怎样使用他们来启动组件。…

Oracle常用sql语句(一)

Sql的分类DDL操作数据库表列等表基本的操作主键索引视图 常用数据类型字符串类型数字类型日期类型LOB类型LONG类型 数据转换character datenumbercharacter通用函数条件表达式Sql的分类 DDL (Data Definition Language):数据定义语言&#xf…

ASP.NET Web API 实现客户端Basic(基本)认证 之简单实现

优点是逻辑简单明了、设置简单。 缺点显而易见,即使是BASE64后也是可见的明文,很容易被破解、非法利用,使用HTTPS是一个解决方案。 还有就是HTTP是无状态的,同一客户端每次都需要验证。 实现: 客户端在用户输入用户名及…

WPF|分享一个登录界面设计

分享一个登录界面,先看效果图:准备文中使用到了一些图标:我们可以从 iconfont[1]免费下载:代码简单说明请随手创建一个WPF项目(.NET Framework、.NET 5\6\7皆可),使用tree /f命令看看最终的文件…

《零基础看得懂的C++入门教程 》——(6)自己动手写个函数

一、学习目标 了解C语言的自定义函数的使用方法了解C语言自定义函数的传参了解C语言自定义函数的返回值 目录 预备第一篇,使用软件介绍在这一篇,C与C使用的软件是一样的,查看这篇即可:《软件介绍》 想了解编译原理和学习方法点…

【计算机图形学】实验:C#语言采用GDI+定义笔刷并填充图形完整实验操作流程

一、实验目的: 熟练掌握在.net环境下对笔刷的定义,并可用定义好的笔刷填充多边形。 二、实验准备: 学习在.net环境下GDI+所提供的5种笔刷类型,掌握定义笔刷的方法和填充图形的函数,如FillRectange ( )、FillEllipse ( )等。 三、实验内容: 在.net环境中设计一个窗体…

管道模式 pipe

先放一个图,预则立嘛 PipelinePattern.rar 这里是 不完整的码转载于:https://www.cnblogs.com/ganmk--jy/p/5525897.html

《零基础看得懂的C++入门教程 》——(7)小数组玩起来

一、学习目标 了解数组的使用方法了解一维数组的使用方法了解一维数组与循环的使用方法 目录 预备第一篇,使用软件介绍在这一篇,C与C使用的软件是一样的,查看这篇即可:《软件介绍》 想了解编译原理和学习方法点这篇&#xff0c…

SSO 方案演进

1背景介绍 随着业务与技术的发展,现今比以往任何时候都更需要单点登录 SSO 身份验证。现在几乎每个网站都需要某种形式的身份验证才能访问其功能和内容。随着网站和服务数量的增加,集中登录系统已成为一种必要。在本文中,我们将讨论下 …

《零基础看得懂的C++入门教程 》——(8)搞定二维数组与循环嵌套

一、学习目标 了解二维数组的使用方法了解循环嵌套的使用方法 目录 预备第一篇,使用软件介绍在这一篇,C与C使用的软件是一样的,查看这篇即可:《软件介绍》 想了解编译原理和学习方法点这篇,学习方法和一些原理C与C都…

常见的Ubuntu命令30条(一)

Ubuntu命令是指在Ubuntu操作系统中用于执行各种任务和操作的命令行指令。这些命令可以用于管理系统、配置网络、安装软件、浏览文件等。Ubuntu命令通常在终端(Terminal)应用程序中输入并执行。 在Ubuntu中,有许多常用的命令和指令。以下是一…

【计算机图形学】实验:C#.net环境下的图形变换完整实验操作流程

一、实验目的: 熟练掌握在.net环境下对图形的变换方法。 二、实验准备: 学习图形变换的基本算法,如平移、旋转、缩放等,以及在.net环境下变换图形的基本方法。 三、实验内容: 在.net环境中利用变换图形的基本方法对图形进行变换,包括平移、旋转、缩放、对称、复合变…

《零基础看得懂的C++入门教程 》——(9)结构体原来如此

一、学习目标 了解C语言的结构体的使用方法了解C语言结构体的结构的赋值了解多种C语言结构体变量的赋值方法和取值方法 目录 预备第一篇,使用软件介绍在这一篇,C与C使用的软件是一样的,查看这篇即可:《软件介绍》 想了解编译原…

微信小程序python token验证_微信小程序python 用户认证

按流程图来先通过wx.login()获取code,再通过我们后台配置的接口获取openid和session_key// 登录wx.login({success: res > {console.log(res)// 发送 res.code 到后台换取 openId, sessionKey, unionIdwx.request({url: api.GET_OPENID, //data: {js_code: res.code},succes…

C#实用技巧之:将图标打包进DLL并读取

概述个人的项目界面有时候需要用到很多图标,这些图片可以建立一个文件夹单独存放,但有时涉及到多台设备部署的话,每台设备都需要随项目一起拷贝过去,如果忘记了界面显示就会出问题,有没有更好的办法解决?有…

【计算机图形学】实验:VB.net环境下的绘制贝赛尔(Bezier)自由曲线完整实验操作步骤

一、实验目的 熟练掌握在.net环境下绘制贝赛尔自由曲线。 二、实验准备 学习生成贝赛尔自由曲线的基本算法,以及在.net环境下绘制贝赛尔自由曲线的基本方法(DrawBezier和DrawBeziers)。 三、实验内容 在.net环境中绘制二次、三次贝赛尔曲线。 四、实验过程及步骤 (包…

《零基础看得懂的C++入门教程 》——(10)面向对象

一、学习目标 了解C类是什么了解类对象与类型修饰一样进行创建了解了类的属性如何使用了解了类方法的使用方法 目录 预备第一篇,使用软件介绍在这一篇,C与C使用的软件是一样的,查看这篇即可:《软件介绍》 想了解编译原理和学习…

浅谈JSONP

这是我在13年初写的文章,当时懵懵懂懂写下了自己对JSONP的理解。 文章原文 博客 欢迎订阅 提到JSONP,我当时在网上找了无数帖子也没有看懂它。那些文章大同小异,都是讲到JSONP原理以后就戛然而止,把我们这些初学者搞得云里雾里。所…

Asp.Net Core 7 preview 4 重磅新特性--限流

前言限流是应对流量暴增或某些用户恶意攻击等场景的重要手段之一,然而微软官方从未支持这一重要特性,AspNetCoreRateLimit这一第三方库限流库一般作为首选使用,然而其配置参数过于繁多,对使用者造成较大的学习成本。令人高兴的是&…