Архитектура

Хотя взаимодействие с FindFace Security происходит в основном через веб-интерфейс, не забудьте уделить немного времени изучению архитектуры программного комплекса. Эти знания необходимы для развертывания, интеграции, обслуживания и устранения проблем при работе FindFace Security.

В этой главе:

Архитектурные элементы

FindFace Security состоит из следующих основных архитектурных элементов:

  • Ядро FindFace, передовая технология распознавания лиц на базе искусственного интеллекта, которая может использоваться в качестве отдельного продукта FindFace Enterprise Server.
  • FindFace Security, готовый прикладной модуль к FindFace Enterprise Server.

Ядро FindFace

Ядро FindFace включает в себя следующие компоненты:

Компонент Описание Поставщик
findface-extraction-api Сервис, использующийся для обнаружения лиц на статических изображениях и извлечения из лиц биометрических образцов (векторов признаков). Работа на базе нейронных сетей. Поддерживается CPU- или GPU-ускорение. Собственная разработка Ntech Lab
findface-sf-api Сервис, реализующий HTTP API обнаружения и распознания лиц.
findface-tarantool-server Сервис, обеспечивающий взаимодействие между сервисом findface-sf-api и биометрической базой данных (базой, в которой хранятся биометрические образцы) на основе Tarantool.
findface-upload Веб-сервер на базе NginX, используемый как хранилище исходных изображений, миниатюр лиц и нормализованных изображений лиц.
findface-facerouter Сервис, который используется для задания правил обработки обнаруженных на видео лиц. В FindFace Security функции findface-facerouter выполняются findface-security (см. Прикладной модуль FindFace Security). Однако в целях интеграции вы можете установить и настроить данный компонент (см. Плагины).
findface-video-manager Сервис, являющийся частью модуля видеодетекции лиц, через который осуществляется управление детекцией лиц на видео, а именно задаются настройки и список видеопотоков для обработки.
findface-video-worker Сервис, часть модуля видеодетекции лиц, который распознает лица на видео и отправляет их нормализованные изображения, соответствующие видеокадры и метаданные (такие как ID камеры и время обнаружения лица) в сервис findface-facerouter для дальнейшей обработки в соответствие с заданными правилами. Поддерживается CPU- и GPU-ускорение.
findface-ntls Локальный сервер лицензий, который проверяет подлинность лицензии FindFace Security, взаимодействуя с глобальным сервером лицензий NtechLab. Для закрытых систем поддерживается работа с аппаратными лицензионными ключами. Поддерживается лицензирование через прокси-сервер.
Tarantool Стороннее программное обеспечение, на основе которого реализована биометрическая база данных, хранящая извлеченные биометрические образцы (векторы признаков) и события обнаружения лиц. Системные данные, досье, пользовательские аккаунты и настройки камер хранятся в PostgreSQL (часть прикладного модуля FindFace Security). Tarantool
etcd Стороннее программное обеспечение, реализующее распределенное хранилище ключей для компонента findface-video-manager. Используется в качестве координационной службы в распределенной системе, обеспечивая отказоустойчивость видеодетектора лиц. etcd
NginX Стороннее программное обеспечение, которое реализует веб-интерфейсы системы. nginx
memcached Стороннее программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы. Используется для временного хранения извлеченных биометрических образцов перед их записью в базу данных Tarantool. memcached

Прикладной модуль FindFace Security

Прикладной модуль FindFace Security включает в себя следующие компоненты:

Компонент Описание Поставщик
findface-security Компонент, обеспечивающий доступ конечного пользователя к функциям ядра FindFace. Обеспечивает взаимодействие между ядром FindFace и веб-интерфейсом, функционирование системы в целом, HTTP и веб-сокет, обновление биометрической базы данных, отправку уведомлений о событиях, объединение событий в эпизоды, вебхуки. Включает в себя следующие внутренние сервисы: обновление списков для мониторинга, уведомление о неприятных событиях, обновление вебхуков, проверка лицензии, управление эпизодами событий. Собственная разработка Ntech Lab
ffsecurity-ui Основной веб-интерфейс, использующийся для взаимодействия с FindFace Security. Позволяет работать с событиями идентификации лиц, искать лица, управлять камерами, пользователями, досье и списками наблюдения.
PostgreSQL Стороннее программное обеспечение, реализующее основную базу данных системы. В данной базе хранятся детализированные досье персон с разбиением по категориям (спискам наблюдения), а также данные внутреннего характера, такие как профили пользователей FindFace Security, настройки видеокамер и пр. Биометрические данные лиц и события идентификации лиц хранятся в Tarantool (часть ядра FindFace). PostgreSQL
Redis Стороннее программное обеспечение, которое реализует брокер сообщений внутри findface-security. Redis
Django Стороннее программное обеспечение, реализующее веб-фреймворк для веб-интерфейса FindFace Security. Django

Развертывание на одиночном сервере или в кластере

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

  • Центральный сервер FindFace Security, взаимодействующий с несколькими дополнительными серверами для обработки видео (с одним установленным компонентом findface-video-worker).
  • Полностью распределенная архитектура FindFace Security. Может понадобиться балансировка нагрузки.

Подробнее см. раздел Типичная установка в кластере.

Аппаратное ускорение на CPU и GPU

Сервисы findface-extraction-api и findface-video-worker могут использовать как CPU-, так и GPU-ускорение. Нужный тип ускорения выбирается во время установки из консольного инсталлятора.

Если установка FindFace Security выполняется из apt-репозитория, на CPU-сервере нужно развернуть пакеты findface-extraction-api и/или findface-video-worker-cpu, а на GPU-сервере пакеты findface-extraction-api-gpu и/или findface-video-worker-gpu.

Важно

Для выбора конфигурации оборудования см. Системные требования.

Важно

Если разрешение используемой камеры превышает 1280x720 пикселей, настоятельно рекомендуется использовать пакет с ускорением на GPU findface-video-worker-gpu.

Примечание

Liveness-детектор на CPU работает гораздо медленнее, чем на GPU.