Архитектура¶
Хотя взаимодействие с FindFace Security происходит в основном через веб-интерфейс, не забудьте уделить немного времени изучению архитектуры программного комплекса. Эти знания необходимы для развертывания, интеграции, обслуживания и устранения проблем при работе FindFace Security.
В этой главе:
Архитектурные элементы¶
FindFace Security состоит из следующих основных архитектурных элементов:
- Ядро FindFace, передовая технология распознавания лиц на базе искусственного интеллекта, которая может использоваться в качестве отдельного продукта FindFace Enterprise Server.
- FindFace Security, готовый прикладной модуль к FindFace Enterprise Server.
Ядро FindFace¶
Ядро FindFace включает в себя следующие компоненты:
Компонент | Описание | Поставщик |
---|---|---|
findface-extraction-api | Сервис, использующийся для обнаружения лиц на статических изображениях и извлечения из лиц биометрических образцов (векторов признаков). Сервис также выполняет распознавание таких атрибутов лица, как пол, возраст, эмоции, борода, очки, медицинская маска и др., а также распознавание человеческих силуэтов (если были заданы соответствующие настройки). Работа на базе нейронных сетей. Поддерживается CPU- или GPU-ускорение. | Собственная разработка NtechLab |
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 и веб-сокет, обновление биометрической базы данных, отправку уведомлений о событиях, объединение событий в эпизоды, работу вебхукоов и счетчики. Включает в себя следующие внутренние сервисы: проверка лицензии, менеджер вебхуков, группировщик персон, менеджер эпизодов, менеджер счетчиков. | Собственная разработка NtechLab |
ffsecurity-ui | Основной веб-интерфейс, использующийся для взаимодействия с FindFace Security. Позволяет работать с событиями идентификации лиц, искать лица в базах данных, управлять камерами, пользователями, досье и списками наблюдения, собирать статистику в реальном времени и многое другое. | |
findface-counter | Сервис, используемый для дедупликации лиц. | |
PostgreSQL | Стороннее программное обеспечение, реализующее основную базу данных системы. В данной базе хранятся детализированные досье персон с разбиением по категориям (спискам наблюдения), а также данные внутреннего характера, такие как профили пользователей FindFace Security, настройки видеокамер и пр. Биометрические данные лиц и события идентификации лиц хранятся в Tarantool (часть ядра FindFace). | PostgreSQL |
Pgbouncer | Стороннее программное обеспечение, обеспечивающее облегченный пул соединений для PostgreSQL. Необязательный компонент, используется для увеличения производительности базы данных при высокой нагрузке. | PgBouncer |
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.