前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Azure认知服务之表格识别器

Azure认知服务之表格识别器

作者头像
MJ.Zhou
发布于 2020-08-12 07:43:19
发布于 2020-08-12 07:43:19
1.3K00
代码可运行
举报
文章被收录于专栏:.NET开发那点事.NET开发那点事
运行总次数:0
代码可运行

认知服务

Azure 认知服务的目标是帮助开发人员创建可以看、听、说、理解甚至开始推理的应用程序。 Azure 认知服务中的服务目录可分为五大主要支柱类别:视觉、语音、语言、Web 搜索和决策。开发人员使用 Azure 认知服务能够轻松地将认知功能添加到其应用程序中。 Azure认知服务主要包含:人脸、表单识别、墨迹识别等内容。上次已经介绍过人脸识别服务了,这次介绍下表单识别器如何使用。

表单识别器

Azure 表单识别器是一个认知服务,该服务使用机器学习技术从表单文档中识别和提取文本、键值对和表数据。 它会引入表单中的文本并输出包含原始文件中的关系的结构化数据。 可以快速获取根据特定内容定制的准确结果,无需进行繁琐的手动干预,也不需要具备丰富的数据科学专业知识。 表单识别器由自定义模型、预生成的收据模型和布局 API 组成。 可以使用 REST API 调用表单识别器模型,以降低复杂性,并将该模型集成到工作流或应用程序中。

引用自微软Azure文档

新建表单识别器资源

新建一个表单识别器的资源。表单识别器也是一项免费服务,免费定价策略为:500页/月,识别频率在20次/分钟,训练频率1次/分钟。区域选离你最近的,然后取个名字。

查看秘钥跟终结点

创建完成后,点击侧边菜单密钥跟终结点,查看密钥跟终结点信息,等下调用SDK的时候需要使用。

新建一个WPF程序

我们还是新建一个WPF程序来演示如果使用表单识别的SDK。新建一个WPF程序,然后放置一个按钮,点击按钮选择一个文件,对这个文件进行识别并把识别的结果显示在文本框内。

安装SDK

使用nuget进行安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Install-Package Azure.AI.FormRecognizer -Version 1.0.0-preview.4

修改MainWindow.xaml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Window x:Class="FormRecognizer.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:FormRecognizer"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <TextBox x:Name="tbxContent" HorizontalAlignment="Left" Height="344" Margin="10,10,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="772"/>
        <Button Content="选择文件" HorizontalAlignment="Left" Margin="10,373,0,0" VerticalAlignment="Top" Width="75" Click="SelectFile_Click"/>

    </Grid>
</Window>

修改MainWindow.xaml,在界面上放置一个按钮来选择文件,放置一个文本框显示内容。界面如下:

选择识别文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   private async void SelectFile_Click(object sender, RoutedEventArgs e)
        {
            var openFileDialog = new OpenFileDialog();
            openFileDialog.ShowDialog();
            var file = openFileDialog.FileName;
            this.tbxContent.Text = "正在识别";
            var result = await StartRecognize(file);

            foreach (var page in result.Value)
            {
                this.tbxContent.Text += $"第{page.PageNumber}页" + "\r\n";
                for (int tableIndex = 0; tableIndex < page.Tables.Count; tableIndex++)
                {
                    this.tbxContent.Text += $"表{tableIndex + 1}" + "\r\n";
                    var table = page.Tables[tableIndex];
                    foreach (var cell in table.Cells)
                    {
                        this.tbxContent.Text += $"行:{cell.RowIndex} 列:{cell.ColumnIndex} 内容:{cell.Text}" + "\r\n";
                    }
                }
            }

        }

选择一个文件,然后调用StartRecognize方法进行识别,对识别的结果进行显示。识别的PDF文件如下:

使用SDK进行识别

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        private async Task<Response<FormPageCollection>> StartRecognize(string file)
        {
            string endpoint = "https://xxxx.cognitiveservices.azure.com/";
            string apiKey = "xxxx";
            var credential = new AzureKeyCredential(apiKey);
            var recognizerClient = new FormRecognizerClient(new Uri(endpoint), credential);

            Response<FormPageCollection> formPages = await recognizerClient
            .StartRecognizeContentAsync(File.OpenRead(file))
            .WaitForCompletionAsync();

            return formPages;
        }

