光学式文字認識 (OCR)Optical Character Recognition (OCR)

Azure の Computer Vision API には、画像から印刷または手書きのテキストを抽出する光学式文字認識 (OCR) 機能が含まれています。Azure's Computer Vision API includes Optical Character Recognition (OCR) capabilities that extract printed or handwritten text from images. ナンバー プレートの写真やシリアル番号の付いたコンテナーなどの画像からも、ドキュメント (請求書、明細書、財務報告書、記事など) からもテキストを抽出することができます。You can extract text from images, such as photos of license plates or containers with serial numbers, as well as from documents - invoices, bills, financial reports, articles, and more.

Read APIRead API

Computer Vision の Read API は、印刷されたテキスト (複数の言語)、手書きのテキスト (英語のみ)、数字、通貨記号を、画像や複数ページの PDF ドキュメントから抽出する、Azure の最新の OCR テクノロジです (新機能について学習する)。The Computer Vision Read API is Azure's latest OCR technology (learn what's new) that extracts printed text (in several languages), handwritten text (English only), digits, and currency symbols from images and multi-page PDF documents. これは、テキストの多い画像や、混合言語を含む複数ページの PDF ドキュメントからテキストを抽出するように最適化されています。It's optimized to extract text from text-heavy images and multi-page PDF documents with mixed languages. 同じ画像またはドキュメントで、印刷と手書き両方のテキストの検出がサポートされています。It supports detecting both printed and handwritten text in the same image or document.

OCR で画像やドキュメントからテキストを抽出して構造化された出力に変換するしくみ

入力の要件Input requirements

Read 呼び出しにより、画像とドキュメントが入力として取得されます。The Read call takes images and documents as its input. これには次の要件があります。They have the following requirements:

  • サポートされているファイル形式: JPEG、PNG、BMP、PDF、TIFFSupported file formats: JPEG, PNG, BMP, PDF, and TIFF
  • PDF ファイルと TIFF ファイルの場合は、最大 2,000 ページ (Free レベルの場合は最初の 2 ページのみ) が処理されます。For PDF and TIFF files, up to 2000 pages (only first two pages for the free tier) are processed.
  • ファイル サイズは 50 MB 未満 (Free レベルの場合は 4 MB)、寸法は 50 x 50 ピクセル以上 10,000 x 10,000 ピクセル以下にする必要があります。The file size must be less than 50 MB (4 MB for the free tier) and dimensions at least 50 x 50 pixels and at most 10000 x 10000 pixels.
  • PDF の寸法は、17 x 17 インチ以下である必要があります (リーガル サイズまたは A3 サイズ以下の用紙に対応します)。The PDF dimensions must be at most 17 x 17 inches, corresponding to legal or A3 paper sizes and smaller.

Read 3.2 プレビューではページの選択が可能Read 3.2 preview allows selecting page(s)

Read 3.2 プレビュー API では、大規模な複数ページのドキュメントに対して、特定のページ番号またはページ範囲を入力パラメーターとして指定して、それらのページからのみテキストを抽出することができます。With the Read 3.2 preview API, for large multi-page documents, you can provide specific page numbers or page ranges as an input parameter to extract text from only those pages. これは、省略可能な言語パラメーターに加えて、新しい入力パラメーターです。This is a new input parameter in addition to the optional language parameter.

注意

言語の入力Language input

Read 呼び出しには、言語に対する省略可能な要求パラメーターがあります。The Read call has an optional request parameter for language. これは、ドキュメント内のテキストの BCP-47 言語コードです。This is the BCP-47 language code of the text in the document. 読み取りでは、言語の自動識別と多言語ドキュメントがサポートされるため、言語コードの指定は、その特定の言語としてドキュメントを処理するように強制する場合にのみ行ってください。Read supports auto language identification and multilingual documents, so only provide a language code if you would like to force the document to be processed as that specific language.

Read 呼び出しThe Read call

Read API の Read 呼び出しは、画像または PDF ドキュメントを入力として受け取り、非同期でテキストを抽出します。The Read API's Read call takes an image or PDF document as the input and extracts text asynchronously. この呼び出しにより、Operation-Location という応答ヘッダー フィールドが返されます。The call returns with a response header field called Operation-Location. Operation-Location 値は、次の手順で使用する操作 ID を含む URL です。The Operation-Location value is a URL that contains the Operation ID to be used in the next step.

応答ヘッダーResponse header 結果の URLResult URL
Operation-LocationOperation-Location https://cognitiveservice/vision/v3.1/read/analyzeResults/49a36324-fc4b-4387-aa06-090cfbf0064f

注意

BillingBilling

