[C#]利用paddleocr进行表格识别

【官方框架地址】

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

PaddleOCR表格识别是PaddlePaddle开源项目中的一个强大功能,它利用深度学习技术实现了对各类表格的高精度识别。PaddleOCR表格识别能够处理各种复杂的表格,包括但不限于Excel、CSV和PDF表格,具有广泛的应用场景。

PaddleOCR表格识别的核心是深度学习模型,采用了先进的卷积神经网络和序列模型等技术,能够自动学习和提取表格中的文字、数字和结构信息。通过训练大量的数据集,模型能够逐渐提高识别的准确率和稳定性。

使用PaddleOCR表格识别非常方便,用户只需上传需要识别的表格文件,系统会自动进行预处理和识别,并输出识别的结果。识别的结果可以以文本、数字和结构化的形式展示,方便用户进行后续的数据分析和处理。

此外,PaddleOCR表格识别还支持多种语言和字符集,能够满足不同国家和地区的需求。同时,系统还提供了可定制化的服务,用户可以根据自己的需求进行模型训练和优化,提高识别的准确率和效率。

总的来说,PaddleOCR表格识别是一种高效、准确、易用的表格识别工具,能够帮助用户快速地提取和处理各种表格中的信息。无论是数据分析和可视化领域,还是办公自动化和文档处理领域,PaddleOCR表格识别都具有广泛的应用前景

【效果展示】


【官方实现部分代码】

FullOcrModel model = LocalFullModels.ChineseV3;byte[] sampleImageData;
string sampleImageUrl = @"https://www.tp-link.com.cn/content/images2017/gallery/4288_1920.jpg";
using (HttpClient http = new HttpClient())
{Console.WriteLine("Download sample image from: " + sampleImageUrl);sampleImageData = await http.GetByteArrayAsync(sampleImageUrl);
}using (PaddleOcrAll all = new PaddleOcrAll(model, PaddleDevice.Mkldnn())
{AllowRotateDetection = true, /* 允许识别有角度的文字 */ Enable180Classification = false, /* 允许识别旋转角度大于90度的文字 */
})
{// Load local file by following code:// using (Mat src2 = Cv2.ImRead(@"C:\test.jpg"))using (Mat src = Cv2.ImDecode(sampleImageData, ImreadModes.Color)){PaddleOcrResult result = all.Run(src);Console.WriteLine("Detected all texts: \n" + result.Text);foreach (PaddleOcrResultRegion region in result.Regions){Console.WriteLine($"Text: {region.Text}, Score: {region.Score}, RectCenter: {region.Rect.Center}, RectSize:    {region.Rect.Size}, Angle: {region.Rect.Angle}");}}
}


【源码下载】
【测试环境】

vs2019

netframework4.7.2

opencvsharp4.8.0
 

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

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

相关文章

C语言从入门到实战——数据在内存中的存储方式

数据在内存中的存储方式 前言1. 整数在内存中的存储2. 大小端字节序和字节序判断2.1 什么是大小端2.2 为什么有大小端2.3 练习2.3.1 练习12.3.2 练习22.3.3 练习32.3.4 练习42.3.5 练习52.3.6 练习6 3. 浮点数在内存中的存储3.1 练习3.2 浮点数的存储3.2.1 浮点数存的过程3.2.2…

最新靠谱可用的-Mac-环境下-FFmpeg-环境搭建

最近在尝试搭建 FFmpeg 开发环境时遇到一个蛋疼的事,Google 了 N 篇文章竟然没有一篇是可以跑起来的! 少部分教程是给出了自我矛盾的配置(是的,按照贴出来的代码和配置,他自己都跑不起来),大部…

Go语言认识

Go语言认识 1. Go语言的设计背景2. Go语言的历程3. Go语言对比分析4. Go语言未来的发展规划5. 要不要选择Go 关注 go博客 直接了解第一手资料。 go文档 了解go的全貌。 1. Go语言的设计背景 Go语言(也称为Golang)是由Google开发的一种编程语言。它的设计…

【Maven】006-Maven 依赖传递和依赖冲突

【Maven】006-Maven 依赖传递和依赖冲突 文章目录 【Maven】006-Maven 依赖传递和依赖冲突一、依赖传递1、概述2、案例:jackson 依赖引入依赖Maven 仓库详情页IDEA 中查看 Maven 依赖关系 二、依赖冲突1、概述2、冲突解决的两种方式 一、依赖传递 1、概述 概念&am…

重生奇迹mu敏弓加点攻略

1. 选择正确的属性点分配 在重生奇迹mu游戏中敏弓的属性点分配非常重要。建议将主要属性点分配在敏捷和力量上这样可以提高敏弓的攻击力和闪避能力。适当加点在体力和魔力上可以提高敏弓的生存能力和技能释放次数。不要忘记适当加点在智力上可以提高敏弓的技能威力和命中率。 …

七通道NPN 达林顿管GC2003,专为符合标准 TTL 而制造

GC2003 内部集成了 7 个 NPN 达林顿晶体管,连接的阵列,非常适合逻辑接口电平数字电路(例 如 TTL,CMOS 或PMOS 上/NMOS)和较高的电流/电压,如电灯电磁阀,继电器,打印机或其他类似的负…

代码随想录算法训练营第四天 |链表总结

1、每次先加判断: if (head null) {return head;} 2、ListNode dummy new ListNode(-1, head);和ListNode dummy new ListNode(-1);区别: 在Java中,ListNode dummy new ListNode(-1, head); 和 ListNode dummy new ListNode(-1); 的主…

Redis管道操作

文章目录 1. 问题提出2. 解决方案3. 案例演示4. 总结 1. 问题提出 如何优化频繁命令往返造成的性能瓶颈? Redis是一种基于C/S一级请求响应协议的TCP服务,一个请求会遵循一下步骤: 客户端向服务端发送命令分四步(发送命令-> …

【NI-DAQmx入门】LabVIEW中DAQmx同步

1.同步解释 1.1 同步基础概念 触发器:触发器是控制采集的命令。您可以使用触发器来启动、停止或暂停采集。触发信号可以源自软件或硬件源。 时钟:时钟是用于对数据采集计时的周期性数字信号。根据具体情况,您可以使用时钟信号直接控制数据采…

金蝶云星空与金蝶云星空对接集成逐个单据查询连通员工新增(3009-销售退货清理卡片)

金蝶云星空与金蝶云星空对接集成逐个单据查询连通员工新增(3009-销售退货清理卡片) 来源系统:金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人…

每日一题——LeetCode1160.拼写单词

方法一 个人方法: 先统计chars里每个字符出现的次数,再对words里每个字符串统计每个字符出现的字符,当: 1、字符串里出现chars里没有的字符 2、字符串里某个字符出现的次数大于该字符在chars里出现的次数 以上两种情况则不符合…

Open CASCADE学习|基于visual studio 2022编译源码

目录 1、简介 2、下载 2.1下载visual studio 2022 community 2.2下载下载cmake工具 2.3下载源码 2.4下载第三方插件 3、安装 3.1安装visual studio 2022 community 3.2安装cmake 4、编译源码 5、测试 1、简介 Open CASCADE(简称…