Compartir a través de


Biblioteca cliente de Análisis de imágenes de Azure AI Vision para JavaScript: versión 1.0.0-beta.3

Image Analysis Service proporciona algoritmos de INTELIGENCIA ARTIFICIAL para procesar imágenes y devolver información sobre su contenido. En una sola llamada de servicio, puede extraer una o varias características visuales de la imagen simultáneamente, incluida la obtención de un título para la imagen, la extracción de texto que se muestra en la imagen (OCR) y la detección de objetos. Para obtener más información sobre el servicio y las características visuales admitidas, consulte información general de Image Analysisy la página Conceptos.

Use la biblioteca cliente image Analysis para:

  • Autenticación en el servicio
  • Establecimiento de las características que desea extraer
  • Carga de una imagen para el análisis o envío de una dirección URL de imagen
  • Obtención del resultado del análisis

Documentación del productoejemplos de Vision Studiodocumentación de referencia de apiPackage (npm)SDK

Empezar

Entornos admitidos actualmente

Consulte nuestra de directiva de soporte técnico de para obtener más información.

Prerrequisitos

  • Una suscripción de Azure .
  • Un recurso de Computer Vision en la suscripción de Azure.
    • Necesitará la clave y el punto de conexión de este recurso para autenticarse en el servicio.
    • Puede usar el plan de tarifa gratis (F0) para probar el servicio y actualizarlo más adelante a un nivel de pago para producción.
    • Tenga en cuenta que para ejecutar Image Analysis con las características de Caption o Dense Captions, el recurso de Azure debe ser de una de las siguientes regiones compatibles con GPU: East US, France Central, Korea Central, North Europe, Southeast Asia, West Europeo West US.

Instalación del paquete @azure-rest/ai-vision-image-analysis

Instale la biblioteca cliente de Image Analysis para JavaScript con npm:

npm install @azure-rest/ai-vision-image-analysis

Compatibilidad con exploradores

Paquete de JavaScript

Para usar esta biblioteca cliente en el explorador, primero debe usar un agrupador. Para obtener más información sobre cómo hacerlo, consulte nuestra documentación de agrupación de .

Conceptos clave

Una vez que haya inicializado un ImageAnalysisClient, debe seleccionar una o varias características visuales para analizar. Las opciones se especifican mediante la clase enum VisualFeatures. Se admiten las siguientes características:

  1. VisualFeatures.Caption: (Ejemplos | Ejemplos) Genere una frase legible que describa el contenido de una imagen.
  2. VisualFeatures.Read: (Ejemplos | Muestras) También conocido como reconocimiento óptico de caracteres (OCR). Extraiga texto impreso o manuscrito de imágenes.
  3. VisualFeatures.DenseCaptions: los subtítulos densos proporcionan más detalles mediante la generación de subtítulos de una oración para hasta 10 regiones diferentes en la imagen, incluida una para toda la imagen.
  4. VisualFeatures.Tags: extraiga etiquetas de contenido para miles de objetos reconocibles, seres vivos, paisajes y acciones que aparecen en imágenes.
  5. VisualFeatures.Objects: detección de objetos. Esto es similar al etiquetado, pero se centra en detectar objetos físicos en la imagen y devolver su ubicación.
  6. VisualFeatures.SmartCrops: se usa para buscar una subregión representativa de la imagen para la generación de miniaturas, con prioridad asignada para incluir caras.
  7. VisualFeatures.People: busque personas en la imagen y devuelva su ubicación.

Para obtener más información sobre estas características, consulte información general sobre análisis de imágenesy la página Conceptos de .

Formatos de imagen admitidos

Image Analysis funciona en imágenes que cumplen los siguientes requisitos:

  • La imagen debe presentarse en formato JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF o MPO.
  • El tamaño del archivo de la imagen debe ser inferior a 20 megabytes (MB)
  • Las dimensiones de la imagen deben ser mayores que 50 x 50 píxeles y menos de 16 000 x 16 000 píxeles

ImageAnalysisClient

El ImageAnalysisClient es la interfaz principal para los desarrolladores que interactúan con el servicio Image Analysis. Actúa como puerta de enlace desde la que se producirá toda la interacción con la biblioteca.

Ejemplos

Autenticación del cliente

Este es un ejemplo de cómo crear una instancia de ImageAnalysisClient mediante una autenticación basada en claves.

const key = "<your_key>";
const credential = new AzureKeyCredential(key);

