Čtení textu pomocí analýzy obrázků ve službě Azure AI Vision

Dokončeno

Pokud chcete použít Azure AI Vision pro analýzu obrázků, včetně optického rozpoznávání znaků, musíte zřídit prostředek Azure AI Vision v předplatném Azure. Prostředek může být:

  • Prostředek azure AI Services s více službami (buď nasazený jako součást centra a projektu Azure AI Foundry, nebo jako samostatný prostředek).
  • Prostředek počítačového zpracování obrazu .

Pokud chcete použít nasazený prostředek v aplikaci, musíte se připojit k jeho koncovému bodu pomocí ověřování založeného na klíči nebo ověřování Microsoft Entra ID. Koncový bod vašeho prostředku najdete na webu Azure Portal nebo pokud pracujete v projektu Azure AI Foundry, na portálu Azure AI Foundry. Koncový bod je ve formě adresy URL a obvykle vypadá nějak takto:

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

Po navázání připojení můžete funkci OCR použít voláním funkce ImageAnalysis (prostřednictvím rozhraní REST API nebo s ekvivalentní metodou sady SDK), předáním adresy URL obrázku nebo binárních dat a volitelně zadáním jazyka, ve kterém je text napsaný (s výchozí hodnotou en pro angličtinu).

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

Pokud chcete sadu Azure AI Vision Python SDK použít k extrakci textu z obrázku, nainstalujte balíček azure-ai-vision-imageanalysis . Pak ve svém kódu použijte ověřování založené na klíči nebo ověřování Microsoft Entra ID pro připojení objektu ImageAnalysisClient k prostředku služby Azure AI Vision. Pokud chcete najít a přečíst text na obrázku, zavolejte metodu analyze (nebo analyze_from_url) a určete výčet 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",
)

Pokud chcete použít sadu Azure AI Vision .NET SDK k extrakci textu z obrázku, nainstalujte balíček Azure.AI.Vision.ImageAnalysis . Pak ve svém kódu použijte ověřování založené na klíči nebo ověřování Microsoft Entra ID pro připojení objektu ImageAnalysisClient k prostředku služby Azure AI Vision. Pokud chcete najít a přečíst text na obrázku, zavolejte metodu Analyze a určete výčet 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" });

Výsledky funkce Read OCR se vrací synchronně, a to buď jako JSON, nebo objekt specifický pro jazyk podobné struktury. Tyto výsledky jsou rozděleny do bloků (přičemž aktuální služba používá pouze jeden blok), dále na řádky a poté na slova. Textové hodnoty jsou navíc zahrnuty na úrovni řádků i slov , což usnadňuje čtení celých řádků textu, pokud nepotřebujete extrahovat text na úrovni jednotlivých slov .

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