クイック スタート: Azure AI Vision v3.2 GA Read

OCR (Read) エディション

重要

要件に最も適した Read エディションを選択します。

入力 Read のエディション 特長
画像: 一般に出回っている画像 ラベル、道路標識、ポスター 画像の OCR (バージョン 4.0) OCR をユーザー エクスペリエンス シナリオに簡単に埋め込むことができる、パフォーマンスが向上した同期 API を使用して、ドキュメント以外の一般的な画像用に最適化されています。
ドキュメント: デジタルとスキャン (画像を含む) 書籍、記事、レポート Document Intelligence 読み取りモデル インテリジェントなドキュメント処理を大規模に自動化するために、非同期 API を使用してテキストの量が多いスキャンおよびデジタル ドキュメント用に最適化されています。

Azure AI Vision v3.2 GA Read について

最新の Azure AI Vision v3.2 GA Read をお探しですか? 今後のすべての OCR の読み取り拡張機能は、前述の 2 つのサービスの一部です。 Azure AI Vision v3.2 に対する更新はこれ以上ありません。 詳細については、「Azure AI Vision 3.2 GA Read API の呼び出し」と「クイック スタート: Azure AI Vision v3.2 GA Read」を参照してください。

Azure AI Vision Read REST API またはクライアント ライブラリの使用を開始します。 Read APIは、画像からテキストを抽出し、それを構造化文字列として返す AI アルゴリズムを提供します。 以下の手順に従って、パッケージを自分のアプリケーションにインストールし、基本タスクのコード例を試してみましょう。

光学式文字認識 (OCR) クライアント ライブラリを使用して、画像から印刷されたテキストや手書きのテキストを読み取ります。 OCR サービスは、画像に映っているテキストを読み取って、文字ストリームに変換することができます。 テキスト認識の詳細については、「OCR の概要」を参照してください。 このセクションのコードでは、最新の Azure AI Vision パッケージを使います。

ヒント

ローカルの画像からテキストを抽出することもできます。 ComputerVisionClient のメソッドを参照してください (ReadInStreamAsync など)。 また、ローカルの画像に関連したシナリオについては、GitHub 上のサンプル コードを参照してください。

リファレンスのドキュメント | ライブラリのソース コード | パッケージ (NuGet) | サンプル

前提条件

  • Azure サブスクリプション。無料で作成できます

  • Visual Studio IDE または現在のバージョンの .NET Core

  • Azure AI Vision リソース。 Free 価格レベル (F0) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。

  • 対象のアプリケーションを Azure AI Vision サービスに接続するために作成するリソースのキーとエンドポイント。

    1. Azure Vision リソースがデプロイされたら、[リソースに移動] を選択します。
    2. 左側のナビゲーション メニューで、[キーとエンドポイント] を選択します。
    3. クイックスタートの後半で使用するために、いずれかのキーとエンドポイントをコピーします。

環境変数を作成する

この例では、アプリケーションを実行しているローカル コンピューター上の環境変数に資格情報を書き込みます。

Azure portal に移動します。 「前提条件」 セクションで作成したリソースが正常にデプロイされた場合、[次の手順] の下にある [リソースに移動] を選択します。 キーとエンドポイントは、[キーとエンドポイント] ページの [リソース管理] にあります。 リソース キーは Azure サブスクリプション ID と同じではありません。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Azure AI サービスのセキュリティに関する記事を参照してください。

キーとエンドポイントの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  1. VISION_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  2. VISION_ENDPOINT 環境変数を設定するには、your-endpoint をリソースのエンドポイントに置き換えます。
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を読み込む再起動が必要となる場合があります。

印刷されたテキストと手書きのテキストを読み取る

  1. 新しい C# アプリケーションを作成します。

    Visual Studio を使用して、C#、Windows、コンソール用のコンソール アプリ (.NET Framework) プロジェクトを作成します。

    新しいプロジェクトを作成したら、クライアント ライブラリをインストールします。

    1. ソリューション エクスプローラーでプロジェクト ソリューションを右クリックし、[ソリューションの NuGet パッケージの管理] を選択します。
    2. パッケージ マネージャーが開いたら、[参照] を選択します。 [プレリリースを含める] を選択します。
    3. Microsoft.Azure.CognitiveServices.Vision.ComputerVision を検索して選択します。
    4. 詳細のダイアログ ボックスで、プロジェクトを選択し、最新の安定バージョンを選択します。 その後、 [インストール] を選択します。
  2. プロジェクト ディレクトリから、好みのエディターまたは IDE で Program.cs ファイルを開きます。 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 key and endpoint
            static string key = Environment.GetEnvironmentVariable("VISION_KEY");
            static string endpoint = Environment.GetEnvironmentVariable("VISION_ENDPOINT");
    
            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, key);
    
                // 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();
            }
    
        }
    }
    
  3. オプションの手順として、「データの処理方法を決定する」を参照してください。 たとえば、最新の GA モデルを明示的に指定するには、次のように ReadAsync 呼び出しを編集します。 パラメータをスキップするか、"latest" を使用して最新の GA モデルを使用します。

      // Read text from URL with a specific model version
      var textHeaders = await client.ReadAsync(urlFile,null,null,"2022-04-30");
    
  4. アプリケーションを実行します。

    • [デバッグ] メニューの [デバッグの開始] をクリックします。

