Поделиться через


Клиентская библиотека анализа изображений визуального распознавания Azure для JavaScript версии 1.0.0-beta.3

Служба "Анализ изображений" предоставляет алгоритмы ИИ для обработки изображений и возврата сведений о их содержимом. В одном вызове службы можно одновременно извлечь одну или несколько визуальных функций из изображения, включая получение заголовка для изображения, извлечение текста, показанного на изображении (OCR) и обнаружение объектов. Дополнительные сведения о службе и поддерживаемых визуальных функциях см. в обзоре анализа изображений, а также на странице концепции.

Использование клиентской библиотеки анализа изображений для:

  • Проверка подлинности в службе
  • Настройка функций, которые вы хотите извлечь
  • Отправка изображения для анализа или отправка URL-адреса изображения
  • Получение результата анализа

Документация по продуктамПримерыVisual StudioAPIпакетпакет (npm)исходного кода пакета SDK

Начало работы

Поддерживаемые в настоящее время среды

Дополнительные сведения см. в политике поддержки .

Необходимые условия

  • подписка Azure.
  • Ресурс компьютерного зрения в подписке Azure.
    • Для проверки подлинности в службе потребуется ключ и конечная точка из этого ресурса.
    • Вы можете использовать бесплатную ценовую категорию (F0), чтобы попробовать службу, а затем перейти на платную категорию для рабочей среды.
    • Обратите внимание, что для выполнения анализа изображений с функциями Caption или Dense Captions ресурс Azure должен быть из одного из следующих регионов, поддерживаемых GPU: East US, France Central, Korea Central, North Europe, Southeast Asia, West Europeили West US.

Установка пакета @azure-rest/ai-vision-image-analysis

Установите клиентскую библиотеку анализа изображений для JavaScript с npm:

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

Поддержка браузера

Пакет JavaScript

Для использования этой клиентской библиотеки в браузере сначала необходимо использовать пакет. Дополнительные сведения о том, как это сделать, см. в нашей документации по .

Основные понятия

После инициализации ImageAnalysisClientнеобходимо выбрать одну или несколько визуальных функций для анализа. Параметры задаются классом перечисления VisualFeatures. Поддерживаются следующие функции:

  1. VisualFeatures.Caption: ( примеры | примеров) Создайте удобочитаемое человеком предложение, описывающее содержимое изображения.
  2. VisualFeatures.Read: (Примеры | примеров) также известны как оптическое распознавание символов (OCR). Извлеките печатный или рукописный текст из изображений.
  3. VisualFeatures.DenseCaptions: плотные субтитры предоставляют дополнительные сведения, создавая подписи по одному предложению для до 10 разных регионов на изображении, включая один для всего изображения.
  4. VisualFeatures.Tags. Извлечение тегов содержимого для тысяч узнаваемых объектов, живых существ, пейзажей и действий, которые отображаются на изображениях.
  5. VisualFeatures.Objects: обнаружение объектов. Это похоже на теги, но сосредоточено на обнаружении физических объектов в изображении и возвращении их расположения.
  6. VisualFeatures.SmartCrops: используется для поиска репрезентативного подрегион изображения для создания эскизов с приоритетом, заданным для включения лиц.
  7. VisualFeatures.People: найдите людей в изображении и верните свое расположение.

Дополнительные сведения об этих функциях см. в обзоре анализа изображенийи на странице концепции.

Поддерживаемые форматы изображений

Анализ изображений работает на изображениях, которые соответствуют следующим требованиям:

  • Изображение должно быть представлено в формате JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF или MPO
  • Размер файла изображения должен быть меньше 20 мегабайт (МБ)
  • Размеры изображения должны быть больше 50 x 50 пикселей и менее 16 000 x 16 000 пикселей

ImageAnalysisClient

ImageAnalysisClient — это основной интерфейс для разработчиков, взаимодействующих со службой анализа изображений. Он служит шлюзом, из которого будет происходить все взаимодействие с библиотекой.

Примеры

Проверка подлинности клиента

Ниже приведен пример создания экземпляра ImageAnalysisClient с помощью проверки подлинности на основе ключей.

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

Создание ImageAnalysisClient с помощью учетных данных идентификатора Microsoft Entra

Проверка подлинности ключа подписки клиента используется в большинстве примеров в этом руководстве по началу работы, но вы также можете пройти проверку подлинности с помощью идентификатора Microsoft Entra (ранее Azure Active Directory) с помощью [библиотеки удостоверений Azure][azure_identity]. Чтобы использовать поставщик [DefaultAzureCredential][azure_identity_dac], показанный ниже, или другие поставщики учетных данных, предоставляемые пакетом Azure SDK, установите пакет Azure.Identity:

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

const client = new ImageAnalysisClient(endpoint, credential);

Анализ изображения из URL-адреса

В следующем примере показано, как проанализировать изображение с помощью клиентской библиотеки анализа изображений для 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();

Анализ изображения из локального файла

В этом примере мы проанализируем изображение из локального файла с помощью клиентской библиотеки анализа изображений для 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();

Извлечение текста из URL-адреса изображения

В этом примере показано, как извлечь печатный или рукописный текст для файла изображения, sample.jpg с помощью ImageAnalysisClient. Вызов метода возвращает объект ImageAnalysisResult. Свойство ReadResult для возвращаемого объекта содержит список текстовых строк и ограничивающий многоугольник, окружающий каждую текстовую строку. Для каждой строки он также возвращает список слов в текстовой строке и ограничивающий многоугольник, окружающий каждое слово.

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.');
  }

Устранение неполадок

Лесозаготовка

Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL значение info. Кроме того, ведение журнала можно включить во время выполнения путем вызова setLogLevel в @azure/logger:

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

setLogLevel("info");

Дополнительные инструкции по включению журналов см. в документации по пакету @azure/loger.

Дальнейшие действия

Ознакомьтесь с примерами каталогом, чтобы получить подробные примеры, демонстрирующие использование клиентских библиотек.

Способствует

Если вы хотите внести свой вклад в эту библиотеку, ознакомьтесь с руководством по вкладу, чтобы узнать больше о том, как создавать и тестировать код.