Распознавание.js
Node.js — фреймворк для распознавания объектов с помощью нейронных сетей
Изображения доступны по ссылкам.
brew install graphicsmagick
npm i recognizejs
const Recognizejs = require('recognizejs');
const myModel = new Recognizejs();
// Инициализация, функция init возвращает Promise, рекомендуется использовать await для получения результата
await myModel.init();
Примечание: инициализация модели может занять 1–2 минуты (в зависимости от производительности вашего устройства), поэтому будьте терпеливы.
const fs = require('fs');
const myImgBuffer = fs.readFileSync(myImagePath);
recognize
модели и передайте буфер изображения в качестве параметра:// Функция recognize возвращает Promise, рекомендуется использовать await
const results = await myModel.recognize(myImgBuffer);
/*
[
{
className: ['className1', 'className2', 'className...'],
probability: 0.9
},
{
className: ['className1', 'className2', 'className...'],
probability: 0.599
}
]
*/
console.log(results);
Пример кода можно найти в папке examples.
new Recognizejs(config?);
Параметр config является необязательным и имеет следующие свойства:
{
cocoSsd?: {
// base: управляет базовой моделью CNN, может быть «mobilenet_v1», «mobilenet_v2» или «lite_mobilenet_v2». По умолчанию — «lite_mobilenet_v2». lite_mobilenet_v2 имеет наименьший размер и самую быструю скорость вывода. mobilenet_v2 обеспечивает наивысшую точность классификации.
base?: ObjectDetectionBaseModel,
// Необязательная строка для указания пользовательского URL модели. Полезно для регионов/стран, которые не могут получить доступ к моделям, размещенным на GCP.
modelUrl?: string
},
mobileNet?: {
// MobileNet version number. Используйте 1 для MobileNetV1 и 2 для MobileNetV2. По умолчанию 1.
version: 1,
// Управляет шириной сети и компромиссом между производительностью и точностью. Меньшие значения альфа снижают точность и повышают производительность. 0,25 применимо только к V1. По умолчанию 1,0.
alpha?: 0.25 | .50 | .75 | 1.0,
// Необязательно, используется для указания URL-адреса модели или объекта IOHandler tf.io. Возвращает модель объекта.
// Если вы находитесь в Китае, пожалуйста, измените modelUrl на модель, размещенную на https://hub.tensorflow.google.cn.
modelUrl?: string,
// Необязательно, для указания ожидаемого диапазона пикселей для модели, размещённой на modelUrl. Обычно [0, 1] или [-1, 1].
inputRange?: [number, number]
}
}
cocoSsd
и mobileNet
— это две разные нейронные сети. cocoSsd
используется для обнаружения нескольких объектов на изображении, а mobileNet
используется для точного распознавания одного объекта.
model.init(modelType?);
Функция init
возвращает Promise, который можно обработать с помощью await
.
Параметр modelType может быть строкой или массивом. Здесь вы можете установить модели для загрузки, чтобы избежать загрузки ненужных моделей. [Если modelType не установлен, обе модели cocoSsd и mobileNet будут загружены автоматически]
Пример:
model.init();
// Или
model.init(['cocoSsd', 'mobileNet']);
// Или
model.init('cocoSsd');
// Или
model.init('mobileNet');
Если вы не используете функцию init
для загрузки моделей, они будут загружаться автоматически при необходимости, но загрузка моделей может занять много времени, поэтому выберите подходящий метод загрузки в зависимости от ситуации.
model.recognize(buf);
Функция recognize
возвращает Promise, который можно обработать с помощью await
.
Параметр buf — это данные Buffer файла изображения, которые вы можете прочитать с помощью модуля fs.
Возвращаемое значение:
[
{
className: [
'giant panda',
'panda',
'panda bear',
'coon bear',
'Ailuropoda melanoleuca'
],
probability: 0.9819085597991943
},
{
className: [ 'Chihuahua' ],
probability: 0.006128392647951841
},
{
className: [ 'French bulldog' ],
probability: 0.0026271280366927385
}
]
Пример:
const myImgBuf = require('fs').readFileSync(myImgPath);
model.recognize(myImgBuf);
model.detect(buf)
Функция detect
возвращает Promise, который можно обработать с помощью await
.
Параметр buf — это данные Buffer файла изображения, которые вы можете прочитать с помощью модуля fs.
Возвращаемое значение:
[
{
bbox: {
x: 66.92952662706375,
y: 158.30181241035461,
width: 157.67111629247665,
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )