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:
Pro jazyky uvedené v rámci podpory jazyka Azure AI Vision se používá rozhraní API pro čtení.
Pro řečtinu a srbštinu cyrilice se používá starší verze OCR v rozhraní API verze 3.2 .
Dovednost OCR extrahuje text ze souborů obrázků a vložených obrázků. Mezi podporované formáty souborů patří:
- . JPEG
- .JPG
- .PNG
- .BMP
- . HÁDKA
Podporované zdroje dat pro analýzu OCR a obrázků jsou objekty blob ve službě Azure Blob Storage a Azure Data Lake Storage (ADLS) Gen2 a obsah obrázků ve OneLake. Obrázky můžou být samostatné soubory nebo vložené obrázky v PDF nebo jiných souborech.
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"
}
}
}