出力

Azure AI Vision - .NET quickstart example

----------------------------------------------------------
READ FILE FROM URL

Extracting text from URL file printed_text.jpg...


Nutrition Facts Amount Per Serving
Serving size: 1 bar (40g)
Serving Per Package: 4
Total Fat 13g
Saturated Fat 1.5g
Amount Per Serving
Trans Fat 0g
Calories 190
Cholesterol 0mg
ories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.

リソースをクリーンアップする

Azure AI サービス サブスクリプションをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除することができます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

次のステップ

このクイックスタートでは、OCR クライアント ライブラリをインストールし、Read API を使用する方法について学習しました。 次は、Read API の機能の詳細について学習しましょう。

[Read API を呼び出す](../Vision-API-How-to-Topics/call-read-api.md)

光学式文字認識 (OCR) クライアント ライブラリを使用して、リモート画像から印刷されたテキストや手書きのテキストを読み取ります。 OCR サービスは、画像に映っているテキストを読み取って、文字ストリームに変換することができます。 テキスト認識の詳細については、「OCR の概要」を参照してください。

ヒント

また、ローカルの画像からテキストを読み取ることもできます。 ComputerVisionClientOperationsMixin のメソッドを参照してください (read_in_stream など)。 また、ローカルの画像に関連したシナリオについては、GitHub 上のサンプル コードを参照してください。

リファレンス ドキュメント | ライブラリのソース コード | パッケージ (PiPy) | サンプル

前提条件

  • Azure サブスクリプション。無料で作成できます

  • Python 3.x

  • Python のインストールには、pip が含まれている必要があります。 pip がインストールされているかどうかを確認するには、コマンド ラインで pip --version を実行します。 最新バージョンの Python をインストールして pip を入手してください。

  • Azure AI Vision リソース。 Free 価格レベル (F0) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。

  • 対象のアプリケーションを Azure AI Vision サービスに接続するために作成するリソースのキーとエンドポイント。

    1. Azure Vision リソースがデプロイされたら、[リソースに移動] を選択します。
    2. 左側のナビゲーション メニューで、[キーとエンドポイント] を選択します。
    3. クイックスタートの後半で使用するために、いずれかのキーとエンドポイントをコピーします。

環境変数を作成する

この例では、アプリケーションを実行しているローカル コンピューター上の環境変数に資格情報を書き込みます。

Azure portal に移動します。 「前提条件」 セクションで作成したリソースが正常にデプロイされた場合、[次の手順] の下にある [リソースに移動] を選択します。 キーとエンドポイントは、[キーとエンドポイント] ページの [リソース管理] にあります。 リソース キーは Azure サブスクリプション ID と同じではありません。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Azure AI サービスのセキュリティに関する記事を参照してください。

キーとエンドポイントの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  1. VISION_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  2. VISION_ENDPOINT 環境変数を設定するには、your-endpoint をリソースのエンドポイントに置き換えます。
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を読み込む再起動が必要となる場合があります。

