Архитектура
Хотя взаимодействие с FindFace CIBR происходит в основном через веб-интерфейс, не забудьте уделить немного времени изучению архитектуры программного комплекса. Эти знания необходимы для развертывания, интеграции, обслуживания и устранения проблем при работе FindFace CIBR.
В этой главе:
Процесс распознавания
FindFace CIBR обнаруживает изображение человеческого лица на фотографии или видеоизображении и подготавливает его посредством алгоритма нормализации. Далее нормализованное изображение используется для извлечения вектора признаков лица (n-мерного вектора числовых признаков, которые характеризуют лицо). Векторы признаков объектов хранятся в базе данных и в дальнейшем используются для верификации и идентификации.
Платформа на основе Docker
FindFace CIBR разворачивается в Docker, наборе продуктов формата платформа как услуга (PaaS), которые используют виртуализацию на уровне операционной системы, чтобы поставлять программное обеспечение в пакетах, называемых контейнерами. Каждый сервис FindFace CIBR работает в контейнере Docker.
Архитектурные элементы
FindFace CIBR состоит из следующих основных архитектурных элементов:
Ядро FindFace, передовая технология распознавания объектов на базе искусственного интеллекта, которая может использоваться в качестве отдельного продукта FindFace Enterprise Server.
Прикладной модуль (FindFace CIBR), реализующий набор инструментов для проведения уголовных расследований с использованием видео- и фотоматериалов.
Схема архитектуры

Ядро 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-upload  | 
3333  | 
Веб-сервер на базе NginX, используемый как хранилище исходных изображений, миниатюр и нормализованных изображений лиц.  | 
|
findface-facerouter  | 
18820  | 
Сервис, который используется для задания правил обработки обнаруженных на видео лиц. В FindFace CIBR функции   | 
|
findface-video-manager  | 
18810, 18811  | 
Сервис, являющийся частью модуля видеодетекции лиц, через который осуществляется управление детекцией лиц на видео, а именно задаются настройки и список видеофайлов для обработки.  | 
|
findface-video-worker  | 
18999  | 
Сервис, часть модуля видеодетекции лиц, который распознает лица на видео и отправляет их нормализованные изображения, соответствующие видеокадры и метаданные (такие как время обнаружения) в сервис   | 
|
findface-ntls  | 
443 (TCP), 3133, 3185  | 
Локальный сервер лицензий, который проверяет подлинность лицензии FindFace CIBR, взаимодействуя с глобальным сервером лицензий NtechLab. Для закрытых систем поддерживается лицензирование через ключ аппаратной защиты и по слепку с оборудования.  | 
|
findface-counter  | 
18300  | 
Сервис, используемый для дедупликации событий.  | 
|
Tarantool  | 
Порты шардов (по умолчанию 330xx, 81xx)  | 
Стороннее программное обеспечение, на основе которого реализована база данных, хранящая извлеченные векторы признаков и события распознавания лиц. Системные данные, карточки, пользовательские аккаунты камер хранятся в PostgreSQL (часть прикладного модуля FindFace CIBR).  | 
|
etcd  | 
2379  | 
Стороннее программное обеспечение, реализующее распределенное хранилище ключей для компонента   | 
|
NginX  | 
80; SSL: 8002, 8003, 443, 80  | 
Стороннее программное обеспечение, которое реализует веб-интерфейсы системы.  | 
|
memcached  | 
11211  | 
Стороннее программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы. Используется компонентом   | 
Прикладной модуль (FindFace CIBR)
Прикладной модуль FindFace CIBR включает в себя следующие компоненты:
Компонент  | 
Используемые порты  | 
Описание  | 
Поставщик  | 
|---|---|---|---|
findface-multi-legacy  | 
Настраивается  | 
Сервис, который служит шлюзом доступа к ядру FindFace. Обеспечивает взаимодействие между ядром FindFace и веб-интерфейсом, HTTP и веб-сокетом, обеспечивает мониторинг лиц, уведомления о событиях и т.д., работу системы в целом.  | 
Собственная разработка NtechLab  | 
findface-multi-pause  | 
н/п  | 
Внутренние сервисы, помогающие   | 
|
findface-multi-audit  | 
8012, 8013, 8014  | 
||
findface-multi-identity-provider  | 
8022, 8023, 8024  | 
||
cleaner  | 
н/п  | 
Сервис отвечает за очистку данных.  | 
|
findface-multi-ui  | 
Настраивается  | 
Основной веб-интерфейс, использующийся для взаимодействия с FindFace CIBR. Функционирует на основе фреймворка Django. Позволяет работать с событиями распознавания лиц, искать лица в базах данных, управлять происшествиями, пользователями, карточками и списками наблюдения и многое другое.  | 
|
NATS  | 
4222  | 
Стороннее программное обеспечение, которое реализует брокер сообщений внутри   | 
|
etcd  | 
2379  | 
Стороннее программное обеспечение, реализующее блокировки в сервисе   | 
|
Pgbouncer  | 
5439  | 
Стороннее программное обеспечение, обеспечивающее облегченный пул соединений для PostgreSQL. Необязательный компонент, используется для увеличения производительности базы данных при высокой нагрузке.  | 
|
PostgreSQL  | 
5432  | 
Стороннее программное обеспечение, реализующее основную базу данных системы. В базе данных хранятся карточки людей и данные для внутреннего использования. Векторы признаков лиц и события распознавания лиц хранятся в Tarantool (часть ядра FindFace).  | 
См.также
Аппаратное ускорение на CPU и GPU
Сервисы findface-extraction-api и findface-video-worker могут использовать как CPU-, так и GPU-ускорение. Нужный тип ускорения выбирается во время развертывания.
Важно
Для выбора конфигурации оборудования см. Требования.
Важно
Если разрешение видео превышает 1280x720 пикселей, настоятельно рекомендуется использовать пакет с ускорением на GPU findface-video-worker.