Архитектура
Хотя взаимодействие с FindFace Multi происходит в основном через веб-интерфейс, не забудьте уделить немного времени изучению архитектуры программного комплекса. Эти знания необходимы для развертывания, интеграции, обслуживания и устранения проблем при работе FindFace Multi.
В этой главе:
Объекты распознавания. Процесс распознавания
FindFace Multi может распознавать следующие объекты и их атрибуты:
человеческие лица
человеческие силуэты
транспортные средства
FindFace Multi обнаруживает объект на фотографии или видеоизображении и подготавливает его изображение с помощью нормализации. Далее нормализованное изображение используется для извлечения вектора признаков объекта (n-мерного вектора числовых признаков, которые характеризуют объект). Векторы признаков объектов хранятся в базе данных и в дальнейшем используются для верификации и идентификации.
Платформа на основе Docker
FindFace Multi разворачивается в Docker, наборе продуктов формата платформа как услуга (PaaS), которые используют виртуализацию на уровне операционной системы, чтобы поставлять программное обеспечение в пакетах, называемых контейнерами. Каждый сервис FindFace Multi работает в контейнере Docker.
Архитектурные элементы
FindFace Multi состоит из следующих основных архитектурных элементов:
Ядро FindFace, передовая технология распознавания объектов на базе искусственного интеллекта, которая может использоваться в качестве отдельного продукта FindFace Server.
FindFace Multi, готовый прикладной модуль к FindFace Server.
Внутренняя архитектура ядра FindFace позволяет встроить дополнительную функциональность «Видеомагнитофон», которая позволяет записывать, хранить и проигрывать видеоданные с камер.
Схема архитектуры
Ядро FindFace
Внутри ядра FindFace – отдельный продукт FindFace Server. Он включает в себя следующие компоненты:
Компонент |
Используемые порты |
Описание |
Поставщик |
---|---|---|---|
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 Multi функции |
|
findface-video-manager |
18810, 18811 |
Сервис, являющийся частью модуля видеодетекции объектов, через который осуществляется управление детекцией объектов на видео, а именно задаются настройки и список видеопотоков для обработки. |
|
findface-video-worker |
18999 |
Сервис, часть модуля видеодетекции объектов, который распознает объекты на видео и отправляет их нормализованные изображения, соответствующие видеокадры и метаданные (такие как время обнаружения) в сервис |
|
findface-ntls |
443 (TCP), 3133, 3185 |
Локальный сервер лицензий, который проверяет подлинность лицензии FindFace Multi, взаимодействуя с глобальным сервером лицензий NtechLab. Для закрытых систем поддерживается лицензирование через ключ аппаратной защиты и по слепку с оборудования. Поддерживается лицензирование через прокси-сервер. |
|
findface-deduplicator |
18310 |
Сервис сравнивает векторы признаков; используется для дедупликации эпизодов и событий кластеров |
|
findface-liveness-api |
18301 |
Помимо встроенной функциональности, предоставляемой |
|
Tarantool |
Порты шардов (по умолчанию 330xx, 81xx) |
Стороннее программное обеспечение, на основе которого реализована база данных, хранящая извлеченные векторы признаков и события распознавания объектов. Системные данные, карточки, пользовательские аккаунты и настройки камер хранятся в PostgreSQL (часть прикладного модуля FindFace Multi). |
|
etcd |
2379 |
Стороннее программное обеспечение, реализующее распределенное хранилище ключей для компонента |
|
NginX |
80; SSL: 8002, 8003, 443, 80 |
Стороннее программное обеспечение, которое реализует веб-интерфейсы системы. |
|
memcached |
11211 |
Стороннее программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы. Используется компонентом |
Прикладной модуль FindFace Multi
Прикладной модуль FindFace Multi включает в себя следующие компоненты:
Компонент |
Используемые порты |
Описание |
Поставщик |
---|---|---|---|
findface-multi-legacy |
Настраивается |
Сервис, который служит шлюзом доступа к ядру FindFace. Обеспечивает взаимодействие между ядром FindFace и веб-интерфейсом, работой системы в целом, HTTP и веб-сокетом, мониторингом объектов, уведомлениями о событиях, эпизодами, вебхуками, кластеризацией объектов и счетчиками. |
Собственная разработка NtechLab |
findface-multi-pause |
н/п |
Внутренние сервисы, помогающие |
|
findface-multi-audit |
8012, 8013, 8014 |
||
findface-multi-identity-provider |
8022, 8023, 8024 |
||
findface-onvif-discovery |
н/п |
||
findface-multi-legacy-singleton-services |
н/п |
Запускает single-instance сервисы, такие как синхронизация камер с |
|
findface-multi-identity-provider-migrate |
н/п |
Сервисы запускают миграцию базы данных, создают галереи и проводят другие настройки. |
|
findface-multi-legacy-migrate |
н/п |
||
findface-multi-healthcheck |
н/п |
Проверяет работоспособность контейнеров при запуске. Ожидает, что контейнеры будут в статусе “healthy” перед запуском пользовательского интерфейса. |
|
findface-multi-cleaner |
н/п |
Часть функциональности |
|
findface-multi-cleaner-vms |
н/п |
Часть функциональности |
|
findface-multi-file-mover |
н/п |
Сервис-перекладчик, используется для реализации многоуровневого хранения данных. Сервис служит для переноса изображений из кратковременного хранилища в долговременное. |
|
findface-multi-ui |
Настраивается |
Основной веб-интерфейс, использующийся для взаимодействия с FindFace Multi. Функционирует на основе фреймворка Django. Позволяет работать с событиями распознавания объектов, искать объекты в базах данных, управлять камерами, пользователями, карточками и списками наблюдения, собирать статистику в реальном времени и многое другое. |
|
NATS |
4222 |
Стороннее программное обеспечение, которое реализует брокер сообщений внутри |
|
etcd |
2379 |
Стороннее программное обеспечение, реализующее блокировки в сервисе |
|
Pgbouncer |
5439 |
Стороннее программное обеспечение, обеспечивающее облегченный пул соединений для PostgreSQL. Необязательный компонент, используется для увеличения производительности базы данных при высокой нагрузке. |
|
PostgreSQL |
5432 |
Стороннее программное обеспечение, реализующее основную базу данных системы. В базе данных хранятся карточки людей и транспортных средств, а также данные для внутреннего использования, включая учетные записи пользователей и настройки камер. Векторы признаков объектов и события распознавания объектов хранятся в Tarantool (часть ядра FindFace). |
Видеомагнитофон
Видеомагнитофон является дополнительно устанавливаемой частью ядра FindFace. Видеомагнитофон включает в себя следующие компоненты:
Компонент |
Используемые порты |
Описание |
Поставщик |
---|---|---|---|
findface-video-storage |
18611 |
Сервис, реализующий управление видеофрагментами. Получает видеофрагменты от компонента |
Собственная разработка NtechLab |
findface-video-streamer |
9000 |
По запросу от |
|
MongoDB |
27017 |
Стороннее программное обеспечение, реализующее базу данных Видеомагнитофона. База данных хранит метаинформацию о видеофрагментах, включая сведения об их местонахождении. Сами видеофрагменты хранятся в компоненте |
См.также
Развертывание на одиночном сервере или в кластере
Вы можете развернуть FindFace Multi как на одиночном сервере, так и в многосерверной среде. При выборе последнего варианта доступны следующие схемы развертывания:
Центральный сервер FindFace Multi, взаимодействующий с несколькими дополнительными серверами для обработки видео (серверами, на которых установлен только
findface-video-worker
).См. раздел Развертывание FindFace Video Worker на удаленных серверах.
Полностью распределенная архитектура FindFace Multi. Может понадобиться балансировка нагрузки. Свяжитесь с нашими экспертами по адресу support@ntechlab.com для получения рекомендаций.
См. раздел Стандартное развертывание в многосерверной среде.
Аппаратное ускорение на CPU и GPU
Сервисы findface-extraction-api
и findface-video-worker
могут использовать как CPU-, так и GPU-ускорение. Нужный тип ускорения выбирается во время установки из консольного инсталлятора.
Важно
Для выбора конфигурации оборудования см. Требования.
Важно
Если разрешение используемой камеры превышает 1280x720 пикселей, настоятельно рекомендуется использовать вариант findface-video-worker-gpu
с ускорением на GPU.
Примечание
Liveness-детектор на CPU работает гораздо медленнее, чем на GPU.