印刷されたテキストと手書きのテキストを読み取る

  1. クライアント ライブラリをインストールします。

    コンソール ウィンドウで、次のコマンドを実行します。

    pip install --upgrade azure-cognitiveservices-vision-computervision
    
  2. Pillow ライブラリをインストールします。

    pip install pillow
    
  3. 新しい Python アプリケーション ファイル quickstart-file.py を作成します。 次に、お好きなエディターまたは IDE で開きます。

  4. quickstart-file.py の内容を次のコードに置き換えます。

    from azure.cognitiveservices.vision.computervision import ComputerVisionClient
    from azure.cognitiveservices.vision.computervision.models import OperationStatusCodes
    from azure.cognitiveservices.vision.computervision.models import VisualFeatureTypes
    from msrest.authentication import CognitiveServicesCredentials
    
    from array import array
    import os
    from PIL import Image
    import sys
    import time
    
    '''
    Authenticate
    Authenticates your credentials and creates a client.
    '''
    subscription_key = os.environ["VISION_KEY"]
    endpoint = os.environ["VISION_ENDPOINT"]
    
    computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))
    '''
    END - Authenticate
    '''
    
    '''
    OCR: Read File using the Read API, extract text - remote
    This example will extract text in an image, then print results, line by line.
    This API call can also extract handwriting style text (not shown).
    '''
    print("===== Read File - remote =====")
    # Get an image with text
    read_image_url = "https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png"
    
    # Call API with URL and raw response (allows you to get the operation location)
    read_response = computervision_client.read(read_image_url,  raw=True)
    
    # Get the operation location (URL with an ID at the end) from the response
    read_operation_location = read_response.headers["Operation-Location"]
    # Grab the ID from the URL
    operation_id = read_operation_location.split("/")[-1]
    
    # Call the "GET" API and wait for it to retrieve the results 
    while True:
        read_result = computervision_client.get_read_result(operation_id)
        if read_result.status not in ['notStarted', 'running']:
            break
        time.sleep(1)
    
    # Print the detected text, line by line
    if read_result.status == OperationStatusCodes.succeeded:
        for text_result in read_result.analyze_result.read_results:
            for line in text_result.lines:
                print(line.text)
                print(line.bounding_box)
    print()
    '''
    END - Read File - remote
    '''
    
    print("End of Computer Vision quickstart.")
    
    
  5. オプションの手順として、「データの処理方法を決定する」を参照してください。 たとえば、最新の GA モデルを明示的に指定するには、次のように read ステートメントを編集します。 パラメーターを省くか "latest" を使用すると、最新の GA モデルが自動的に使用されます。

       # Call API with URL and raw response (allows you to get the operation location)
       read_response = computervision_client.read(read_image_url,  raw=True, model_version="2022-04-30")
    
  6. クイック スタート ファイルで python コマンドを使用して、アプリケーションを実行します。

    python quickstart-file.py
    

出力

===== Read File - remote =====
The quick brown fox jumps
[38.0, 650.0, 2572.0, 699.0, 2570.0, 854.0, 37.0, 815.0]
Over
[184.0, 1053.0, 508.0, 1044.0, 510.0, 1123.0, 184.0, 1128.0]
the lazy dog!
[639.0, 1011.0, 1976.0, 1026.0, 1974.0, 1158.0, 637.0, 1141.0]

End of Azure AI Vision quickstart.

リソースをクリーンアップする

Azure AI サービス サブスクリプションをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除することができます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

次のステップ

このクイックスタートでは、OCR クライアント ライブラリをインストールし、Read API を使用する方法について学習しました。 次は、Read API の機能の詳細について学習しましょう。

[Read API を呼び出す](../Vision-API-How-to-Topics/call-read-api.md)

光学式文字認識 (OCR) クライアント ライブラリを使用し、Read API を使用して、画像内の印刷されたテキストや手書きのテキストを読み取ります。 OCR サービスは、画像に映っているテキストを読み取って、文字ストリームに変換することができます。 テキスト認識の詳細については、「OCR の概要」を参照してください。

ヒント

また、ローカルの画像からテキストを読み取ることもできます。 ComputerVisionClient のメソッドを参照してください (readInStream など)。 また、ローカルの画像に関連したシナリオについては、GitHub 上のサンプル コードを参照してください。

リファレンスのドキュメント | ライブラリのソース コード | パッケージ (npm) | サンプル

前提条件

  • Azure サブスクリプション。無料で作成できます

  • 最新バージョンの Node.js

  • Azure AI Vision リソース。 Free 価格レベル (F0) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。

  • 対象のアプリケーションを Azure AI Vision サービスに接続するために作成するリソースのキーとエンドポイント。

    1. Azure Vision リソースがデプロイされたら、[リソースに移動] を選択します。
    2. 左側のナビゲーション メニューで、[キーとエンドポイント] を選択します。
    3. クイックスタートの後半で使用するために、いずれかのキーとエンドポイントをコピーします。

環境変数を作成する

この例では、アプリケーションを実行しているローカル コンピューター上の環境変数に資格情報を書き込みます。

