Cognitieve OCR-vaardigheid
De OCR-vaardigheid (Optical Character Recognition) herkent afgedrukte en handgeschreven tekst in afbeeldingsbestanden. Dit artikel is de referentiedocumentatie voor de OCR-vaardigheid. Zie Tekst extraheren uit afbeeldingen voor gebruiksinstructies.
Een OCR-vaardigheid maakt gebruik van de machine learning-modellen die worden geleverd door Azure AI Vision API v3.2 in Azure AI-services. De OCR-vaardigheid wordt toegewezen aan de volgende functionaliteit:
Voor de talen die worden vermeld onder taalondersteuning voor Azure AI Vision, wordt de Read-API gebruikt.
Voor Grieks en Servisch Cyrillisch wordt de verouderde OCR in versie 3.2 API gebruikt.
De OCR-vaardigheid extraheert tekst uit afbeeldingsbestanden en ingesloten afbeeldingen. Ondersteunde bestandsindelingen zijn onder andere:
- . JPEG
- .JPG
- .PNG
- .BMP
- . TIFF
Ondersteunde gegevensbronnen voor OCR en afbeeldingsanalyse zijn blobs in Azure Blob Storage en Azure Data Lake Storage (ADLS) Gen2 en afbeeldingsinhoud in OneLake. Afbeeldingen kunnen zelfstandige bestanden of ingesloten afbeeldingen zijn in een PDF-bestand of andere bestanden.
Notitie
Deze vaardigheid is gebonden aan Azure AI-services en vereist een factureerbare resource voor transacties die groter zijn dan 20 documenten per indexeerfunctie per dag. Voor de uitvoering van ingebouwde vaardigheden worden kosten in rekening gebracht voor de bestaande betalen per gebruik-prijs van Azure AI-services.
Daarnaast kan afbeeldingsextractie worden gefactureerd door Azure AI Search.
Vaardigheidsparameters
Parameters zijn hoofdlettergevoelig.
Parameternaam | Beschrijving |
---|---|
detectOrientation |
Detecteert de afdrukstand van de afbeelding. Geldige waarden zijn true of false . Deze parameter is alleen van toepassing als de verouderde OCR-versie 3.2-API wordt gebruikt. |
defaultLanguageCode |
Taalcode van de invoertekst. Ondersteunde talen omvatten alle algemeen beschikbare talen van Azure AI Vision. U kunt ook opgeven unk (onbekend). Als de taalcode niet is opgegeven of null is, wordt de taal ingesteld op Engels. Als de taal expliciet is ingesteld unk op, worden alle gevonden talen automatisch gedetecteerd en geretourneerd. |
lineEnding |
De waarde die moet worden gebruikt als scheidingsteken voor regels. Mogelijke waarden: "Space", "CarriageReturn", "LineFeed". De standaardwaarde is 'Spatie'. |
In eerdere versies was er een parameter met de naam textExtractionAlgorithm om extractie van 'afgedrukte' of 'handgeschreven' tekst op te geven. Deze parameter is afgeschaft omdat met het huidige read-API-algoritme beide typen tekst tegelijk worden geëxtraheerd. Als uw vaardigheid deze parameter bevat, hoeft u deze niet te verwijderen, maar wordt deze niet gebruikt tijdens het uitvoeren van vaardigheden.
Invoer van vaardigheden
Invoernaam | Beschrijving |
---|---|
image |
Complex Type. Werkt momenteel alleen met het veld /document/normalized_images, geproduceerd door de Azure Blob-indexeerfunctie wanneer imageAction deze is ingesteld op een andere waarde dan none . |
Uitvoer van vaardigheden
Uitvoernaam | Beschrijving |
---|---|
text |
Tekst zonder opmaak geëxtraheerd uit de afbeelding. |
layoutText |
Complex type dat de geëxtraheerde tekst beschrijft en de locatie waar de tekst is gevonden. |
Als u OCR aanroept op afbeeldingen die zijn ingesloten in PDF-bestanden of andere toepassingsbestanden, bevindt de OCR-uitvoer zich onder aan de pagina, na elke tekst die is geëxtraheerd en verwerkt.
Voorbeelddefinitie
{
"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"
}
]
}
]
}
Voorbeeldtekst en layoutText-uitvoer
{
"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"
}
]
}
}
Voorbeeld: Tekst samenvoegen die is geëxtraheerd uit ingesloten afbeeldingen met de inhoud van het document
Document kraken, de eerste stap bij het uitvoeren van vaardighedensets, scheidt tekst- en afbeeldingsinhoud. Een veelvoorkomend gebruiksvoorbeeld voor Tekstfusie is het samenvoegen van de tekstuele weergave van afbeeldingen (tekst van een OCR-vaardigheid of het bijschrift van een afbeelding) in het inhoudsveld van een document. Dit is voor scenario's waarin het brondocument een PDF- of Word-document is dat tekst combineert met ingesloten afbeeldingen.
In de volgende voorbeeldvaardighedenset wordt een merged_text veld gemaakt. Dit veld bevat de tekstuele inhoud van uw document en de OCRed-tekst van elk van de afbeeldingen die in dat document zijn ingesloten.
Syntaxis aanvraagbody
{
"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"
}
]
}
]
}
In het bovenstaande voorbeeld van een vaardighedenset wordt ervan uitgegaan dat er een genormaliseerd afbeeldingsveld bestaat. Als u dit veld wilt genereren, stelt u de imageAction-configuratie in uw indexeerdefinitie in omNormalizedImages te genereren, zoals hieronder wordt weergegeven:
{
//...rest of your indexer definition goes here ...
"parameters": {
"configuration": {
"dataToExtract":"contentAndMetadata",
"imageAction":"generateNormalizedImages"
}
}
}