OCR 認知技能

光學字元辨識 (OCR) 技能可辨識圖像檔案中的印刷和手寫文字。 本文是 OCR 技能的參考檔。 如需使用指示,請參閱 從影像 擷取文字。

OCR 技能會使用 Azure AI 視覺 API v3.2 在 Azure AI 服務中提供的機器學習模型。 OCR 技能會對應至下列功能:

OCR 技能會從圖像檔擷取文字。 支援的檔案格式包括:

  • .Jpeg
  • 。Jpg
  • 。Png
  • 。Bmp
  • .Tiff

注意

此技能會系結至 Azure AI 服務,而且需要 每天超過每個索引器 20 份檔的計費資源 。 內建技能的執行會以現有的 Azure AI 服務隨用隨付價格收費。

此外,影像擷取是由 Azure AI 搜尋計費。

技能參數

參數會區分大小寫。

參數名稱 描述
detectOrientation 偵測影像方向。 有效值為 truefalse

此參數僅適用於使用舊版 OCR 3.2 版 API 時
defaultLanguageCode 輸入文字的語言代碼。 支援的語言包括 Azure AI 視覺的所有 正式推出語言 。 您也可以指定 unk (未知)。

如果未指定語言代碼或 Null,則語言會設定為英文。 如果語言明確設定為 unk,則會自動偵測並傳回找到的所有語言。
lineEnding 要當做行分隔符使用的值。 可能的值:「Space」、“CarriageReturn”、“LineFeed”。 預設值為 “Space”。

在舊版中,有一個稱為 “textExtractionAlgorithm” 的參數,可指定擷取 “printed” 或 “handwritten” 文字。 此參數已被取代,因為目前的讀取 API 演算法會同時擷取這兩種類型的文字。 如果您的技能包含此參數,則不需要將其移除,但在技能執行期間不會使用它。

技能輸入

輸入名稱 描述
image 複雜類型。 目前僅適用於 [/文件/normalized_images] 欄位,當 設定為 以外的none值時imageAction,Azure Blob 索引器所產生的欄位。

技能輸出

輸出名稱 描述
text 從影像擷取的純文字。
layoutText 描述所擷取文字和找到文字位置的複雜類型。

如果您在內嵌於 PDF 或其他應用程式檔案的影像上呼叫 OCR,OCR 輸出將會位於頁面底部,在擷取並處理的任何文字之後。

範例定義

{
  "skills": [
    {
      "description": "Extracts text (plain and structured) from image.",
      "@odata.type": "#Microsoft.Skills.Vision.OcrSkill",
      "context": "/document/normalized_images/*",
      "defaultLanguageCode": null,
      "detectOrientation": true,
      "inputs": [
        {
          "name": "image",
          "source": "/document/normalized_images/*"
        }
      ],
      "outputs": [
        {
          "name": "text",
          "targetName": "myText"
        },
        {
          "name": "layoutText",
          "targetName": "myLayoutText"
        }
      ]
    }
  ]
}

範例文字和 layoutText 輸出

{
  "text": "Hello World. -John",
  "layoutText":
  {
    "language" : "en",
    "text" : "Hello World. -John",
    "lines" : [
      {
        "boundingBox":
        [ {"x":10, "y":10}, {"x":50, "y":10}, {"x":50, "y":30},{"x":10, "y":30}],
        "text":"Hello World."
      },
      {
        "boundingBox": [ {"x":110, "y":10}, {"x":150, "y":10}, {"x":150, "y":30},{"x":110, "y":30}],
        "text":"-John"
      }
    ],
    "words": [
      {
        "boundingBox": [ {"x":110, "y":10}, {"x":150, "y":10}, {"x":150, "y":30},{"x":110, "y":30}],
        "text":"Hello"
      },
      {
        "boundingBox": [ {"x":110, "y":10}, {"x":150, "y":10}, {"x":150, "y":30},{"x":110, "y":30}],
        "text":"World."
      },
      {
        "boundingBox": [ {"x":110, "y":10}, {"x":150, "y":10}, {"x":150, "y":30},{"x":110, "y":30}],
        "text":"-John"
      }
    ]
  }
}

範例:合併從內嵌影像擷取的文字與文件的內容

檔破解,技能集執行的第一個步驟,分隔文字和影像內容。 文字合併的常見使用案例是將影像的文字表示法(OCR 技能中的文字或影像的 標題)合併到檔的內容欄位中。 這是針對源文檔是 PDF 或 Word 檔,結合文字與內嵌影像的情況。

下列範例技能集會 建立merged_text 欄位。 此欄位包含您檔案的文字內容,以及該檔案內嵌之每個影像的 OCRed 文字。

要求本文語法

{
  "description": "Extract text from images and merge with content text to produce merged_text",
  "skills":
  [
    {
      "description": "Extract text (plain and structured) from image.",
      "@odata.type": "#Microsoft.Skills.Vision.OcrSkill",
      "context": "/document/normalized_images/*",
      "defaultLanguageCode": "en",
      "detectOrientation": true,
      "inputs": [
        {
          "name": "image",
          "source": "/document/normalized_images/*"
        }
      ],
      "outputs": [
        {
          "name": "text"
        }
      ]
    },
    {
      "@odata.type": "#Microsoft.Skills.Text.MergeSkill",
      "description": "Create merged_text, which includes all the textual representation of each image inserted at the right location in the content field.",
      "context": "/document",
      "insertPreTag": " ",
      "insertPostTag": " ",
      "inputs": [
        {
          "name":"text",
          "source": "/document/content"
        },
        {
          "name": "itemsToInsert", 
          "source": "/document/normalized_images/*/text"
        },
        {
          "name":"offsets", 
          "source": "/document/normalized_images/*/contentOffset"
        }
      ],
      "outputs": [
        {
          "name": "mergedText", 
          "targetName" : "merged_text"
        }
      ]
    }
  ]
}

上述技能集範例假設正規化影像欄位存在。 若要產生此欄位,請在索引器定義中設定 imageAction 組態以 產生NormalizedImages ,如下所示:

{
  //...rest of your indexer definition goes here ...
  "parameters": {
    "configuration": {
      "dataToExtract":"contentAndMetadata",
      "imageAction":"generateNormalizedImages"
    }
  }
}

另請參閱