По сценарию Йеруна

Серия распознавания лиц

В предыдущем посте я писал про приложение Doorman. В этом посте я обещал вернуться с некоторыми подробностями о том, как это работает. Однако спустя несколько запросов на приложение швейцар был полностью переработан и перекодирован.

Первоначальная итерация состояла из двух скриптов Python, работающих на двух разных машинах. Одна машина, подключенная к большому экрану и веб-камера у входа на мероприятие (при регистрации) для распознавания лиц посетителей. Еще одна машина, подключенная к большому экрану, показывающему присутствующих посетителей (своего рода «кто есть кто») на месте проведения мероприятия. Эти приложения общались по электронной почте.

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

Проблема с этими изначально работающими приложениями также заключается в том, что их трудно перенести в другие места. А вести несколько мероприятий одновременно очень сложно. Кроме того, настройка сделала практически невозможным администрирование события после его начала.

Все эти факторы привели к тому, что за пару недель было принято несколько решений:

  • использовать браузер как способ доступа к приложению
  • запустить приложение во фреймворке, которым пользуются наши коллеги-разработчики
  • запустить нейронные сети в браузере

Это приводит к ряду положительных эффектов:

  • мы можем использовать практически любое оборудование, если у нас есть браузер и Wi-Fi
  • мы можем получить помощь, так как мы используем стандартную платформу
  • данные не покидают браузер, поэтому меньше проблем с GDPR/конфиденциальностью

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

Текущее веб-приложение швейцара (швейцар как услуга) может:

  • обнаружение лица / определение выражения / оценка возраста и пола / распознавание лиц — все с моделями, работающими в браузере в tensorflow.js
  • несколько событий одновременно с использованием одного и того же бэкэнда с помощью уникальных URL-адресов для каждого события
  • многократное распознавание и кто есть кто проверяет каждое событие
  • каждое событие получает своего собственного пользователя-администратора для администрирования события (добавления посетителей)