Umiejętności poznawcze OCR
Umiejętność optycznego rozpoznawania znaków (OCR) rozpoznaje tekst drukowany i odręczny w plikach obrazów. Ten artykuł zawiera dokumentację referencyjną dotyczącą umiejętności OCR. Aby uzyskać instrukcje użycia, zobacz Wyodrębnianie tekstu z obrazów .
Umiejętność OCR korzysta z modeli uczenia maszynowego udostępnianych przez interfejs API usługi Azure AI Vision w wersji 3.2 w usługach Azure AI. Umiejętność OCR mapuje się na następujące funkcje:
W przypadku języków wymienionych w obszarze Obsługa języka usługi Azure AI Vision używany jest interfejs API odczytu.
W przypadku języka greckiego i serbskiego cyrylica używana jest starsza wersja interfejsu API OCR w wersji 3.2 .
Umiejętność OCR wyodrębnia tekst z plików obrazów i obrazów osadzonych. Obsługiwane formaty plików obejmują:
- . JPEG
- .JPG
- .PNG
- .BMP
- . TIFF
Obsługiwane źródła danych na potrzeby analizy OCR i obrazów to obiekty blob w usługach Azure Blob Storage i Azure Data Lake Storage (ADLS) Gen2 oraz zawartość obrazu w usłudze OneLake. Obrazy mogą być plikami autonomicznymi lub obrazami osadzonymi w formacie PDF lub innymi plikami.
Uwaga
Ta umiejętność jest powiązana z usługami azure AI i wymaga rozliczanego zasobu dla transakcji, które przekraczają 20 dokumentów na indeksator dziennie. Wykonanie wbudowanych umiejętności jest naliczane za istniejące usługi Azure AI z płatnością zgodnie z rzeczywistym użyciem.
Ponadto wyodrębnianie obrazów jest rozliczane za pomocą usługi Azure AI Search.
Parametry umiejętności
W parametrach jest rozróżniana wielkość liter.
Nazwa parametru | opis |
---|---|
detectOrientation |
Wykrywa orientację obrazu. Prawidłowe wartości to true i false . Ten parametr ma zastosowanie tylko wtedy, gdy jest używany starszy interfejs API OCR w wersji 3.2 . |
defaultLanguageCode |
Kod języka tekstu wejściowego. Obsługiwane języki obejmują wszystkie ogólnie dostępne języki usługi Azure AI Vision. Można również określić unk (Nieznany). Jeśli kod języka jest nieokreślony lub ma wartość null, język jest ustawiony na angielski. Jeśli język jest jawnie ustawiony na unk , wszystkie znalezione języki są automatycznie wykrywane i zwracane. |
lineEnding |
Wartość, która ma być używana jako separator linii. Możliwe wartości: "Spacja", "CarriageReturn", "LineFeed". Wartość domyślna to "Spacja". |
W poprzednich wersjach istniał parametr o nazwie "textExtractionAlgorithm", aby określić wyodrębnianie tekstu "drukowanego" lub "odręcznego". Ten parametr jest przestarzały, ponieważ bieżący algorytm interfejsu API odczytu wyodrębnia oba typy tekstu jednocześnie. Jeśli umiejętności obejmują ten parametr, nie musisz go usuwać, ale nie będzie on używany podczas wykonywania umiejętności.
Dane wejściowe umiejętności
Nazwa danych wejściowych | opis |
---|---|
image |
Typ złożony. Obecnie działa tylko z polem "/document/normalized_images" utworzonym przez indeksator obiektów blob platformy Azure, gdy imageAction jest ustawiona wartość inną niż none . |
Dane wyjściowe umiejętności
Nazwa danych wyjściowych | opis |
---|---|
text |
Zwykły tekst wyodrębniony z obrazu. |
layoutText |
Typ złożony opisujący wyodrębniony tekst i lokalizację, w której znaleziono tekst. |
Jeśli wywołasz funkcję OCR na obrazach osadzonych w plikach PDF lub innych plikach aplikacji, dane wyjściowe OCR będą znajdować się w dolnej części strony, po każdym wyodrębnieniu i przetworzeniu tekstu.
Przykładowa definicja
{
"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"
}
]
}
]
}
Przykładowy tekst i układTekstowe dane wyjściowe
{
"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"
}
]
}
}
Przykład: scalanie tekstu wyodrębnionego z obrazów osadzonych z zawartością dokumentu
Pękanie dokumentów, pierwszy krok wykonywania zestawu umiejętności, oddziela tekst i zawartość obrazu. Typowy przypadek użycia połączenia tekstu polega na scaleniu tekstowej reprezentacji obrazów (tekstu z umiejętności OCR lub podpisu obrazu) do pola zawartości dokumentu. Dotyczy to scenariuszy, w których dokument źródłowy jest dokumentem PDF lub Word, który łączy tekst z obrazami osadzonymi.
Poniższy przykładowy zestaw umiejętności tworzy pole merged_text . To pole zawiera tekstową zawartość dokumentu i tekst OCRed z każdego z obrazów osadzonych w tym dokumencie.
Składnia treści żądania
{
"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"
}
]
}
]
}
Powyższy przykład zestawu umiejętności zakłada, że istnieje pole normalized-images. Aby wygenerować to pole, ustaw konfigurację imageAction w definicji indeksatora, aby wygenerowaćNormalizedImages, jak pokazano poniżej:
{
//...rest of your indexer definition goes here ...
"parameters": {
"configuration": {
"dataToExtract":"contentAndMetadata",
"imageAction":"generateNormalizedImages"
}
}
}