分享方式:


呼叫 Azure AI Vision v3.2 GA 讀取 API

本指南會說明如何呼叫 v3.2 GA 讀取 API 以從影像中擷取文字。 您將了解可設定此 API 行為的不同方式來符合您的需求。

下列步驟假設您已建立 電腦視覺 資源,並取得金鑰和端點 URL。 如果您尚未這麼做,請參閱快速入門以開始使用。

OCR (讀取) 版本

重要

選取最符合您需求的讀取版本。

輸入 範例 讀取版本 優點
影像:一般、野生影像 標籤、街道符號和海報 適用於影像的 OCR (4.0 版) 已針對具有效能增強功能同步 API 的一般非文件影像進行最佳化,而效能增強功能同步 API 可讓您更輕鬆地在使用者體驗案例中內嵌 OCR。
文件:數位及掃描文件,包括影像 書籍、文章和報表 文件智慧讀取模型 使用非同步 API 針對大量文字的數位及掃描文件進行最佳化,以協助將大規模的智慧型文件處理自動化。

關於 Azure AI 視覺 v3.2 GA 讀取

尋找最新的 Azure AI 視覺 v3.2 GA 讀取? 所有未來的讀取 OCR 增強功能都屬於先前所列的兩項服務。 Azure AI 視覺 v3.2 沒有進一步的更新。 如需詳細資訊,請參閱呼叫 Azure AI 視覺 3.2 GA 讀取 API快速入門:Azure AI 視覺 v3.2 GA 讀取

決定如何處理資料 (選擇性)

指定 OCR 模型

根據預設,服務會使用最新的正式發行 (GA) 模型以擷取文字。 從讀取 v3.2 開始, model-version 參數允許在指定 API 版本的 GA 和預覽模型之間進行選擇。 您指定的模型是用來擷取具有讀取作業的文字。

使用讀取作業時,請使用下列值作為選擇性 model-version 參數。

已使用模型
未提供 最新 GA 模型
最新 最新 GA 模型
2022-04-30 最新 GA 模型。 164 種語言的列印文字和 9 種語言的手寫文字,以及數個品質與效能的增強功能
2022-01-30 新增印度文、阿拉伯文和相關語言的列印文字支援。 針對手寫文字,新增日文和韓文的支援。
2021-09-30 新增對俄文和其他斯拉夫文語言的列印文字支援。 針對手寫文字,新增簡體中文、法文、德文、義大利文、葡萄牙文和西班牙文的支援。
2021-04-12 2021 GA 模型

輸入語言

根據預設,服務會從您的影像或文件 (包含混合語言) 中擷取所有文字。 閱讀作業有為語言提供選擇性要求參數。 如果您希望強制讓文件按該特定語言處理,請只提供語言代碼。 否則,服務可能會傳回不完整且不正確的文字。

自然讀取順序 (僅適用於拉丁語言)

根據預設,服務會以從左至右的順序輸出文字行。 (選擇性) 使用 readingOrder 要求參數,以 natural 取得更容易閱讀的讀取順序輸出,如下列範例所示。 這項功能僅支援拉丁語言。

OCR 閱讀順序範例的螢幕快照。

選取文字擷取的頁面或頁面範圍

根據預設,服務會從文件中的所有頁面擷取文字。 (選擇性) 使用 pages 要求參數來指定頁碼或頁面範圍,以便只從這些頁面擷取文字。 下列範例顯示具有 10 頁的檔,並針對這兩個案例擷取文字:所有頁面 (1-10)選取的頁面 (3-6)。

顯示所有頁面和所選頁面輸出的螢幕快照。

提交資料至服務

您可以將本機影像或遠端影像提交至讀取 API。 針對本機影像,您須將二進位影像資料放入 HTTP 要求主體中。 針對遠端,您可以藉由格式化要求本文來指定影像的 URL,如下列範例所示。

{"url":"http://example.com/images/test.jpg"}

