本日は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を変更することで任意の画像の解析もできます。