Azure portal に移動します。 「前提条件」 セクションで作成したリソースが正常にデプロイされた場合、[次の手順] の下にある [リソースに移動] を選択します。 キーとエンドポイントは、[キーとエンドポイント] ページの [リソース管理] にあります。 リソース キーは Azure サブスクリプション ID と同じではありません。

ヒント

キーは、コードに直接含めないようにし、公開しないでください。 Azure Key Vault などのその他の認証オプションについては、Azure AI サービスのセキュリティに関する記事を参照してください。

キーとエンドポイントの環境変数を設定するには、コンソール ウィンドウを開き、オペレーティング システムと開発環境の指示に従います。

  1. VISION_KEY 環境変数を設定するには、your-key をリソースのキーの 1 つに置き換えます。
  2. VISION_ENDPOINT 環境変数を設定するには、your-endpoint をリソースのエンドポイントに置き換えます。
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を読み込む再起動が必要となる場合があります。

印刷されたテキストと手書きのテキストを読み取る

新しい Node.js アプリケーションを作成します。

  1. コンソール ウィンドウで、アプリの新しいディレクトリを作成し、そのディレクトリに移動します。

    mkdir myapp
    cd myapp
    
  2. npm init コマンドを実行し、package.json ファイルを使用して node アプリケーションを作成します。 すべてのプロンプトで Enter キーを選択します。

    npm init
    
  3. クライアント ライブラリをインストールするには、ms-rest-azure@azure/cognitiveservices-computervision npm パッケージをインストールします。

    npm install ms-rest-azure
    npm install @azure/cognitiveservices-computervision
    
  4. async モジュールをインストールします。

    npm install async
    

    アプリの package.json ファイルが依存関係によって更新されます。

  5. index.js という新しいファイルを作成し、テキスト エディターで開きます。

  6. 次のコードを index.js ファイルに貼り付けます。

    'use strict';
    
    const async = require('async');
    const fs = require('fs');
    const https = require('https');
    const path = require("path");
    const createReadStream = require('fs').createReadStream
    const sleep = require('util').promisify(setTimeout);
    const ComputerVisionClient = require('@azure/cognitiveservices-computervision').ComputerVisionClient;
    const ApiKeyCredentials = require('@azure/ms-rest-js').ApiKeyCredentials;
    /**
     * AUTHENTICATE
     * This single client is used for all examples.
     */
    const key = process.env.VISION_KEY;
    const endpoint = process.env.VISION_ENDPOINT;
    
    const computerVisionClient = new ComputerVisionClient(
      new ApiKeyCredentials({ inHeader: { 'Ocp-Apim-Subscription-Key': key } }), endpoint);
    /**
     * END - Authenticate
     */
    
    function computerVision() {
      async.series([
        async function () {
    
          /**
           * OCR: READ PRINTED & HANDWRITTEN TEXT WITH THE READ API
           * Extracts text from images using OCR (optical character recognition).
           */
          console.log('-------------------------------------------------');
          console.log('READ PRINTED, HANDWRITTEN TEXT AND PDF');
          console.log();
    
          // URL images containing printed and/or handwritten text. 
          // The URL can point to image files (.jpg/.png/.bmp) or multi-page files (.pdf, .tiff).
          const printedTextSampleURL = 'https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/printed_text.jpg';
    
          // Recognize text in printed image from a URL
          console.log('Read printed text from URL...', printedTextSampleURL.split('/').pop());
          const printedResult = await readTextFromURL(computerVisionClient, printedTextSampleURL);
          printRecText(printedResult);
    
          // Perform read and await the result from URL
          async function readTextFromURL(client, url) {
            // To recognize text in a local image, replace client.read() with readTextInStream() as shown:
            let result = await client.read(url);
            // Operation ID is last path segment of operationLocation (a URL)
            let operation = result.operationLocation.split('/').slice(-1)[0];
    
            // Wait for read recognition to complete
            // result.status is initially undefined, since it's the result of read
            while (result.status !== "succeeded") { await sleep(1000); result = await client.getReadResult(operation); }
            return result.analyzeResult.readResults; // Return the first page of result. Replace [0] with the desired page if this is a multi-page file such as .pdf or .tiff.
          }
    
          // Prints all text from Read result
          function printRecText(readResults) {
            console.log('Recognized text:');
            for (const page in readResults) {
              if (readResults.length > 1) {
                console.log(`==== Page: ${page}`);
              }
              const result = readResults[page];
              if (result.lines.length) {
                for (const line of result.lines) {
                  console.log(line.words.map(w => w.text).join(' '));
                }
              }
              else { console.log('No recognized text.'); }
            }
          }
    
          /**
           * 
           * Download the specified file in the URL to the current local folder
           * 
           */
          function downloadFilesToLocal(url, localFileName) {
            return new Promise((resolve, reject) => {
              console.log('--- Downloading file to local directory from: ' + url);
              const request = https.request(url, (res) => {
                if (res.statusCode !== 200) {
                  console.log(`Download sample file failed. Status code: ${res.statusCode}, Message: ${res.statusMessage}`);
                  reject();
                }
                var data = [];
                res.on('data', (chunk) => {
                  data.push(chunk);
                });
                res.on('end', () => {
                  console.log('   ... Downloaded successfully');
                  fs.writeFileSync(localFileName, Buffer.concat(data));
                  resolve();
                });
              });
              request.on('error', function (e) {
                console.log(e.message);
                reject();
              });
              request.end();
            });
          }
    
          /**
           * END - Recognize Printed & Handwritten Text
           */
          console.log();
          console.log('-------------------------------------------------');
          console.log('End of quickstart.');
    
        },
        function () {
          return new Promise((resolve) => {
            resolve();
          })
        }
      ], (err) => {
        throw (err);
      });
    }
    
    computerVision();
    
  7. オプションの手順として、「データの処理方法を決定する」を参照してください。 たとえば、最新の GA モデルを明示的に指定するには、次のように read ステートメントを編集します。 パラメーターを省くか "latest" を使用すると、最新の GA モデルが自動的に使用されます。

      let result = await client.read(url,{modelVersion:"2022-04-30"});
    
  8. クイック スタート ファイルで node コマンドを使用して、アプリケーションを実行します。

    node index.js
    

