Lesen von Text mit Azure Vision Image Analysis

Abgeschlossen

Um Azure Vision für Die Bildanalyse zu verwenden, einschließlich der optischen Zeichenerkennung, müssen Sie eine Azure Vision-Ressource in einem Azure-Abonnement bereitstellen. Die Ressource kann folgendes sein:

  • Eine Foundry Tools-Ressource (entweder als Teil eines Microsoft Foundry-Hubs und -Projekts oder als eigenständige Ressource bereitgestellt).
  • Eine Azure Vision-Ressource .

Um Ihre bereitgestellte Ressource in einer Anwendung zu verwenden, müssen Sie mithilfe der schlüsselbasierten Authentifizierung oder der Microsoft Entra ID-Authentifizierung eine Verbindung mit seinem Endpunkt herstellen. Sie finden den Endpunkt für Ihre Ressource im Azure-Portal oder wenn Sie in einem Microsoft Foundry-Projekt arbeiten, im Microsoft Foundry-Portal. Der Endpunkt befindet sich in Form einer URL und sieht in der Regel ungefähr wie folgt aus:

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

Nach dem Herstellen einer Verbindung können Sie das OCR-Feature verwenden, indem Sie die ImageAnalysis-Funktion (über die REST-API oder eine entsprechende SDK-Methode) aufrufen, die Bild-URL oder binäre Daten übergeben und optional die Sprache angeben, in der der Text geschrieben wird (mit einem Standardwert von en für Englisch).

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

Um das Azure Vision Python SDK zum Extrahieren von Text aus einem Image zu verwenden, installieren Sie das Azure-ai-vision-imageanalysis-Paket . Verwenden Sie dann in Ihrem Code entweder die schlüsselbasierte Authentifizierung oder die Microsoft Entra-ID-Authentifizierung, um ein ImageAnalysisClient-Objekt mit einer Azure Vision-Ressource zu verbinden. Rufen Sie zum Suchen und Lesen von Text in einem Bild die Analysemethode (oder analyze_from_url) auf, und geben Sie die VisualFeatures.READ-Aufzählung an.

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",
)

Um das Azure Vision .NET SDK zum Extrahieren von Text aus einem Image zu verwenden, installieren Sie das Azure.AI.Vision.ImageAnalysis-Paket . Verwenden Sie dann in Ihrem Code entweder die schlüsselbasierte Authentifizierung oder die Microsoft Entra-ID-Authentifizierung, um ein ImageAnalysisClient-Objekt mit einer Azure Vision-Ressource zu verbinden. Rufen Sie zum Suchen und Lesen von Text in einem Bild die Analyze-Methode auf, und geben Sie die VisualFeatures.Read-Enumeration an.

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" });

Die Ergebnisse der Read OCR-Funktion werden synchron zurückgegeben, entweder als JSON oder als sprachspezifisches Objekt einer ähnlichen Struktur. Diese Ergebnisse werden in Blöcken (wobei der aktuelle Dienst nur einen Block verwendet), dann Zeilen und dann Wörter unterteilt. Darüber hinaus werden die Textwerte sowohl auf zeilen - als auch auf Wortebene eingeschlossen, sodass ganze Textzeilen einfacher gelesen werden können, wenn Sie Text nicht auf einzelner Wortebene extrahieren müssen.

{
    "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
                            }
                        ]
                    },
                ]
            }
        ]
    }
}