Клиентская библиотека анализа изображений визуального распознавания Azure для JavaScript версии 1.0.0-beta.3
Служба "Анализ изображений" предоставляет алгоритмы ИИ для обработки изображений и возврата сведений о их содержимом. В одном вызове службы можно одновременно извлечь одну или несколько визуальных функций из изображения, включая получение заголовка для изображения, извлечение текста, показанного на изображении (OCR) и обнаружение объектов. Дополнительные сведения о службе и поддерживаемых визуальных функциях см. в обзоре анализа изображений, а также на странице концепции.
Использование клиентской библиотеки анализа изображений для:
- Проверка подлинности в службе
- Настройка функций, которые вы хотите извлечь
- Отправка изображения для анализа или отправка URL-адреса изображения
- Получение результата анализа
Начало работы
Поддерживаемые в настоящее время среды
- версии LTS Node.js
- Последние версии Safari, Chrome, Edge и Firefox.
Дополнительные сведения см. в политике поддержки .
Необходимые условия
- подписка 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
. Поддерживаются следующие функции:
-
VisualFeatures.Caption
: ( примеры | примеров) Создайте удобочитаемое человеком предложение, описывающее содержимое изображения. -
VisualFeatures.Read
: (Примеры | примеров) также известны как оптическое распознавание символов (OCR). Извлеките печатный или рукописный текст из изображений. -
VisualFeatures.DenseCaptions
: плотные субтитры предоставляют дополнительные сведения, создавая подписи по одному предложению для до 10 разных регионов на изображении, включая один для всего изображения. -
VisualFeatures.Tags
. Извлечение тегов содержимого для тысяч узнаваемых объектов, живых существ, пейзажей и действий, которые отображаются на изображениях. -
VisualFeatures.Objects
: обнаружение объектов. Это похоже на теги, но сосредоточено на обнаружении физических объектов в изображении и возвращении их расположения. -
VisualFeatures.SmartCrops
: используется для поиска репрезентативного подрегион изображения для создания эскизов с приоритетом, заданным для включения лиц. -
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.
Дальнейшие действия
Ознакомьтесь с примерами каталогом, чтобы получить подробные примеры, демонстрирующие использование клиентских библиотек.
Способствует
Если вы хотите внести свой вклад в эту библиотеку, ознакомьтесь с руководством по вкладу, чтобы узнать больше о том, как создавать и тестировать код.
Связанные проекты
Azure SDK for JavaScript