出力

-------------------------------------------------
READ PRINTED, HANDWRITTEN TEXT AND PDF

Read printed text from URL... printed_text.jpg
Recognized text:
Nutrition Facts Amount Per Serving
Serving size: 1 bar (40g)
Serving Per Package: 4
Total Fat 13g
Saturated Fat 1.5g
Amount Per Serving
Trans Fat 0g
Calories 190
Cholesterol 0mg
ories from Fat 110
Sodium 20mg
nt Daily Values are based on Vitamin A 50%
calorie diet.

-------------------------------------------------
End of quickstart.

リソースをクリーンアップする

Azure AI サービス サブスクリプションをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除することができます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

次のステップ

このクイックスタートでは、OCR クライアント ライブラリをインストールし、Read API を使用する方法について学習しました。 次は、Read API の機能の詳細について学習しましょう。

[Read API を呼び出す](../Vision-API-How-to-Topics/call-read-api.md)

光学式文字認識 (OCR) REST API を使用して、印刷されたテキストや手書きのテキストを読み取ります。

Note

このクイックスタートでは、cURL コマンドを使用して REST API を呼び出します。 また、プログラミング言語を使用して REST API を呼び出すこともできます。 C#PythonJavaJavaScript の例については、GitHub のサンプルを参照してください。

前提条件

  • Azure サブスクリプション。無料で作成できます

  • インストールされた cURL

  • Azure AI Vision リソース。 Free 価格レベル (F0) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。

  • 対象のアプリケーションを Azure AI Vision サービスに接続するために作成するリソースのキーとエンドポイント。

    1. Azure Vision リソースがデプロイされたら、[リソースに移動] を選択します。
    2. 左側のナビゲーション メニューで、[キーとエンドポイント] を選択します。
    3. クイックスタートの後半で使用するために、いずれかのキーとエンドポイントをコピーします。

印刷されたテキストと手書きのテキストを読み取る

光学式文字認識 (OCR) サービスを使用すると、画像またはドキュメント内の可視テキストを抽出し、文字ストリームに変換することができます。 テキスト抽出の詳細については、「OCR の概要」を参照してください。

Read API を呼び出す