const client = new ImageAnalysisClient(endpoint, credential);

const { ImageAnalysisClient } = require("@azure-rest/ai-vision-image-analysis");
const { AzureKeyCredential } = require('@azure/core-auth');

const endpoint = "<your_endpoint>";
const key = "<your_key>";
const credential = new AzureKeyCredential(key);

const client = new ImageAnalysisClient(endpoint, credential);

Creación de ImageAnalysisClient con una credencial de id. de Microsoft Entra

La autenticación de clave de suscripción de cliente se usa en la mayoría de los ejemplos de esta guía de introducción, pero también puede autenticarse con el identificador de Entra de Microsoft (anteriormente Azure Active Directory) mediante la [biblioteca de identidades de Azure][azure_identity]. Para usar el proveedor [DefaultAzureCredential][azure_identity_dac] que se muestra a continuación u otros proveedores de credenciales proporcionados con el SDK de Azure, instale el paquete Azure.Identity:

npm install @azure/identity
const endpoint = "<your_endpoint>";
const credential = new DefaultAzureCredential();

const client = new ImageAnalysisClient(endpoint, credential);

Análisis de una imagen desde la dirección URL

En el ejemplo siguiente se muestra cómo analizar una imagen mediante la biblioteca cliente image Analysis para JavaScript.

const imageUrl = "https://example.com/image.jpg";
const features = ["Caption", "DenseCaptions", "Objects", "People", "Read", "SmartCrops", "Tags"];

async function analyzeImageFromUrl() {
  const result = await client.path("/imageanalysis:analyze").post({
    body: {
      url: imageUrl,
    },
    queryParameters: {
      features: features,
      "smartCrops-aspect-ratios": [0.9, 1.33],
    },
    contentType: "application/json",
  });

  console.log("Image analysis result:", result.body);
}

analyzeImageFromUrl();

Análisis de una imagen desde un archivo local

En este ejemplo, analizaremos una imagen de un archivo local mediante la biblioteca cliente image Analysis para JavaScript.

const fs = require("fs");

const imagePath = "./path/to/your/image.jpg";
const features = ["Caption", "DenseCaptions", "Objects", "People", "Read", "SmartCrops", "Tags"];

async function analyzeImageFromFile() {
  const imageBuffer = fs.readFileSync(imagePath);

  const result = await client.path("/imageanalysis:analyze").post({
    body: imageBuffer,
    queryParameters: {
      features: features,
      "smartCrops-aspect-ratios": [0.9, 1.33],
    },
    contentType: "application/octet-stream",
  });

  console.log("Image analysis result:", result.body);
}

analyzeImageFromFile();

Extracción de texto de una dirección URL de imagen

En este ejemplo se muestra cómo extraer texto impreso o escrito a mano para el archivo de imagen sample.jpg mediante ImageAnalysisClient. La llamada al método devuelve un objeto ImageAnalysisResult. La propiedad ReadResult del objeto devuelto incluye una lista de líneas de texto y un polígono delimitador que rodea cada línea de texto. Para cada línea, también devuelve una lista de palabras en la línea de texto y un polígono delimitador que rodea cada palabra.

const client: ImageAnalysisClient = createImageAnalysisClient(endpoint, credential);

const features: string[] = [
  'Read'
];

const imageUrl: string = 'https://aka.ms/azsdk/image-analysis/sample.jpg';

client.path('/imageanalysis:analyze').post({
  body: { url: imageUrl },
  queryParameters: { features: features },
  contentType: 'application/json'
}).then(result => {
  const iaResult: ImageAnalysisResultOutput = result.body as ImageAnalysisResultOutput;

  // Process the response
  if (iaResult.readResult && iaResult.readResult.blocks.length > 0) {
    iaResult.readResult.blocks.forEach(block => {
      console.log(`Detected text block: ${JSON.stringify(block)}`);
    });
  } else {
    console.log('No text blocks detected.');
  }

Solución de problemas

Registro

Habilitar el registro puede ayudar a descubrir información útil sobre errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL en info. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel en el @azure/logger:

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

Para obtener instrucciones más detalladas sobre cómo habilitar los registros, puede consultar los documentos del paquete de @azure/registrador.

Pasos siguientes

Eche un vistazo al directorio ejemplos de para obtener ejemplos detallados que muestran cómo usar las bibliotecas cliente.

Contribuyendo

Si desea contribuir a esta biblioteca, lea la guía de contribución de para obtener más información sobre cómo compilar y probar el código.