Analizowanie obrazu
Po nawiązaniu połączenia z punktem końcowym zasobów usługi Azure Vision aplikacja kliencka może używać usługi do wykonywania zadań analizy obrazów.
Zwróć uwagę na następujące wymagania dotyczące analizy obrazów:
- Obraz musi być przedstawiony w formacie JPEG, PNG, GIF lub BMP.
- Rozmiar pliku obrazu musi być mniejszy niż 4 megabajty (MB).
- Wymiary obrazu muszą być większe niż 50 x 50 pikseli.
Przesyłanie obrazu do analizy
Aby przeanalizować obraz, możesz użyć metody REST analizowania obrazu lub równoważnej metody w zestawie SDK dla preferowanego języka programowania, określając funkcje wizualne, które chcesz uwzględnić w analizie.
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.CAPTION, VisualFeatures.TAGS],
gender_neutral_caption=True,
)
Notatka
W tym przykładzie kodu aplikacja kliencka używa uwierzytelniania opartego na kluczach. Aby użyć uwierzytelniania Microsoft Entra ID, możesz użyć TokenCredential zamiast AzureKeyCredential.
Przykładowy kod przesyła dane obrazu jako obiekt binarny (który zazwyczaj jest odczytywany z pliku obrazu). Obraz można również analizować na podstawie adresu URL przy użyciu metody analyze_from_url .
Dostępne funkcje wizualne są zawarte w wyliczeniu VisualFeatures.
- VisualFeatures.TAGS: identyfikuje tagi dotyczące obrazu, w tym obiekty, scenerię, ustawienie i akcje
- VisualFeatures.OBJECTS: Zwraca ramkę ograniczającą dla każdego wykrytego obiektu
- VisualFeatures.CAPTION: Generuje podpis obrazu w języku naturalnym
- VisualFeatures.DENSE_CAPTIONS: generuje bardziej szczegółowe podpisy dla wykrytych obiektów
- VisualFeatures.PEOPLE: zwraca pole ograniczenia dla wykrytych osób
- VisualFeatures.SMART_CROPS: Zwraca ramkę ograniczającą określonej proporcji dla obszaru zainteresowania
- VisualFeatures.READ: Wyodrębnia czytelny tekst
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.Caption | VisualFeatures.Tags,
new ImageAnalysisOptions { GenderNeutralCaption = true });
Notatka
W tym przykładzie kodu aplikacja kliencka używa uwierzytelniania opartego na kluczach. Aby użyć uwierzytelniania Microsoft Entra ID, możesz użyć TokenCredential zamiast AzureKeyCredential.
Przykładowy kod przesyła dane obrazu jako obiekt binarny (który zazwyczaj jest odczytywany z pliku obrazu). Możesz również przeanalizować obraz na podstawie adresu URL.
Dostępne funkcje wizualne są zawarte w wyliczeniu VisualFeatures.
- VisualFeatures.Tags: identyfikuje tagi dotyczące obrazu, w tym obiekty, scenerię, ustawienie i akcje
- VisualFeatures.Objects: Zwraca ramkę ograniczającą dla każdego wykrytego obiektu
- VisualFeatures.Caption: generuje podpis obrazu w języku naturalnym
- VisualFeatures.DenseCaptions: Generuje bardziej szczegółowe podpisy dla wykrytych obiektów
- VisualFeatures.People: zwraca pole ograniczenia dla wykrytych osób
- VisualFeatures.SmartCrops: Zwraca ramkę ograniczającą o określonym współczynniku proporcji dla obszaru zainteresowania
- VisualFeatures.Read: wyodrębnia czytelny tekst
Określenie funkcji wizualizacji, które mają zostać przeanalizowane na obrazie, określa, jakie informacje będą zawierać odpowiedź. Większość odpowiedzi będzie zawierać pole ograniczenia (jeśli lokalizacja na obrazie jest rozsądna) lub współczynnik ufności (w przypadku funkcji, takich jak tagi lub podpisy).
Przetwarzanie odpowiedzi
Ta metoda zwraca dokument JSON zawierający żądane informacje. Odpowiedź JSON na potrzeby analizy obrazów wygląda podobnie do tego przykładu, w zależności od żądanych funkcji:
{
"apim-request-id": "abcde-1234-5678-9012-f1g2h3i4j5k6",
"modelVersion": "<version>",
"denseCaptionsResult": {
"values": [
{
"text": "a house in the woods",
"confidence": 0.7055229544639587,
"boundingBox": {
"x": 0,
"y": 0,
"w": 640,
"h": 640
}
},
{
"text": "a trailer with a door and windows",
"confidence": 0.6675070524215698,
"boundingBox": {
"x": 214,
"y": 434,
"w": 154,
"h": 108
}
}
]
},
"metadata": {
"width": 640,
"height": 640
}
}