Analyser une image

Effectué

Après la connexion à votre point de terminaison de ressource Azure Vision, votre application cliente peut utiliser le service pour effectuer des tâches d’analyse d’images.

Notez les exigences suivantes pour l’analyse d’images :

  • L’image doit être présentée au format JPEG, PNG, GIF ou BMP.
  • La taille du fichier de l’image doit être inférieure à 4 mégaoctets (Mo).
  • Les dimensions de l’image doivent être supérieures à 50 x 50 pixels.

Envoi d’une image à des fins d’analyse

Pour analyser une image, vous pouvez utiliser la méthode REST Analyser l’image ou la méthode équivalente dans le Kit de développement logiciel (SDK) pour votre langage de programmation préféré, en spécifiant les fonctionnalités visuelles que vous souhaitez inclure dans l’analyse.

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

Remarque

Dans cet exemple de code, l’application cliente utilise l’authentification basée sur des clés. Pour utiliser l’authentification d’ID Microsoft Entra, vous pouvez utiliser un TokenCredential au lieu d’azureKeyCredential.

L’exemple de code envoie les données d’image en tant qu’objet binaire (qui serait généralement lu à partir d’un fichier image). Vous pouvez également analyser une image basée sur une URL à l’aide de la méthode analyze_from_url .

Les fonctionnalités visuelles disponibles sont contenues dans l’énumération VisualFeatures :

  • VisualFeatures.TAGS : identifie les balises relatives à l’image, notamment les objets, le paysage, le paramètre et les actions
  • VisualFeatures.OBJECTS : retourne le cadre englobant pour chaque objet détecté
  • VisualFeatures.CAPTION : génère une légende de l’image en langage naturel
  • VisualFeatures.DENSE_CAPTIONS : génère des légendes plus détaillées pour les objets détectés
  • VisualFeatures.PEOPLE : retourne le cadre englobant pour les personnes détectées
  • VisualFeatures.SMART_CROPS : retourne le cadre englobant correspondant au rapport d’aspect spécifié pour la zone d’intérêt
  • VisualFeatures.READ : Extrait du texte lisible
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 });

Remarque

Dans cet exemple de code, l’application cliente utilise l’authentification basée sur des clés. Pour utiliser l’authentification d’ID Microsoft Entra, vous pouvez utiliser un TokenCredential au lieu d’azureKeyCredential.

L’exemple de code envoie les données d’image en tant qu’objet binaire (qui serait généralement lu à partir d’un fichier image). Vous pouvez également analyser une image basée sur une URL.

Les fonctionnalités visuelles disponibles sont contenues dans l’énumération VisualFeatures :

  • VisualFeatures.Tags : identifie les balises relatives à l’image, y compris les objets, le paysage, le paramètre et les actions
  • VisualFeatures.Objects : renvoie le cadre englobant pour chaque objet détecté
  • VisualFeatures.Caption : génère une légende de l’image en langage naturel
  • VisualFeatures.DenseCaptions : génère des légendes plus détaillées pour les objets détectés
  • VisualFeatures.People : retourne le cadre englobant pour les personnes détectées
  • VisualFeatures.SmartCrops : renvoie le cadre englobant du rapport d’aspect spécifié pour la zone d’intérêt
  • VisualFeatures.Read : extrait le texte lisible

La spécification des fonctionnalités visuelles que vous souhaitez analyser dans l’image détermine quelles informations la réponse contiendra. La plupart des réponses contiendront un cadre englobant (si un emplacement dans l'image est raisonnable) ou un indice de confiance (pour les caractéristiques telles que les étiquettes ou les légendes).

Traitement de la réponse

Cette méthode retourne un document JSON contenant les informations demandées. La réponse JSON pour l’analyse d’images ressemble à cet exemple, selon vos fonctionnalités demandées :

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