Compétence cognitive OCR
La compétence de reconnaissance optique de caractères (OCR) reconnaît le texte imprimé et manuscrit dans des fichiers image. Cet article constitue la documentation de référence pour la compétence de reconnaissance optique de caractères (OCR). Consultez Extraire du texte à partir d’images pour obtenir des instructions d’utilisation.
Une compétence OCR utilise les modèles d’apprentissage automatique fournis par l’API Azure AI Vision v.3.2 dans les services Azure AI. La compétence de reconnaissance optique de caractères (OCR) est mappée à la fonctionnalité suivante :
Pour les langages répertoriés sous Support du langage d’Azure AI Vision, l’API Read est utilisée.
Pour le cyrillique grec et serbe, l’OCR hérité dans la version 3.2 de l’API est utilisée.
La compétence OCR extrait du texte à partir de fichiers image et d’images incorporées. Les formats de fichiers pris en charge sont les suivants :
- .JPEG
- .JPG
- .PNG
- .BMP
- .TIFF
Les sources de données prises en charge pour l’ocr et l’analyse d’images sont des objets blob dans Stockage Blob Azure et Azure Data Lake Storage (ADLS) Gen2 et le contenu d’image dans OneLake. Les images peuvent être des fichiers autonomes ou des images incorporées dans un fichier PDF ou d’autres fichiers.
Remarque
Cette compétence est liée aux services Azure AI et nécessite une ressource facturable pour les transactions qui dépassent 20 documents par indexeur et par jour. L'exécution des compétences intégrées est facturée au prix actuel du paiement à l'utilisation des services Azure AI.
En outre, l’extraction d’images est facturée par Azure AI Search.
Paramètres de la compétence
Les paramètres respectent la casse.
Nom du paramètre | Description |
---|---|
detectOrientation |
Détecte l’orientation de l’image. Les valeurs valides sont true ou false . Ce paramètre s’applique uniquement si l’API OCR héritée version 3.2 est utilisée. |
defaultLanguageCode |
Code de langue du texte d’entrée. Les langues prises en charge incluent toutes les langues généralement disponibles d’Azure AI Vision. Vous pouvez également spécifier un unk (inconnu). Si le code langue n’est pas spécifié ou est Null, la langue est définie automatiquement sur l’anglais. Si la langue est définie explicitement sur unk , toutes les langues trouvées sont détectées automatiquement et retournées. |
lineEnding |
Valeur à utiliser comme séparateur de ligne. Valeurs possibles : "Space", "CarriageReturn", "LineFeed". La valeur par défaut est "Space" |
Dans les versions précédentes, il existait un paramètre appelé « textExtractionAlgorithm » pour spécifier si l’extraction avait lieu sur un texte « imprimé » ou « manuscrit ». Ce paramètre a été déconseillé, car l’algorithme de l’API Read actuel extrait les deux types de textes en même temps. Si votre compétence inclut ce paramètre, vous n’avez pas besoin de le supprimer, mais il ne sera pas utilisé pendant l’exécution de la compétence.
Entrées de la compétence
Nom de l'entrée | Description |
---|---|
image |
Type complexe. Actuellement, fonctionne seulement avec le champ « /documents/normalized_images », produit par l’indexeur de blobs Azure quand imageAction est défini sur une valeur supérieure à none . |
Sorties de la compétence
Nom de sortie | Description |
---|---|
text |
Texte brut extrait de l’image. |
layoutText |
Type complexe qui décrit le texte extrait ainsi que l’emplacement où le texte a été trouvé. |
Si vous appelez la reconnaissance optique de caractères sur des images incorporées dans des fichiers PDF ou d’autres fichiers d’application, la sortie OCR se trouve en bas de la page, après tout texte extrait et traité.
Exemple de définition
{
"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"
}
]
}
]
}
Exemple de sortie text et 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"
}
]
}
}
Exemple : fusion du texte extrait d’images incorporées avec le contenu du document
Le craquage de document, la première étape de l’exécution de l’ensemble de compétences, sépare le texte et le contenu de l’image. La fusion de texte permet notamment de fusionner la représentation textuelle d’images (texte issu d’une compétence OCR ou légende d’une image) dans le champ de contenu d’un document. Il s’agit de scénarios où le document source est un document PDF ou Word qui combine du texte et des images incorporées.
L’exemple d’ensemble de compétences suivant crée un champ merged_text. Ce champ comprend le contenu textuel de votre document et le texte obtenu par reconnaissance optique de caractères de chacune des images incorporées dans ce document.
Syntaxe du corps de la demande
{
"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"
}
]
}
]
}
L’exemple d’ensemble de compétences ci-dessus suppose l’existence d’un champ d’images normalisées. Pour générer ce champ, définissez la configuration imageAction dans la définition de l’indexeur sur generateNormalizedImages comme indiqué ci-dessous :
{
//...rest of your indexer definition goes here ...
"parameters": {
"configuration": {
"dataToExtract":"contentAndMetadata",
"imageAction":"generateNormalizedImages"
}
}
}