Архитектура

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

В этой главе:

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

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

  • Ядро FindFace,

  • (опционально) прикладные модули.

    Примечание

    В базовой конфигурации прикладные модули отсутствуют. Свяжитесь с нашими экспертами по адресу info@ntechlab.com, чтобы узнать больше о создании с нашей помощью приложения «под ключ».

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

architecture_ru

Компонент

Описание

Поставщик

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

См.также

Components in Depth

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

В зависимости от требований к характеристикам проектируемой системы анализа и распознавания биометрических данных, 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.