Kognitivní dovednost OCR

Dovednost optického rozpoznávání znaků (OCR) rozpozná tištěný a ručně psaný text v souborech obrázků. Tento článek je referenční dokumentace pro dovednosti OCR. Pokyny k použití najdete v tématu Extrakce textu z obrázků .

Dovednost OCR využívá modely strojového učení poskytované rozhraním API služby Azure AI Vision v3.2 ve službách Azure AI. Dovednost OCR se mapuje na následující funkce:

Dovednost OCR extrahuje text ze souborů obrázků. Mezi podporované formáty souborů patří:

  • . JPEG
  • .JPG
  • .PNG
  • .BMP
  • . HÁDKA

Poznámka:

Tato dovednost je vázána na služby Azure AI a vyžaduje fakturovatelný prostředek pro transakce, které překračují 20 dokumentů na indexer za den. Provádění integrovaných dovedností se účtuje za stávající cenu průběžných plateb za služby Azure AI.

Kromě toho je extrakce obrázků fakturovatelná službou Azure AI Search.

Parametry dovedností

Parametry rozlišují malá a velká písmena.

Název parametru Popis
detectOrientation Rozpozná orientaci obrázku. Platné hodnoty jsou true nebo false.

Tento parametr platí jenom v případě, že se používá starší rozhraní API OCR verze 3.2 .
defaultLanguageCode Kód jazyka vstupního textu Podporované jazyky zahrnují všechny obecně dostupné jazyky služby Azure AI Vision. Můžete také zadat unk (Neznámé).

Pokud kód jazyka není zadaný nebo má hodnotu null, je jazyk nastavený na angličtinu. Pokud je jazyk explicitně nastavený unk, všechny nalezené jazyky se automaticky detekují a vrátí.
lineEnding Hodnota, která se má použít jako oddělovač řádků. Možné hodnoty: "Mezera", "CarriageReturn", "LineFeed". Výchozí hodnota je Mezera.

V předchozích verzích byl k dispozici parametr s názvem "textExtractionAlgorithm", který určuje extrakci "vytištěného" nebo "rukou psaného" textu. Tento parametr je zastaralý, protože aktuální algoritmus rozhraní API pro čtení extrahuje oba typy textu najednou. Pokud vaše dovednost obsahuje tento parametr, nemusíte ho odebírat, ale nebude se používat při provádění dovedností.

Vstupy dovedností

Název vstupu Popis
image Komplexní typ. V současné době pracuje pouze s polem /document/normalized_images, které indexer objektů blob Azure vytvoří, když imageAction je nastavená na jinou hodnotu než none.

Výstupy dovedností

Název výstupu Popis
text Prostý text extrahovaný z obrázku
layoutText Komplexní typ, který popisuje extrahovaný text a umístění, kde byl text nalezen.

Pokud voláte funkci OCR u obrázků vložených do souborů PDF nebo jiných souborů aplikace, bude výstup OCR umístěn v dolní části stránky po extrahování a zpracování textu.

Ukázková definice

{
  "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"
        }
      ]
    }
  ]
}

Ukázkový text a výstup 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"
      }
    ]
  }
}

Ukázka: Sloučení textu extrahovaného z vložených obrázků s obsahem dokumentu

Prolomení dokumentu, první krok při provádění sady dovedností, odděluje text a obsah obrázku. Běžným případem použití pro fúzi textu je sloučení textové reprezentace obrázků (text z dovednosti OCR nebo titulek obrázku) do pole obsahu dokumentu. Jedná se o scénáře, ve kterých je zdrojový dokument PDF nebo wordový dokument, který kombinuje text s vloženými obrázky.

Následující příklad sady dovedností vytvoří pole merged_text . Toto pole obsahuje textový obsah dokumentu a text OCRed z každého z obrázků vložených do tohoto dokumentu.

Syntaxe textu požadavku

{
  "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"
        }
      ]
    }
  ]
}

Výše uvedený příklad sady dovedností předpokládá, že existuje pole normalized-images. Pokud chcete toto pole vygenerovat, nastavte konfiguraci imageAction v definici indexeru tak, aby generovalaNormalizedImages , jak je znázorněno níže:

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

Viz také