このサンプルを作成して実行するには、次の手順を実行します。

  1. テキスト エディターに次のコマンドをコピーします。

  2. 必要に応じて、コマンドに次の変更を加えます。

    1. <key> の値をキーに置き換えます。
    2. 要求 URL (`westcentralus`) の最初の部分を独自のエンドポイント URL 内のテキストに置き換えます。

      Note

      2019 年 7 月 1 日より後に作成された新しいリソースには、カスタム サブドメイン名が使用されます。 リージョンのエンドポイントの詳細および完全な一覧については、「Azure AI サービスのカスタム サブドメイン名」 を参照してください。

    3. 必要に応じて、要求本文の画像 URL (`https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png\`) を、分析する別の画像の URL に変更します。
  3. コマンド プロンプト ウィンドウを開きます。

  4. テキスト エディターからコマンド プロンプト ウィンドウにコマンドを貼り付けて、コマンドを実行します。

curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyze" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription key>" --data-ascii "{'url':'https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'}"

応答には Operation-Location ヘッダーが含まれ、その値は一意の URL になります。 この URL を使用して、読み取り操作の結果に対してクエリを実行します。 URL の有効期間は 48 時間です。

必要に応じて、モデルのバージョンを指定する

オプションの手順として、「データの処理方法を決定する」を参照してください。 たとえば、最新の GA モデルを明示的に指定するには、model-version=2022-04-30 をパラメーターとして使用します。 パラメーターを省くか model-version=latest を使用すると、最新の GA モデルが自動的に使用されます。

curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyze?model-version=2022-04-30" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription key>" --data-ascii "{'url':'https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'}"

読み取りの結果を取得する

  1. テキスト エディターに次のコマンドをコピーします。

  2. URL を前の手順でコピーした Operation-Location 値に置き換えます。

  3. <key> の値をキーに置き換えます。

  4. コンソール ウィンドウを開きます。

  5. テキスト エディターからコンソール ウィンドウにコマンドを貼り付けて、コマンドを実行します。

    curl -v -X GET "https://westcentralus.api.cognitive.microsoft.com/vision/v3.2/read/analyzeResults/{operationId}" -H "Ocp-Apim-Subscription-Key: {key}" --data-ascii "{body}" 
    

結果の確認

成功応答が JSON で返されます。 サンプル アプリケーションによって成功応答が解析され、次の例のようにコンソール ウィンドウに表示されます。

{
  "status": "succeeded",
  "createdDateTime": "2021-04-08T21:56:17.6819115+00:00",
  "lastUpdatedDateTime": "2021-04-08T21:56:18.4161316+00:00",
  "analyzeResult": {
    "version": "3.2",
    "readResults": [
      {
        "page": 1,
        "angle": 0,
        "width": 338,
        "height": 479,
        "unit": "pixel",
        "lines": [
          {
            "boundingBox": [
              25,
              14,
              318,
              14,
              318,
              59,
              25,
              59
            ],
            "text": "NOTHING",
            "appearance": {
              "style": {
                "name": "other",
                "confidence": 0.971
              }
            },
            "words": [
              {
                "boundingBox": [
                  27,
                  15,
                  294,
                  15,
                  294,
                  60,
                  27,
                  60
                ],
                "text": "NOTHING",
                "confidence": 0.994
              }
            ]
          }
        ]
      }
    ]
  }
}

リソースをクリーンアップする

Azure AI サービス サブスクリプションをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除することができます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

次のステップ

このクイックスタートでは、Read REST API を呼び出す方法について説明しました。 次は、Read API の機能の詳細について学習しましょう。

[Read API を呼び出す](../Vision-API-How-to-Topics/call-read-api.md)

前提条件

  • Azure サブスクリプション。無料で作成できます

  • Azure AI Vision リソース。 Free 価格レベル (F0) を使用してサービスを試用し、後から運用環境用の有料レベルにアップグレードすることができます。

  • Vision Studio に接続します。

    • ここで、サインインを求められる場合があります。
    • サインインした後、[すべてのリソースの表示] を選択します。 必要に応じて、[最新の情報に更新] を選択します。 リソースが使用可能であることを確認します。

    詳細については、「Vision Studio を使ってみる」を参照してください。

印刷されたテキストと手書きのテキストを読み取る

  1. [Optical character recognition] (光学式文字認識) で、[Extract text from images] (画像からテキストを抽出する) を選択します。

  2. [Try it out] (試してみる) で、このデモによって Azure アカウントの使用が発生することを確認します。 詳細については、Azure AI Vision の価格に関する記事を参照してください。

  3. 使用可能なセットから画像を選択するか、独自の画像をアップロードします。

  4. 必要に応じて、[リソースを選択してください] を選択してリソースを選択します。

    画像を選択すると、抽出されたテキストが出力ウィンドウに表示されます。 [JSON] タブを選択して、API 呼び出しから返される JSON 出力を表示することもできます。

評価エクスペリエンスの下には、この機能をご自身のアプリケーションで使い始めるための次のステップがあります。

次の手順

このクイック スタートでは、Vision Studio を使用して Read API にアクセスしました。 次は、Read API の機能の詳細について学習しましょう。

[Read API を呼び出す](../Vision-API-How-to-Topics/call-read-api.md)