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.2

El servicio Image Analysis 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 subtí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, vea Información general sobre el análisis de imágenes y la página Conceptos .

Use la biblioteca cliente de 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 productoMuestras | Vision Studio | Documentación | de referencia de APIPaquete (npm) | Código fuente del SDK

Introducción

Entornos admitidos actualmente

Para más información, consulte la directiva de compatibilidad.

Requisitos previos

  • Una suscripción de Azure.
  • Un recurso 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 plan de pago para producción.
    • Tenga en cuenta que para ejecutar Image Analysis con las Caption características o Dense Captions , el recurso de Azure debe ser de una de las siguientes regiones compatibles con GPU: East US, France Central, North EuropeKorea CentralSoutheast Asia, West Europeo West US.

Instalar el 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 más información sobre cómo hacerlo, consulte nuestra documentación de agrupación.

Conceptos clave

Una vez que haya inicializado un ImageAnalysisClientobjeto , debe seleccionar una o varias características visuales que se van a analizar. Las opciones se especifican mediante la clase VisualFeaturesenum . Se admiten las siguientes características:

  1. VisualFeatures.Caption: (Ejemplos | de ejemplos) Genere una frase legible que describa el contenido de una imagen.
  2. VisualFeatures.Read: (Ejemplos | de ejemplos) 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 dada 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, vea Información general sobre el análisis de imágenes y la página Conceptos .

Formatos de imagen admitidos:

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

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

ImageAnalysisClient

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

Autenticar el cliente

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

const { ImageAnalysisClient, KeyCredential } = require("@azure-rest/ai-image-analysis");

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

const client = new ImageAnalysisClient(endpoint, credential);

Análisis de una imagen a partir de una 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 a partir de 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

La habilitación del registro puede ayudar a descubrir información útil sobre los 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 @azure/logger:

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

setLogLevel("info");

Para obtener instrucciones más detalladas sobre cómo habilitar los registros, consulte los documentos del paquete @azure/logger.

Pasos siguientes

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

Contribuciones

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