日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Azure认知服务之表单识别器

發(fā)布時間:2023/12/4 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Azure认知服务之表单识别器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

認(rèn)知服務(wù)

Azure 認(rèn)知服務(wù)的目標(biāo)是幫助開發(fā)人員創(chuàng)建可以看、聽、說、理解甚至開始推理的應(yīng)用程序。Azure 認(rèn)知服務(wù)中的服務(wù)目錄可分為五大主要支柱類別:視覺、語音、語言、Web 搜索和決策。開發(fā)人員使用 Azure 認(rèn)知服務(wù)能夠輕松地將認(rèn)知功能添加到其應(yīng)用程序中。
Azure認(rèn)知服務(wù)主要包含:人臉、表單識別、墨跡識別等內(nèi)容。上次已經(jīng)介紹過人臉識別服務(wù)了,這次介紹下表單識別器如何使用。

表單識別器

Azure 表單識別器是一個認(rèn)知服務(wù),該服務(wù)使用機(jī)器學(xué)習(xí)技術(shù)從表單文檔中識別和提取文本、鍵值對和表數(shù)據(jù)。它會引入表單中的文本并輸出包含原始文件中的關(guān)系的結(jié)構(gòu)化數(shù)據(jù)。可以快速獲取根據(jù)特定內(nèi)容定制的準(zhǔn)確結(jié)果,無需進(jìn)行繁瑣的手動干預(yù),也不需要具備豐富的數(shù)據(jù)科學(xué)專業(yè)知識。表單識別器由自定義模型、預(yù)生成的收據(jù)模型和布局 API 組成。可以使用 REST API 調(diào)用表單識別器模型,以降低復(fù)雜性,并將該模型集成到工作流或應(yīng)用程序中。

引用自微軟Azure文檔

新建表單識別器資源

新建一個表單識別器的資源。表單識別器也是一項(xiàng)免費(fèi)服務(wù),免費(fèi)定價策略為:500頁/月,識別頻率在20次/分鐘,訓(xùn)練頻率1次/分鐘。區(qū)域選離你最近的,然后取個名字。

查看秘鑰跟終結(jié)點(diǎn)

創(chuàng)建完成后,點(diǎn)擊側(cè)邊菜單密鑰跟終結(jié)點(diǎn),查看密鑰跟終結(jié)點(diǎn)信息,等下調(diào)用SDK的時候需要使用。

新建一個WPF程序

我們還是新建一個WPF程序來演示如果使用表單識別的SDK。新建一個WPF程序,然后放置一個按鈕,點(diǎn)擊按鈕選擇一個文件,對這個文件進(jìn)行識別并把識別的結(jié)果顯示在文本框內(nèi)。

安裝SDK

使用nuget進(jìn)行安裝:

Install-Package Azure.AI.FormRecognizer -Version 1.0.0-preview.4

修改MainWindow.xaml

<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,在界面上放置一個按鈕來選擇文件,放置一個文本框顯示內(nèi)容。界面如下:

選擇識別文件

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} 內(nèi)容:{cell.Text}" + "\r\n";}}}}

選擇一個文件,然后調(diào)用StartRecognize方法進(jìn)行識別,對識別的結(jié)果進(jìn)行顯示。識別的PDF文件如下:

使用SDK進(jìn)行識別

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;}

直接調(diào)用StartRecognizeContentAsync進(jìn)行識別,等待一會就會有結(jié)果。

運(yùn)行一下

讓我們運(yùn)行一下看看吧:

總結(jié)

使用Azure的認(rèn)知服務(wù)進(jìn)行表單識別可以輕松的對JPG,PNG,PDF等非結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行數(shù)據(jù)采集,從而轉(zhuǎn)換成結(jié)構(gòu)化數(shù)據(jù)進(jìn)行儲存以及分析。表單識別器支持無需訓(xùn)練的識別,如果復(fù)雜表單還可以進(jìn)行自定義模型的訓(xùn)練,從而提高識別精度。但是目前好像還不支持中文,后續(xù)再研究吧。

關(guān)注我的公眾號一起玩轉(zhuǎn)技術(shù)

總結(jié)

以上是生活随笔為你收集整理的Azure认知服务之表单识别器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。