Análisis de una imagen

Completado

Después de conectarse al punto de conexión de recursos de Azure AI Vision, la aplicación cliente puede usar el servicio para realizar tareas de análisis de imágenes.

Tenga en cuenta los siguientes requisitos para el análisis de imágenes:

  • La imagen debe presentarse en formato JPEG, PNG, GIF o BMP.
  • El tamaño del archivo de la imagen debe ser inferior a 4 megabytes (MB).
  • Las dimensiones de la imagen deben ser mayores que 50 x 50 píxeles.

Envío de una imagen para su análisis

Para analizar una imagen, puede usar el método REST Analyze Image o el método equivalente en el SDK para el lenguaje de programación preferido, especificando las características visuales que desea incluir en el análisis.

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

Nota

En este ejemplo de código, la aplicación cliente usa la autenticación basada en claves. Para usar la autenticación de ID de Entra de Microsoft, puede usar TokenCredential en lugar de AzureKeyCredential.

El ejemplo de código envía los datos de imagen como un objeto binario (que normalmente se leería desde un archivo de imagen). También puede analizar una imagen basada en una dirección URL mediante el método analyze_from_url .

Las características visuales disponibles se incluyen en la VisualFeatures enumeración:

  • VisualFeatures.TAGS: identifica etiquetas sobre la imagen, incluidos objetos, paisajes, configuración y acciones.
  • VisualFeatures.OBJECTS: Devuelve el cuadro delimitador para cada objeto detectado.
  • VisualFeatures.CAPTION: genera un título de la imagen en lenguaje natural
  • VisualFeatures.DENSE_CAPTIONS: genera subtítulos más detallados para los objetos detectados
  • VisualFeatures.PEOPLE: devuelve el Bounding Box para las personas detectadas.
  • VisualFeatures.SMART_CROPS: Devuelve el cuadro delimitador de la relación de aspecto especificada para el área de interés.
  • VisualFeatures.READ: extrae texto legible
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 });

Nota

En este ejemplo de código, la aplicación cliente usa la autenticación basada en claves. Para usar la autenticación de ID de Entra de Microsoft, puede usar TokenCredential en lugar de AzureKeyCredential.

El ejemplo de código envía los datos de imagen como un objeto binario (que normalmente se leería desde un archivo de imagen). También puede analizar una imagen basada en una dirección URL.

Las características visuales disponibles se incluyen en la VisualFeatures enumeración:

  • VisualFeatures.Tags: identifica etiquetas sobre la imagen, incluidos objetos, paisajes, configuración y acciones.
  • VisualFeatures.Objects: Devuelve la caja delimitadora de cada objeto detectado.
  • VisualFeatures.Caption: genera un título de la imagen en lenguaje natural
  • VisualFeatures.DenseCaptions: genera títulos más detallados para los objetos detectados.
  • VisualFeatures.People: devuelve el cuadro delimitador para las personas detectadas.
  • VisualFeatures.SmartCrops: devuelve el cuadro delimitador de la relación de aspecto especificada para el área de interés.
  • VisualFeatures.Read: Extrae texto legible

La especificación de las características visuales que desea analizar en la imagen determina qué información contendrá la respuesta. La mayoría de las respuestas contendrán una caja delimitadora (si una ubicación en la imagen es razonable) o una puntuación de confianza (como etiquetas o subtítulos).

Procesamiento de la respuesta

Este método devuelve un documento JSON que contiene la información solicitada. La respuesta JSON para el análisis de imágenes es similar a este ejemplo, en función de las características solicitadas:

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