Архитектура¶
Обязательно уделите немного времени изучению архитектуры FindFace Enterprise Server. Эти знания необходимы для развертывания, интеграции, обслуживания и устранения проблем при работе программного комплекса.
В этой главе:
Архитектурные элементы¶
FindFace Enterprise Server состоит из следующих основных архитектурных элементов:
Ядро FindFace,
(опционально) прикладные модули.
Примечание
В базовой конфигурации прикладные модули отсутствуют. Свяжитесь с нашими экспертами по адресу info@ntechlab.com, чтобы узнать больше о создании с нашей помощью приложения «под ключ».
Ядро 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-video-manager | Часть модуля видеодетекции лиц. Сервис, через который осуществляется управление детекцией лиц на видео, а именно задаются настройки и список видеопотоков для обработки. | |
findface-video-worker | Часть модуля видеодетекции лиц. Сервис, который распознает лицо на видео и отправляет его нормализованное изображение, полный кадр и метаданные (такие как ID камеры и время обнаружения) в сервис findface-facerouter для дальнейшей обработки в соответствие с заданными правилами. CPU- или GPU-ускорение. |
|
findface-ntls | Сервер лицензий, который проверяет подлинность лицензии FindFace Enterprise Server, взаимодействуя с глобальным сервером лицензий NtechLab или USB-ключом. | |
Tarantool | Стороннее программное обеспечение, на основе которого реализована биометрическая база данных, хранящая извлеченные биометрические образцы (векторы признаков). | Tarantool |
etcd | Стороннее программное обеспечение, реализующее распределенное хранилище ключей для компонента findface-video-manager . Используется в качестве координационной службы в распределенной системе, обеспечивая отказоустойчивость видеодетектора лиц. |
etcd |
NGINX | Стороннее программное обеспечение, которое реализует компонент findface-upload . |
nginx |
memcached | Стороннее программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы. Используется компонентом findface-extraction-api для временного хранения извлеченных биометрических образцов перед их записью в базу данных Tarantool. |
memcached |
См.также
Развертывание на одиночном сервере или в кластере¶
В зависимости от требований к характеристикам проектируемой системы анализа и распознавания биометрических данных, FindFace Enterprise Server может быть развернут в соответствии со следующими архитектурными схемами:
Схема | Рекомендация |
---|---|
Развертывание на одиночном сервере | Вы можете развернуть FindFace Enterprise Server и модели нейронной сети на одном физическом сервере, если количество лиц в базе данных не превышает 1 000 000 (рекомендуемое ограничение). Используйте этот вариант, если вы только приступаете к развертыванию своей системы и вам нужно сформировать требования к ней. |
Развертывание на кластере серверов | Если количество лиц в базе данных превышает 1 000 000, рекомендуется развернуть FindFace Enterprise Server в кластерной среде. В этом случае компоненты FindFace Enterprise Server распределяются по нескольким физическим серверам. Данный тип развертывания обеспечивает использование FindFace Enterprise Server в средних и крупных проектах и имеет потенциал практически неограниченного масштабирования. Он также подходит для профессиональных проектов с высокой нагрузкой и жесткими требованиями к производительности. |
При развертывании в кластере возможны следующие схемы:
- Один центральный сервер FindFace Enterprise Server и несколько дополнительных серверов
findface-video-worker
. - Компоненты FindFace Enterprise Server распределяются между несколькими физическими серверами. При необходимости настраивается балансировка нагрузки.
Аппаратное ускорение на CPU и GPU¶
Сервисы findface-extraction-api
и findface-video-worker
могут использовать как CPU-, так и GPU-ускорение. Нужный тип ускорения выбирается во время установки из консольного инсталлятора.
Если установка FindFace Enterprise Server выполняется из apt-репозитория, на CPU-сервере нужно развернуть пакеты findface-extraction-api
и/или findface-video-worker-cpu
, а на GPU-сервере пакеты findface-extraction-api-gpu
и/или findface-video-worker-gpu
.
Важно
Для выбора конфигурации оборудования см. System Requirements.
Важно
Если разрешение используемой камеры превышает 1280x720 пикселей, настоятельно рекомендуется использовать пакет с ускорением на GPU findface-video-worker-gpu
.