Computer Vision の価格」ページには、Read の価格レベルが含まれています。The Computer Vision pricing page includes the pricing tier for Read. 分析された画像またはページはそれぞれ 1 つのトランザクションです。Each analyzed image or page is one transaction. 100 ページを含む PDF または TIFF ドキュメントを使用して操作を呼び出した場合、Read 操作ではそれは 100 トランザクションとしてカウントされ、100 トランザクションに対して課金されます。If you call the operation with a PDF or TIFF document containing 100 pages, the Read operation will count it as 100 transactions and you will be billed for 100 transactions. 操作に対して 50 回の呼び出しを行い、各呼び出しで 100 ページのドキュメントが送信された場合、50 X 100 = 5000 トランザクションに対して課金されます。If you made 50 calls to the operation and each call submitted a document with 100 pages, you will be billed for 50 X 100 = 5000 transactions.

読み取り結果の取得呼び出しThe Get Read Results call

2 番目のステップでは、読み取り結果の取得操作を呼び出します。The second step is to call Get Read Results operation. この操作は、読み取り操作によって作成された操作 ID を入力として受け取ります。This operation takes as input the operation ID that was created by the Read operation. これにより、次の設定可能な値を持つ status フィールドが含まれた JSON 応答が返されます。It returns a JSON response that contains a status field with the following possible values. succeeded の値が返されるまで、この操作を対話形式で呼び出します。You call this operation iteratively until it returns with the succeeded value. 1 秒あたりの要求 (RPS) レートを超えないようにするために、1 秒から 2 秒の間隔を使用してください。Use an interval of 1 to 2 seconds to avoid exceeding the requests per second (RPS) rate.

フィールドField Type 設定可能な値Possible values
statusstatus stringstring notStarted: 操作は開始されていません。notStarted: The operation has not started.
running: 操作を処理しています。running: The operation is being processed.
failed: 操作は失敗しました。failed: The operation has failed.
succeeded: 操作は成功しました。succeeded: The operation has succeeded.

注意

Free レベルでは、要求レートは 1 分あたり 20 回の呼び出しに制限されます。The free tier limits the request rate to 20 calls per minute. 有料レベルでは、10 RPS (1 秒あたりの要求) が許可されており、これはリクエストに応じて増加できます。The paid tier allows 10 requests per second (RPS) that can be increased upon request. 1 秒あたりの要求 (RPS) レートの引き上げをリクエストするには、Azure サポート チャネルまたはお客様のアカウント チームを使用してください。Use the Azure support channel or your account team to request a higher request per second (RPS) rate.

status フィールドに succeeded 値が指定されている場合、JSON 応答には、画像またはドキュメントから抽出されたテキスト コンテンツが含まれます。When the status field has the succeeded value, the JSON response contains the extracted text content from your image or document. JSON の応答では、認識された単語の元の行グループが維持されます。The JSON response maintains the original line groupings of recognized words. 抽出されたテキスト行とその境界ボックスの座標が含まれます。It includes the extracted text lines and their bounding box coordinates. 各テキスト行には、抽出されたすべての単語と、その座標および信頼度スコアが含まれています。Each text line includes all extracted words with their coordinates and confidence scores.

注意

Read 操作に送信されたデータは一時的に暗号化されて保存され、48 時間以内に削除されます。The data submitted to the Read operation are temporarily encrypted and stored at rest, and deleted within 48 hours. これにより、アプリケーションからは、サービス応答の一部として抽出されたテキストを取得できます。This lets your applications retrieve the extracted text as part of the service response.

サンプル JSON 出力Sample JSON output

成功した JSON 応答の例を次に示します。See the following example of a successful JSON response:

{
  "status": "succeeded",
  "createdDateTime": "2020-05-28T05:13:21Z",
  "lastUpdatedDateTime": "2020-05-28T05:13:22Z",
  "analyzeResult": {
    "version": "3.1.0",
    "readResults": [
      {
        "page": 1,
        "angle": 0.8551,
        "width": 2661,
        "height": 1901,
        "unit": "pixel",
        "lines": [
          {
            "boundingBox": [
              67,
              646,
              2582,
              713,
              2580,
              876,
              67,
              821
            ],
            "text": "The quick brown fox jumps",
            "words": [
              {
                "boundingBox": [
                  143,
                  650,
                  435,
                  661,
                  436,
                  823,
                  144,
                  824
                ],
                "text": "The",
                "confidence": 0.958
              }
            ]
          }
        ]
      }
    ]
  }
}

Read 3.2 プレビューでのテキスト行スタイルの追加 (ラテン語系の言語のみ)Read 3.2 preview adds text line style (Latin languages only)

Read 3.2 プレビュー API では、各テキスト行のスタイルが印刷または手書きかどうかを分類する 外観 オブジェクトが、信頼スコアとともに出力されます。The Read 3.2 preview API outputs an appearance object classifying whether each text line is print or handwriting style, along with a confidence score. この機能は、ラテン語系の言語でのみサポートされています。This feature is supported only for Latin languages.

Computer Vision REST API またはクライアント ライブラリ クイックスタートを使用して、アプリケーションへの OCR 機能の統合を開始します。Get started with the Computer Vision REST API or client library quickstarts to start integrating OCR capabilities into your applications.

印刷テキストでサポートされている言語Supported languages for print text

