Архитектура

Хотя взаимодействие с FindFace CIBR происходит в основном через веб-интерфейс, не забудьте уделить немного времени изучению архитектуры программного комплекса. Эти знания необходимы для развертывания, интеграции, обслуживания и устранения проблем при работе FindFace CIBR.

В этой главе:

Процесс распознавания

FindFace CIBR обнаруживает изображение человеческого лица на фотографии или видеоизображении и подготавливает его посредством алгоритма нормализации. Далее нормализованное изображение используется для извлечения вектора признаков лица (n-мерного вектора числовых признаков, которые характеризуют лицо). Векторы признаков объектов хранятся в базе данных и в дальнейшем используются для верификации и идентификации.

Платформа на основе Docker

FindFace CIBR разворачивается в Docker, наборе продуктов формата платформа как услуга (PaaS), которые используют виртуализацию на уровне операционной системы, чтобы поставлять программное обеспечение в пакетах, называемых контейнерами. Каждый сервис FindFace CIBR работает в контейнере Docker.

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

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

  • Ядро FindFace, передовая технология распознавания объектов на базе искусственного интеллекта, которая может использоваться в качестве отдельного продукта FindFace Enterprise Server.

  • Прикладной модуль (FindFace CIBR), реализующий набор инструментов для проведения уголовных расследований с использованием видео- и фотоматериалов.

Схема архитектуры

architecture_ru

Ядро FindFace

Внутри ядра FindFace – отдельный продукт FindFace Enterprise Server. Он включает в себя следующие компоненты:

Компонент

Используемые порты

Описание

Поставщик

findface-extraction-api

18666

Сервис, использующий нейронные сети для обнаружения лица на изображении и извлечения его вектора признаков. Он также распознает атрибуты лиц, например, пол, возраст, эмоции, борода, очки. CPU- или GPU-ускорение.

Собственная разработка NtechLab

findface-sf-api

18411

Сервис, реализующий HTTP API обнаружения и распознания лиц.

findface-tarantool-server

32001, порты шардов (по умолчанию 330xx, 81xx)

Сервис, обеспечивающий взаимодействие между сервисом findface-sf-api и базой данных векторов признаков лиц на основе Tarantool.

findface-upload

3333

Веб-сервер на базе NginX, используемый как хранилище исходных изображений, миниатюр и нормализованных изображений лиц.

findface-facerouter

18820

Сервис, который используется для задания правил обработки обнаруженных на видео лиц. В FindFace CIBR функции findface-facerouter выполняются findface-multi-legacy (см. Прикладной модуль (FindFace CIBR)).

findface-video-manager

18810, 18811

Сервис, являющийся частью модуля видеодетекции лиц, через который осуществляется управление детекцией лиц на видео, а именно задаются настройки и список видеофайлов для обработки.

findface-video-worker

18999

Сервис, часть модуля видеодетекции лиц, который распознает лица на видео и отправляет их нормализованные изображения, соответствующие видеокадры и метаданные (такие как время обнаружения) в сервис findface-facerouter для дальнейшей обработки в соответствие с заданными правилами. Поддерживается CPU- и GPU-ускорение.

findface-ntls

443 (TCP), 3133, 3185

Локальный сервер лицензий, который проверяет подлинность лицензии FindFace CIBR, взаимодействуя с глобальным сервером лицензий NtechLab. Для закрытых систем поддерживается лицензирование через ключ аппаратной защиты и по слепку с оборудования.

findface-counter

18300

Сервис, используемый для дедупликации событий.

Tarantool

Порты шардов (по умолчанию 330xx, 81xx)

Стороннее программное обеспечение, на основе которого реализована база данных, хранящая извлеченные векторы признаков и события распознавания лиц. Системные данные, карточки, пользовательские аккаунты камер хранятся в PostgreSQL (часть прикладного модуля FindFace CIBR).

Tarantool

etcd

2379

Стороннее программное обеспечение, реализующее распределенное хранилище ключей для компонента findface-video-manager. Используется в качестве координационной службы в распределенной системе, обеспечивая отказоустойчивость видеодетектора лиц.

etcd

NginX

80; SSL: 8002, 8003, 443, 80

Стороннее программное обеспечение, которое реализует веб-интерфейсы системы.

nginx

memcached

11211

Стороннее программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы. Используется компонентом findface-sf-api для временного хранения извлеченных векторов признаков лиц перед их записью в базу данных Tarantool.

memcached

Прикладной модуль (FindFace CIBR)

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

Компонент

Используемые порты

Описание

Поставщик

findface-multi-legacy

Настраивается

Сервис, который служит шлюзом доступа к ядру FindFace. Обеспечивает взаимодействие между ядром FindFace и веб-интерфейсом, HTTP и веб-сокетом, обеспечивает мониторинг лиц, уведомления о событиях и т.д., работу системы в целом.

Собственная разработка NtechLab

findface-multi-pause

н/п

Внутренние сервисы, помогающие findface-multi-legacy. Сервис findface-multi-audit является заделом на будущее. Он станет полностью функциональными в следующих версиях. На данный момент он частично дублирует функциональность findface-multi-legacy. Используйте findface-multi-legacy для работы с ним. Сервис findface-multi-identity-provider служит для аутентификации и управления пользователями и ролевой моделью доступов.

findface-multi-audit

8012, 8013, 8014

findface-multi-identity-provider

8022, 8023, 8024

cleaner

н/п

Сервис отвечает за очистку данных.

findface-multi-ui

Настраивается

Основной веб-интерфейс, использующийся для взаимодействия с FindFace CIBR. Функционирует на основе фреймворка Django. Позволяет работать с событиями распознавания лиц, искать лица в базах данных, управлять происшествиями, пользователями, карточками и списками наблюдения и многое другое.

NATS

4222

Стороннее программное обеспечение, которое реализует брокер сообщений внутри findface-multi-legacy.

NATS

etcd

2379

Стороннее программное обеспечение, реализующее блокировки в сервисе findface-multi-legacy, например блокировки в механизме проверки лицензии, отчетах, обработке видео и т. д.

etcd

Pgbouncer

5439

Стороннее программное обеспечение, обеспечивающее облегченный пул соединений для PostgreSQL. Необязательный компонент, используется для увеличения производительности базы данных при высокой нагрузке.

PgBouncer

PostgreSQL

5432

Стороннее программное обеспечение, реализующее основную базу данных системы. В базе данных хранятся карточки людей и данные для внутреннего использования. Векторы признаков лиц и события распознавания лиц хранятся в Tarantool (часть ядра FindFace).

PostgreSQL

Аппаратное ускорение на CPU и GPU

Сервисы findface-extraction-api и findface-video-worker могут использовать как CPU-, так и GPU-ускорение. Нужный тип ускорения выбирается во время развертывания.

Важно

Для выбора конфигурации оборудования см. Требования.

Важно

Если разрешение видео превышает 1280x720 пикселей, настоятельно рекомендуется использовать пакет с ускорением на GPU findface-video-worker.