1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/bd999-recognizejs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_CN.md 7.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 20:19 842ebb5

Распознавание.js

Node.js — фреймворк для распознавания объектов с помощью нейронных сетей

Изображения доступны по ссылкам.

Установка

  1. Сначала скачайте и установите GraphicsMagick (http://www.graphicsmagick.org/). В Mac OS X вы можете легко использовать Homebrew (https://brew.sh/) для установки:
brew install graphicsmagick
  1. Затем используйте npm для загрузки Recognizejs:
npm i recognizejs

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

Импорт Recognizejs в ваш проект:

const Recognizejs = require('recognizejs');

Попробуйте Recognizejs

  1. Создайте новый объект модели Recognizejs и инициализируйте его:
const myModel = new Recognizejs();

// Инициализация, функция init возвращает Promise, рекомендуется использовать await для получения результата
await myModel.init();

Примечание: инициализация модели может занять 1–2 минуты (в зависимости от производительности вашего устройства), поэтому будьте терпеливы.

  1. Прочитайте файл с вашим изображением:
const fs = require('fs');

const myImgBuffer = fs.readFileSync(myImagePath);
  1. Вызовите функцию 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.

API

Создание объекта Recognizejs

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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/bd999-recognizejs.git
git@api.gitlife.ru:oschina-mirror/bd999-recognizejs.git
oschina-mirror
bd999-recognizejs
bd999-recognizejs
master