直接调用StartRecognizeContentAsync进行识别,等待一会就会有结果。

运行一下

让我们运行一下看看吧:

总结

使用Azure的认知服务进行表单识别可以轻松的对JPG,PNG,PDF等非结构化的数据进行数据采集,从而转换成结构化数据进行储存以及分析。表单识别器支持无需训练的识别,如果复杂表单还可以进行自定义模型的训练,从而提高识别精度。但是目前好像还不支持中文,后续再研究吧。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Azure认知服务之使用墨迹识别功能识别手写汉字
前面我们使用Azure Face实现了人脸识别、使用Azure表格识别器提取了表格里的数据。这次我们试试使用Azure墨迹识别API来对笔迹进行识别。
MJ.Zhou
2020/08/24
1.4K0
Azure认知服务之使用墨迹识别功能识别手写汉字
【图片PDF区域识别改名】基于WPF和腾讯云API实现PDF文档扫描、指定区域文字识别、固定位置文字识别以及文件批量重命名功能
票据处理:例如发票、收据等,在这些票据上特定位置通常包含关键信息,如发票号码、金额、日期等。通过指定识别区域,可以快速准确地提取这些信息并整理到 Excel 表格中,便于财务人员进行数据统计和管理。
不负众望
2025/02/25
1220
【图片PDF区域识别改名】基于WPF和腾讯云API实现PDF文档扫描、指定区域文字识别、固定位置文字识别以及文件批量重命名功能
使用Azure人脸API对图片进行人脸识别
人脸识别是人工智能机器学习比较成熟的一个领域。人脸识别已经应用到了很多生产场景。比如生物认证,人脸考勤,人流监控等场景。对于很多中小功能由于技术门槛问题很难自己实现人脸识别的算法。Azure人脸API对人脸识别机器学习算法进行封装提供REST API跟SDK方便用户进行自定义开发。
MJ.Zhou
2020/08/11
2K0
使用Azure人脸API对图片进行人脸识别
【批量图片区域识别改名】有没有可以自动批量识别jpg图片上的区域文字,并直接提取文字命名的软件么? 没有我们教你基于WPF和腾讯api的方案做一个
在很多实际工作场景中,我们可能会遇到大量的图片文件,这些图片中包含特定区域的文字信息,比如发票图片上的发票号码、合同图片上的合同编号等。手动识别并为图片命名效率极低且容易出错。使用自动批量识别 JPG 图片上的区域文字,并直接提取文字为图片命名的软件,可以大大提高工作效率,减少人工操作带来的错误。
不负众望
2025/02/24
1130
【批量图片区域识别改名】有没有可以自动批量识别jpg图片上的区域文字,并直接提取文字命名的软件么? 没有我们教你基于WPF和腾讯api的方案做一个
【PDF拆分+识别+重命名+导出表格】PDF文件拆分为单独页面后批量提取内容重名命,将所有的区域的内容保存后导出表格,基于 WPF 和腾讯云的 实现方案
在众多业务场景中,如文档管理、数据提取等,经常需要对 PDF 文件进行精细处理。传统方式下,将 PDF 文件拆分为单独页面并对每个页面进行有意义的重命名以及提取关键信息并导出表格,通常需要人工手动操作,这不仅效率低下,还容易出错。随着业务数据量的增长,这种人工处理方式已无法满足需求。因此,我们需要一个自动化的解决方案来高效完成这些任务。本方案基于 WPF(Windows Presentation Foundation)构建用户界面,方便用户操作,同时借助腾讯云提供的云服务能力,实现 PDF 文件的拆分、内容识别、重命名以及信息导出表格等功能。
不负众望
2025/03/06
930
【PDF拆分+识别+重命名+导出表格】PDF文件拆分为单独页面后批量提取内容重名命,将所有的区域的内容保存后导出表格,基于 WPF 和腾讯云的 实现方案
C# WPF基础之Timer
。WPF性能跟WinForm没得比,只是可以做出漂亮的界面, , 我推荐几个入门教程吧.。首先WPF常规开发都是用MVVM模式,MVVM的框架这里推荐MVVMLight,直接NuGet安装即可, 下边是推荐的链接 这个是视频教程,如果没权限下载直接百度搜索就能找到免费下载的 https://www.cnblogs.com/prism/archive/2011/12/15/2288309.html 这个是WPF各种布局入门 http://www.cnblogs.com/zhili/p/WPFLayout.html
zls365
2020/08/19
1.1K0
C# WPF基础之Timer
【图片区域识别】OCR指定区域图片自动识别内容重命名,指定图片多个识别区域,识别文字并批量对图片文件改名,基于WPF和腾讯OCR的完整实现方案
在快速发展的电商行业中,商品上架是一项繁琐且关键的工作。某电商店铺每天都要上架大量新商品,每个商品都配有多张展示图片,这些图片往往是从不同渠道收集而来,原始文件名毫无规律,如 “IMG_001.jpg”“product_pic2.png” 等。在上架商品时,运营人员需要逐一查看图片内容,确认商品款式、颜色、尺码等信息,然后手动将图片重命名为有意义的格式,例如 “商品名称_颜色_尺码_展示角度.jpg”,以便后续在商品详情页精准调用。这个过程耗时费力,一旦图片数量众多,还容易出现信息匹配错误。运用 OCR 指定区域图片自动识别内容重命名技术后,情况大为改观。运营人员预先设定好图片中包含商品名称、规格参数等信息的区域,OCR 系统自动识别这些区域文字,按照设定规则批量重命名图片。这一技术极大地提高了商品上架效率,降低出错率,让电商店铺运营更加高效有序,助力业务快速发展。
不负众望
2025/02/25
1110
【图片区域识别】OCR指定区域图片自动识别内容重命名,指定图片多个识别区域,识别文字并批量对图片文件改名,基于WPF和腾讯OCR的完整实现方案
少量代码设计一个登录界面 - .NET CORE(C#) WPF开发
继续 MaterialDesignThemes 开源控件库学习,本文简单使用输入控件的水印附加属性:materialDesign:HintAssist.Hint。
zls365
2020/12/29
1.6K0
少量代码设计一个登录界面 - .NET CORE(C#) WPF开发
少量代码设计一个登录界面(二) – .NET CORE(C#) WPF开发
使用 .NET CORE 3.1 创建名为 “Login” 的WPF模板项目,添加1个Nuget库:MaterialDesignThemes.3.1.0-ci981。
zls365
2020/12/29
1.5K0
少量代码设计一个登录界面(二) – .NET CORE(C#) WPF开发
C#的GUI 应用程序开发
图形用户界面(GUI)应用程序是与用户交互的直观方式。在C#中,有多种工具和框架可用于创建GUI应用程序,包括Windows Presentation Foundation (WPF)、Windows Forms和Universal Windows Platform (UWP)。本文将深入探讨这些框架的核心概念、特点、使用场景及如何使用它们来构建GUI应用程序。
Michel_Rolle
2024/10/09
2.5K0
C#-改变控件样式
目前接触到的C#应用程序,基本上采用了WPF进行界面设计,WPF是啥?是微软推出的基于Windows 的用户界面框架,利用它能够将界面设计和逻辑代码完全分离,而且能够实现很炫的画面效果,当然前提是你对它的使用较为熟悉,笔者目前也是在学习关于界面样式这方面的内容。
kdyonly
2023/03/03
9930
WP、Win10开发或者WPF开发时绘制自定义窗体~例如:一个手机
WP and Win10 效果:(数字是参考值,和UI无关) <Page x:Class="_05.AllControls._BorderUsePage" xmlns="http://
逸鹏
2018/04/09
6780
WP、Win10开发或者WPF开发时绘制自定义窗体~例如:一个手机
WPF-父子窗口交互demo
主界面代码,主界面设置两个按钮,Open Window按钮用于打开新窗口,Update用于更新打开的新窗口中的数据
MaybeHC
2024/04/23
810
WPF-父子窗口交互demo
.NET CORE(C#) WPF亚克力窗体
使用 .Net Core 3.1 创建名为 “AcrylicWindow” 的WPF模板项目,添加三个Nuget库:MaterialDesignThemes、MaterialDesignColors和FluentWPF,其中亚克力效果是由FluentWPF控件库实现的。
沙漠尽头的狼
2020/01/16
2.3K0
如何将PDF按页进行拆分,然后提取PDF区域内容改名或保存表格?基于iText.Kernel.Pdf 解决方案
随着数字化办公的普及,PDF文件因其固定格式和跨平台兼容性被广泛应用于文档传输和存档。然而,多页PDF文件在管理和处理时可能带来不便,特别是需要提取特定区域的内容进行进一步的分析或存档。
不负众望
2025/03/26
890
如何将PDF按页进行拆分,然后提取PDF区域内容改名或保存表格?基于iText.Kernel.Pdf 解决方案
使用C#基于ComPDFKit SDK快速构建PDF阅读器
在当今世界,Windows 应用程序对我们的工作至关重要。随着处理 PDF 文档的需求不断增加,将 ComPDFKit PDF 查看和编辑功能集成到您的 Windows 应用程序或系统中,可以极大地为您的用户带来美妙的体验。
ComPDFKit
2023/07/27
4790
使用C#基于ComPDFKit SDK快速构建PDF阅读器
C# WPF框架Caliburn.Micro快速搭建
Caliburn是Rob Eisenberg在2009年1月26日(Rob's MIX10 talk "Build Your Own MVVM Framework")提出的一个MVVM类的开源框架。它是一套用于协助开发WPF,Silverlight,WP7和Win RT等的应用程序的库。
用户9127601
2021/11/01
5370
WPF桌面端开发-数据绑定(Binding)
此模式允许将给定的 ControlTemplate 属性绑定到应用 ControlTemplate 的控件的属性。为了更好地理解这里的问题,下面是一个示例
码客说
2023/07/11
3190
WPF 实现滚动字幕动画
程序要显示动态,日志之类的东西,在一个区域中显示一个文本,需要替换时,直接就换了也没啥,可是想要弄的美观一点,加个动画就美滋滋了
zls365
2021/04/23
1.9K0
WPF 实现滚动字幕动画
C#-ToolTIp和Popup简单使用
很多时候我们需要做一个提示框,来给用户说明这个元素的作用,比如鼠标移动到哪个元素上面,显示一个弹出框并显示这个元素的相关介绍,想到提示内容,我们很容易想到toolip和Popup,接下来就来分别是用一下这两个控件。
kdyonly
2023/03/03
1.2K0
推荐阅读
Azure认知服务之使用墨迹识别功能识别手写汉字
1.4K0
【图片PDF区域识别改名】基于WPF和腾讯云API实现PDF文档扫描、指定区域文字识别、固定位置文字识别以及文件批量重命名功能
1220
使用Azure人脸API对图片进行人脸识别
2K0
【批量图片区域识别改名】有没有可以自动批量识别jpg图片上的区域文字,并直接提取文字命名的软件么? 没有我们教你基于WPF和腾讯api的方案做一个
1130
【PDF拆分+识别+重命名+导出表格】PDF文件拆分为单独页面后批量提取内容重名命,将所有的区域的内容保存后导出表格,基于 WPF 和腾讯云的 实现方案
930
C# WPF基础之Timer
1.1K0
【图片区域识别】OCR指定区域图片自动识别内容重命名,指定图片多个识别区域,识别文字并批量对图片文件改名,基于WPF和腾讯OCR的完整实现方案
1110
少量代码设计一个登录界面 - .NET CORE(C#) WPF开发
1.6K0
少量代码设计一个登录界面(二) – .NET CORE(C#) WPF开发
1.5K0
C#的GUI 应用程序开发
2.5K0
C#-改变控件样式
9930
WP、Win10开发或者WPF开发时绘制自定义窗体~例如:一个手机
6780
WPF-父子窗口交互demo
810
.NET CORE(C#) WPF亚克力窗体
2.3K0
如何将PDF按页进行拆分,然后提取PDF区域内容改名或保存表格?基于iText.Kernel.Pdf 解决方案
890
使用C#基于ComPDFKit SDK快速构建PDF阅读器
4790
C# WPF框架Caliburn.Micro快速搭建
5370
WPF桌面端开发-数据绑定(Binding)
3190
WPF 实现滚动字幕动画
1.9K0
C#-ToolTIp和Popup简单使用
1.2K0
相关推荐
Azure认知服务之使用墨迹识别功能识别手写汉字
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文