讀取 API 的讀取呼叫會將影像或 PDF 文件作為輸入,並以非同步方式擷取文字。

https://{endpoint}/vision/v3.2/read/analyze[?language][&pages][&readingOrder]

呼叫會伴隨著稱為 Operation-Location 的回應標頭欄位傳回。 值 Operation-Location 是 URL,其中包含 下一個步驟中要使用的作業標識碼

回應標頭 範例值
Operation-Location https://cognitiveservice/vision/v3.2/read/analyzeResults/d3d3d3d3-eeee-ffff-aaaa-b4b4b4b4b4b4

注意

Billing

Azure AI 視覺定價頁面包含讀取作業的定價 層。 每個分析的影像或頁面都是一筆交易。 如果您以包含 100 個頁面的 PDF 或 TIFF 文件呼叫作業,則讀取作業會將其算作 100 筆交易,而您必須支付 100 筆交易的費用。 如果您對作業進行了 50 次呼叫,且每次呼叫都提交了包含 100 個頁面的文件,則您將必須支付 50 X 100 = 5000 筆交易的費用。

取得服務的結果

第二個步驟是呼叫 取得讀取結果 作業。 這項作業會以讀取作業所建立的作業識別碼作為輸入。

https://{endpoint}/vision/v3.2/read/analyzeResults/{operationId}

其會傳回包含 [狀態] 欄位的 JSON 回應,包含以下可能的值。

意義
notStarted 作業尚未開始。
running 作業即將處理。
failed 作業失敗。
succeeded 作業成功。

您將反覆呼叫此作業,直到其與 succeeded 值一併傳回為止。 使用 1 到 2 秒的間隔,以避免超過每秒的要求 (RPS) 速率。

注意

免費層會限制要求速率為每分鐘 20 次呼叫。 付費層允許 30 個可依要求增加的 RPS。 請記下您的 Azure 資源識別碼和區域,並開啟 Azure 支援 票證,或連絡您的帳戶小組以要求較高的 RPS 費率。

當 [狀態] 欄位有 succeeded 值時,JSON 回應會包含從您影像或文件擷取的文字內容。 JSON 回應會維持已辨識文字的原始行群組。 其包含擷取的文字行和它們的週框方塊座標。 每一個文字行都包含所有擷取的文字,以及它們的座標與信賴度分數。

注意

提交給讀取作業的資料會暫時加密並經過短暫待用儲存,然後再刪除。 這能讓您的應用程式收到服務回應中的已擷取文字。

範例 JSON 輸出

請參閱以下成功 JSON 回應的範例:

{
  "status": "succeeded",
  "createdDateTime": "2021-02-04T06:32:08.2752706+00:00",
  "lastUpdatedDateTime": "2021-02-04T06:32:08.7706172+00:00",
  "analyzeResult": {
    "version": "3.2",
    "readResults": [
      {
        "page": 1,
        "angle": 2.1243,
        "width": 502,
        "height": 252,
        "unit": "pixel",
        "lines": [
          {
            "boundingBox": [
              58,
              42,
              314,
              59,
              311,
              123,
              56,
              121
            ],
            "text": "Tabs vs",
            "appearance": {
              "style": {
                "name": "handwriting",
                "confidence": 0.96
              }
            },
            "words": [
              {
                "boundingBox": [
                  68,
                  44,
                  225,
                  59,
                  224,
                  122,
                  66,
                  123
                ],
                "text": "Tabs",
                "confidence": 0.933
              },
              {
                "boundingBox": [
                  241,
                  61,
                  314,
                  72,
                  314,
                  123,
                  239,
                  122
                ],
                "text": "vs",
                "confidence": 0.977
              }
            ]
          }
        ]
      }
    ]
  }
}

文字行的手寫分類 (僅適用於拉丁語言)

回應會包含每行文字是否為手寫樣式的分類,以及信賴度分數。 此功能僅適用於拉丁語言。 下列範例顯示影像中文字的手寫分類。

顯示 OCR 手寫分類範例的螢幕快照。