Read API の印刷テキストの抽出でサポートされている言語は、英語、スペイン語、ドイツ語、フランス語、イタリア語、ポルトガル語、オランダ語です。The Read API supports extracting printed text in English, Spanish, German, French, Italian, Portuguese, and Dutch languages.

OCR でサポートされている言語の完全な一覧については、サポートされている言語に関する記事をご覧ください。See the Supported languages for the full list of OCR-supported languages.

Read 3.2 プレビューで追加された簡体字中国語と日本語Read 3.2 preview adds Simplified Chinese and Japanese

Read 3.2 API パブリック プレビューでは、簡体字中国語と日本語のサポートが追加されています。The Read 3.2 API public preview adds support for Simplified Chinese and Japanese. お客様のシナリオでさらに多くの言語をサポートする必要がある場合は、「OCR API」セクションを参照してください。If your scenario requires supporting more languages, see the OCR API section.

手書きテキストに対してサポートされている言語Supported languages for handwritten text

現在、読み取り操作の手書きテキストの抽出でサポートされているのは、英語だけです。The Read operation currently supports extracting handwritten text exclusively in English.

REST API と SDK を使用するUse the REST API and SDK

Read 3.x REST API は、統合が簡単で、すぐに生産性を上げることができるため、ほとんどのお客様にとって推奨される選択肢です。The Read 3.x REST API is the preferred option for most customers because of ease of integration and fast productivity out of the box. Azure と Computer Vision サービスがスケール、パフォーマンス、データ セキュリティ、コンプライアンスのニーズに対応する一方で、お客様は顧客のニーズを満たすことに集中できます。Azure and the Computer Vision service handle scale, performance, data security, and compliance needs while you focus on meeting your customers' needs.

Docker コンテナーを使用したオンプレミスのデプロイDeploy on-premise with Docker containers

Read Docker コンテナー (プレビュー) を使用すると、独自のローカル環境に新しい OCR 機能をデプロイできます。The Read Docker container (preview) enables you to deploy the new OCR capabilities in your own local environment. コンテナーは、特定のセキュリティ要件とデータ ガバナンス要件に適しています。Containers are great for specific security and data governance requirements.

出力例Example outputs

画像からのテキストText from images

次の Read API の出力は、さまざまなテキスト角度、色、フォントが含まれる、画像から抽出されたテキストを示しています。The following Read API output shows the extracted text from an image with different text angles, colors, and fonts.

抽出されたテキストが一覧表示された、さまざまな色と角度を持つ複数の単語の画像

ドキュメントからのテキストText from documents

Read API は、PDF ドキュメントを入力として取ることもできます。Read API can also take PDF documents as input.

抽出されたテキストが一覧表示された請求書ドキュメント

手書きのテキストHandwritten text

読み取り操作では、画像から手書きのテキストが抽出されます (現在は英語のみ)。The Read operation extracts handwritten text from images (currently only in English).

抽出されたテキストが一覧表示された手書きのメモの画像

印刷されたテキストPrinted text

読み取り操作では、複数の異なる言語で印刷されたテキストを抽出できます。The Read operation can extract printed text in several different languages.

抽出されたテキストが一覧表示されたスペイン語の教科書の画像

混合言語ドキュメントMixed language documents

Read API は、一般に混合言語ドキュメントと呼ばれる、複数の異なる言語を含む画像とドキュメントをサポートしています。The Read API supports images and documents that contain multiple different languages, commonly known as mixed language documents. これは、テキスト コンテンツを抽出する前に、ドキュメント内の各テキスト行を検出された言語に分類することによって機能します。It works by classifying each text line in the document into the detected language before extracting its text contents.

抽出されたテキストが一覧表示された、複数言語の語句の画像

OCR APIOCR API

OCR API では、古い認識モデルが使用されており、画像のみがサポートされ、同期的に実行されて、検出されたテキストは直ちに返されます。The OCR API uses an older recognition model, supports only images, and executes synchronously, returning immediately with the detected text. OCR でサポートされている言語と Read API に関する記事をご覧ください。See the OCR supported languages then Read API.

データのプライバシーとセキュリティData privacy and security

Cognitive Services 全般に言えることですが、読み取り/OCR サービスを使用する開発者は、顧客データに関する Microsoft のポリシーに注意する必要があります。As with all the cognitive services, developers using the Read/OCR services should be aware of Microsoft policies on customer data. 詳細については、Microsoft セキュリティ センターの Cognitive Services のページを参照してください。See the Cognitive Services page on the Microsoft Trust Center to learn more.

注意

Computer Vison 2.0 RecognizeText 操作は非推奨になる予定であり、この記事で取り上げている新しい Read API がその代わりになります。The Computer Vison 2.0 RecognizeText operations are in the process of getting deprecated in favor of the new Read API covered in this article. 既存顧客の皆様には、読み取り操作をご利用いただくようにお願いします。Existing customers should transition to using Read operations.

次のステップNext steps