本日はAzure 学習枠です。
少し間が開いてしまいましたが前回に引き続きAzure Cognitive Servicesを試していきます。
現在OCR(文字認識)を試しています。
前回はAzureポータル上で実行できるAzure Cloud ShellでOCRを実行しました。
今回はローカル環境でVisualStudioを使用してOCRを試します。
Microsoft Docsのクイックスタートに基づいて進めていきます。
クイックスタート: 光学式文字認識 (OCR) - Azure Cognitive Services | Microsoft Learn
〇Computre Visionを使用してVisualStudioでOCRを試す。
①VisualStudioを起動します。 今回はVisualStudio2019を使用しています。
②新しいプロジェクトの作成を選択しプロジェクトを作成します。
③コンソールアプリケーションのテンプレートを使用します。
保存先やプロジェクト名は任意につけてください。
ここからAzure ComputerVisionのパッケージを導入します。
④ソリューションエクスプローラーからNuGetパッケージの管理を開きます。
⑤検索バーにAzure Computerと検索しMicrosoft.Azure.CognitiveServices.Vision.ComputerVisionを選択します。
⑥Microsoft.Azure.CognitiveServices.Vision.Computerをインストールします。
⑦Program.csを次のように書き換えます。
using System; using System.Collections.Generic; using Microsoft.Azure.CognitiveServices.Vision.ComputerVision; using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models; using System.Threading.Tasks; using System.IO; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Threading; using System.Linq; namespace ComputerVisionQuickstart { class Program { // Add your Computer Vision subscription key and endpoint static string subscriptionKey = "PASTE_YOUR_COMPUTER_VISION_SUBSCRIPTION_KEY_HERE"; static string endpoint = "PASTE_YOUR_COMPUTER_VISION_ENDPOINT_HERE"; private const string READ_TEXT_URL_IMAGE = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg"; static void Main(string[] args) { Console.WriteLine("Azure Cognitive Services Computer Vision - .NET quickstart example"); Console.WriteLine(); ComputerVisionClient client = Authenticate(endpoint, subscriptionKey); // Extract text (OCR) from a URL image using the Read API ReadFileUrl(client, READ_TEXT_URL_IMAGE).Wait(); } public static ComputerVisionClient Authenticate(string endpoint, string key) { ComputerVisionClient client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(key)) { Endpoint = endpoint }; return client; } public static async Task ReadFileUrl(ComputerVisionClient client, string urlFile) { Console.WriteLine("----------------------------------------------------------"); Console.WriteLine("READ FILE FROM URL"); Console.WriteLine(); // Read text from URL var textHeaders = await client.ReadAsync(urlFile); // After the request, get the operation location (operation ID) string operationLocation = textHeaders.OperationLocation; Thread.Sleep(2000); // Retrieve the URI where the extracted text will be stored from the Operation-Location header. // We only need the ID and not the full URL const int numberOfCharsInOperationId = 36; string operationId = operationLocation.Substring(operationLocation.Length - numberOfCharsInOperationId); // Extract the text ReadOperationResult results; Console.WriteLine($"Extracting text from URL file {Path.GetFileName(urlFile)}..."); Console.WriteLine(); do { results = await client.GetReadResultAsync(Guid.Parse(operationId)); } while ((results.Status == OperationStatusCodes.Running || results.Status == OperationStatusCodes.NotStarted)); // Display the found text. Console.WriteLine(); var textUrlFileResults = results.AnalyzeResult.ReadResults; foreach (ReadResult page in textUrlFileResults) { foreach (Line line in page.Lines) { Console.WriteLine(line.Text); } } Console.WriteLine(); } } }
⑧Azure Portalを開きすでに作成しているOCRのキーとエンドポイントをコピーします。
⑨Program.csに自身のサブスクリプションキーとエンドポイントを入力します。
⑩最後にデバッグからデバッグなしで開始を選択します。
以上でサンプルが実行できました。
private const string READ_TEXT_URL_IMAGE のURLを変更することで任意の画像の解析もできます。