Распознавание лиц на основе JavaScript с помощью Face API и Docker

3, 2, 1… Запускаем!

Если вы хотите реализовать это самостоятельно, перейдите к разделу «Реализация» ниже.

Если вы просто хотите поиграть с алгоритмом распознавания лиц в реальном времени без какого-либо программирования, вы можете запустить следующее Dockerized веб-приложение ниже:

docker run -p 8080:8080 billyfong2007/node-face-recognition:latest

Эта команда Docker запустит образ Docker из Docker Hub и привяжет сетевой порт 8080 контейнера к вашему компьютеру. Вы можете получить доступ к алгоритму распознавания лиц в своем браузере, перейдя по ссылке:

localhost:8080

Веб-страница получит доступ к веб-камере вашего ноутбука и начнет анализировать ваши выражения в реальном времени!

Не волнуйтесь, это работает полностью в автономном режиме, вы будете единственным, кто может просматривать видеопоток… при условии, что ваш компьютер не скомпрометирован.

В любом случае, вы можете начать получать удовольствие, делая всевозможные смешные рожи (или грустные / злые и т. Д.) На своем компьютере, как глупый человек!

Выполнение

Этот алгоритм использует Face API, который построен поверх core API tensorflow.js. Вы также можете обучить этот алгоритм распознавать разные лица.

Для тех из вас, кто все еще читает, возможно, вы хотели бы узнать, как создать собственное приложение Node для использования Face API? Хорошо, поехали:

Вы можете найти все исходные файлы в моем репозитории GitHub.

Во-первых, вам нужно установить live-сервер NPM для обслуживания вашего HTML:

npm install -g live-server

Создайте простую HTML-страницу с именем index.html:

Этот HTML-код содержит элемент видео, который мы будем использовать для потоковой передачи с веб-камеры вашего ноутбука.

Затем создайте script.js со следующим содержимым:

Скрипт делает несколько вещей:

  1. Асинхронно загружать все модели из каталога
  2. Запросить разрешение на доступ к вашей веб-камере
  3. Как только видео запустит поток, создайте холст и вызовите Face API для рисования на холсте каждые 100 мс.

Необходимые модели машинного обучения можно скачать с моего репозитория GitHub:

Когда у вас есть index.html, script.js и модели, вы почти готовы к работе. Вам все равно нужно включить face-api.min.js, чтобы ваше приложение начало работать:

Теперь вы готовы! Начните обслуживать свою HTML-страницу с помощью live-сервера:

cd /directory-to-your-project
live-server

Эти простые проекты JavaScript позволили мне почувствовать вкус машинного обучения, я хотел бы сделать с ним больше, но я не уверен, какое практическое применение этот алгоритм будет иметь в реальной жизни. Что вы думаете?

P.S: Это моя первая статья на Medium, дайте мне знать, если вы считаете, что эта статья нуждается в дополнительных разъяснениях! :)