Архитектура
Хотя взаимодействие с ПК FindFace происходит в основном через веб-интерфейс, не забудьте уделить немного времени изучению архитектуры программного комплекса. Эти знания необходимы для развертывания, интеграции, обслуживания и устранения проблем при работе ПК FindFace.
В этой главе:
Архитектурные элементы
ПК FindFace состоит из следующих основных архитектурных элементов:
Ядро FindFace, передовая технология распознавания лиц на базе искусственного интеллекта, которая может использоваться в качестве отдельного продукта FindFace Enterprise Server.
ПК FindFace, готовый прикладной модуль к FindFace Enterprise Server.
Схема архитектуры
Ядро FindFace
Ядро FindFace включает в себя следующие компоненты:
Компонент |
Используемые порты |
Описание |
Поставщик |
---|---|---|---|
findface-extraction-api |
18666 |
Сервис, использующийся для обнаружения лиц на статических изображениях и извлечения из лиц биометрических образцов (векторов признаков). Сервис также выполняет распознавание таких атрибутов лица, как пол, возраст, эмоции, борода, очки, медицинская маска и др., а также распознавание человеческих силуэтов (если были заданы соответствующие настройки). Работа на базе нейронных сетей. Поддерживается CPU- или GPU-ускорение. |
Собственная разработка NtechLab |
findface-sf-api |
18411 |
Сервис, реализующий HTTP API обнаружения и распознания лиц. |
|
findface-tarantool-server |
32001, порты шардов (по умолчанию 330xx, 81xx) |
Сервис, обеспечивающий взаимодействие между сервисом |
|
findface-upload |
3333 |
Веб-сервер на базе NginX, используемый как хранилище исходных изображений, миниатюр лиц и нормализованных изображений лиц. |
|
findface-facerouter |
18820 |
Сервис, который используется для задания правил обработки обнаруженных на видео лиц. В ПК FindFace функции |
|
findface-video-manager |
18810, 18811 |
Сервис, являющийся частью модуля видеодетекции лиц, через который осуществляется управление детекцией лиц на видео, а именно задаются настройки и список видеопотоков для обработки. |
|
findface-video-worker |
18999 |
Сервис, часть модуля видеодетекции лиц, который распознает лица на видео и отправляет их нормализованные изображения, соответствующие видеокадры и метаданные (такие как ID камеры и время обнаружения лица) в сервис |
|
findface-ntls |
443 (TCP), 3133, 3185 |
Локальный сервер лицензий, который проверяет подлинность лицензии ПК FindFace, взаимодействуя с глобальным сервером лицензий NtechLab. Для закрытых систем поддерживается работа с аппаратными лицензионными ключами. Поддерживается лицензирование через прокси-сервер. |
|
Tarantool |
Порты шардов (по умолчанию 330xx, 81xx) |
Стороннее программное обеспечение, на основе которого реализована биометрическая база данных, хранящая извлеченные биометрические образцы (векторы признаков) и события обнаружения лиц. Системные данные, досье, пользовательские аккаунты и настройки камер хранятся в PostgreSQL (часть прикладного модуля ПК FindFace). |
|
etcd |
2379 |
Стороннее программное обеспечение, реализующее распределенное хранилище ключей для компонента |
|
NginX |
80; SSL: 8002, 8003, 443, 80 |
Стороннее программное обеспечение, которое реализует веб-интерфейсы системы. |
|
memcached |
11211 |
Стороннее программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы. Используется для временного хранения извлеченных биометрических образцов перед их записью в базу данных Tarantool. |
Прикладной модуль ПК FindFace
Прикладной модуль ПК FindFace включает в себя следующие компоненты:
Компонент |
Используемые порты |
Описание |
Поставщик |
---|---|---|---|
findface-security |
Настраивается |
Компонент, обеспечивающий доступ конечного пользователя к функциям ядра FindFace. Обеспечивает взаимодействие между ядром FindFace и веб-интерфейсом, функционирование системы в целом, HTTP и веб-сокет, обновление биометрической базы данных, отправку уведомлений о событиях, объединение событий в эпизоды, работу вебхуков, счетчики, постановку в очередь видеофайлов на обработку. Включает в себя следующие внутренние сервисы: проверка лицензии, менеджер счетчиков, менеджер вебхуков, группировщик персон, менеджер эпизодов, менеджер очереди на обработку видеофайлов. Последние четыре сервиса можно включать и выключать через файл конфигурации |
Собственная разработка NtechLab |
findface-security-ui |
Настраивается |
Основной веб-интерфейс, использующийся для взаимодействия с ПК FindFace. Позволяет работать с событиями идентификации лиц, искать лица в базах данных, управлять камерами, пользователями, досье и списками наблюдения, собирать статистику в реальном времени и многое другое. |
|
findface-counter |
18300 |
Сервис, используемый для дедупликации лиц. |
|
findface-liveness-api |
18301 |
Помимо встроенного функционала, предоставляемого |
|
PostgreSQL |
5432 |
Стороннее программное обеспечение, реализующее основную базу данных системы. В данной базе хранятся детализированные досье персон с разбиением по категориям (спискам наблюдения), а также данные внутреннего характера, такие как профили пользователей ПК FindFace, настройки видеокамер и пр. Биометрические данные лиц и события идентификации лиц хранятся в Tarantool (часть ядра FindFace). |
|
Pgbouncer |
5439 |
Стороннее программное обеспечение, обеспечивающее облегченный пул соединений для PostgreSQL. Необязательный компонент, используется для увеличения производительности базы данных при высокой нагрузке. |
|
Redis |
6379 |
Стороннее программное обеспечение, которое реализует брокер сообщений внутри |
|
Django |
5439 |
Стороннее программное обеспечение, реализующее веб-фреймворк для веб-интерфейса ПК FindFace. |
См.также
Развертывание на одиночном сервере или в кластере
Вы можете развернуть ПК FindFace как на одиночном сервере, так и в кластерной среде. При выборе последнего варианта доступны следующие схемы развертывания:
Центральный сервер ПК FindFace, взаимодействующий с несколькими дополнительными серверами для обработки видео (с одним установленным компонентом
findface-video-worker
).Полностью распределенная архитектура ПК FindFace. Может понадобиться балансировка нагрузки.
Подробнее см. раздел Типичная установка в кластере.
Аппаратное ускорение на CPU и GPU
Сервисы findface-extraction-api
и findface-video-worker
могут использовать как CPU-, так и GPU-ускорение. Нужный тип ускорения выбирается во время установки из консольного инсталлятора.
Если установка ПК FindFace выполняется из 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.