Lire du texte avec l’analyse d’images Azure Vision

Effectué

Pour utiliser Azure Vision pour l’analyse d’images, y compris la reconnaissance optique de caractères, vous devez approvisionner une ressource Azure Vision dans un abonnement Azure. La ressource peut être :

  • Ressource Foundry Tools (déployée dans le cadre d’un hub et d’un projet Microsoft Foundry, ou en tant que ressource autonome).
  • Ressource Azure Vision .

Pour utiliser votre ressource déployée dans une application, vous devez vous connecter à son point de terminaison à l’aide de l’authentification basée sur des clés ou de l’authentification Microsoft Entra ID. Vous trouverez le point de terminaison de votre ressource dans le portail Azure, ou si vous travaillez dans un projet Microsoft Foundry, dans le portail Microsoft Foundry. Le point de terminaison se présente sous la forme d’une URL et ressemble généralement à ceci :

https://<resource_name>.cognitiveservices.azure.com/

Après avoir établi une connexion, vous pouvez utiliser la fonctionnalité OCR en appelant la fonction ImageAnalysis (via l’API REST ou avec une méthode sdk équivalente), en passant l’URL d’image ou les données binaires, et en spécifiant éventuellement la langue dans laquelle le texte est écrit (avec une valeur par défaut d’en anglais).

https://<endpoint>/computervision/imageanalysis:analyze?features=read&...

Pour utiliser le Kit de développement logiciel (SDK) Python Azure Vision pour extraire du texte d’une image, installez le package azure-ai-vision-imageanalysis . Ensuite, dans votre code, utilisez l’authentification basée sur des clés ou l’authentification Microsoft Entra ID pour connecter un objet ImageAnalysisClient à une ressource Azure Vision. Pour rechercher et lire du texte dans une image, appelez la méthode d’analyse (ou analyze_from_url), en spécifiant l’énumération VisualFeatures.READ .

from azure.ai.vision.imageanalysis import ImageAnalysisClient
from azure.ai.vision.imageanalysis.models import VisualFeatures
from azure.core.credentials import AzureKeyCredential

client = ImageAnalysisClient(
    endpoint="<YOUR_RESOURCE_ENDPOINT>",
    credential=AzureKeyCredential("<YOUR_AUTHORIZATION_KEY>")
)

result = client.analyze(
    image_data=<IMAGE_DATA_BYTES>, # Binary data from your image file
    visual_features=[VisualFeatures.READ],
    language="en",
)

Pour utiliser le Kit de développement logiciel (SDK) .NET Azure Vision pour extraire du texte d’une image, installez le package Azure.AI.Vision.ImageAnalysis . Ensuite, dans votre code, utilisez l’authentification basée sur des clés ou l’authentification Microsoft Entra ID pour connecter un objet ImageAnalysisClient à une ressource Azure Vision. Pour rechercher et lire du texte dans une image, appelez la méthode Analyze , en spécifiant l’énumération VisualFeatures.Read .

using Azure.AI.Vision.ImageAnalysis;

ImageAnalysisClient client = new ImageAnalysisClient(
    "<YOUR_RESOURCE_ENDPOINT>",
    new AzureKeyCredential("<YOUR_AUTHORIZATION_KEY>"));

ImageAnalysisResult result = client.Analyze(
    <IMAGE_DATA_BYTES>, // Binary data from your image file
    VisualFeatures.Read,
    new ImageAnalysisOptions { Language = t"en" });

Les résultats de la fonction Read OCR sont retournés de façon synchrone, soit au format JSON, soit en tant qu’objet spécifique au langage d’une structure similaire. Ces résultats sont divisés en blocs (avec le service actuel à l’aide d’un seul bloc), puis des lignes, puis des mots. En outre, les valeurs de texte sont incluses à la fois au niveau des lignes et des mots , ce qui facilite la lecture des lignes entières de texte si vous n’avez pas besoin d’extraire du texte au niveau du mot individuel.

{
    "metadata":
    {
        "width": 500,
        "height": 430
    },
    "readResult":
    {
        "blocks":
        [
            {
                "lines":
                [
                    {
                        "text": "Hello World!",
                        "boundingPolygon":
                        [
                            {"x":251,"y":265},
                            {"x":673,"y":260},
                            {"x":674,"y":308},
                            {"x":252,"y":318}
                        ],
                        "words":
                        [
                            {
                                "text":"Hello",
                                "boundingPolygon":
                                [
                                    {"x":252,"y":267},
                                    {"x":307,"y":265},
                                    {"x":307,"y":318},
                                    {"x":253,"y":318}
                                ],
                            "confidence":0.996
                            },
                            {
                                "text":"World!",
                                "boundingPolygon":
                                [
                                    {"x":318,"y":264},
                                    {"x":386,"y":263},
                                    {"x":387,"y":316},
                                    {"x":319,"y":318}
                                ],
                                "confidence":0.99
                            }
                        ]
                    },
                ]
            }
        ]
    }
}