Базовое пошаговое развертывание из apt-репозитория
Данный раздел содержит подробную информацию о базовом пошаговом развертывании компонентов FindFace Multi. Выполните приведенные ниже инструкции, придерживаясь заданного порядка.
Совет
Сначала обязательно ознакомьтесь с архитектурой FindFace Multi.
Важно
В данном разделе не рассматривается развертывание функционала Видеомагнитофон. Вы можете найти соответствующую пошаговую инструкцию здесь.
Важно
Если находитесь на территории России или Беларуси и намерены использовать функционал Видеомагнитофон, то, перед тем, как приступить к развертыванию, необходимо обратиться в support@ntechlab.com для получения дистрибутива MongoDB. Далее следуйте инструкциям по установке в разделе Устранение неполадок с дистрибутивом MongoDB.
В этом разделе:
Установка apt-репозитория
Прежде всего установите apt-репозиторий FindFace следующим образом:
Загрузите файл инсталлятора
findface-multi-1.2-and-server-5.2.run
.Поместите файл
.run
в любой каталог на сервере установки (например,/home/username
).Из данного каталога сделайте файл
.run
исполняемым.chmod +x findface-multi-1.2-and-server-5.2.run
Запустите файл
.run
.sudo ./findface-multi-1.2-and-server-5.2.run
Инсталлятор задаст вам несколько вопросов, после чего проверит, соответствует ли сервер системным требованиям. Ответьте на вопросы надлежащим образом. Вопросы и ответы следующие:
Устанавливаемый продукт:
FindFace Multi
.Тип установки:
repo: Don't install anything, just set up the APT repository
.Устанавливаемые модели нейронных сетей (при необходимости). Для того чтобы выбрать модели, сначала снимите выделение, введя в командной строке
-*
, затем введите через пробел порядковые номера нужных моделей, например:1 3 4
. Введитеdone
для сохранения выбора и перехода к следующему шагу.Важно
Необходимо установить модель детектора хотя бы для одного типа объекта (лицо, тело или автомобиль).
После этого apt-репозиторий FindFace будет автоматически установлен.
Установка необходимого стороннего ПО
Для работы FindFace Multi необходимо стороннее программное обеспечение PostgreSQL, Pgbouncer, NATS, etcd и memcached. Выполните следующие действия:
Установите пакеты с указанным сторонним ПО следующим образом:
sudo apt update sudo apt install -y postgresql-10 nats-server etcd memcached pgbouncer
Откройте файл конфигурации
/etc/memcached.conf
. Установите максимальный размер памяти в мегабайтах, используемый для хранения элементовmemcached
:-m 1024
. Установите максимальный размер элемента:-I 16m
. Если один или оба этих параметра отсутствуют, добавьте их в файл.sudo vi /etc/memcached.conf -m 1024 -I 16m
Предоставьте надежный пароль пользователю
ntech
(9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3
в примере ниже). Внесите учетные данные в список пользователейpgbouncer
.echo '"ntech" "9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3"' | sudo tee -a /etc/pgbouncer/userlist.txt
Настройте
pgbouncer
. Откройте файл/etc/pgbouncer/pgbouncer.ini
и добавьте базу данныхffsecurity
в разделdatabases
. Настройте указанные параметры, как показано в примере ниже. Остальные параметры должны быть закомментированы.sudo vi /etc/pgbouncer/pgbouncer.ini [databases] ffsecurity = dbname=ffsecurity host=localhost port=5432 user=ntech [pgbouncer] pidfile = /var/run/postgresql/pgbouncer.pid listen_addr = 127.0.0.1 listen_port = 5439 unix_socket_dir = /var/run/postgresql auth_type = plain auth_file = /etc/pgbouncer/userlist.txt pool_mode = transaction server_reset_query = DISCARD ALL max_client_conn = 16384 default_pool_size = 20 syslog = 1
Добавьте сервисы стороннего ПО в автозагрузку Ubuntu и перезапустите их:
sudo systemctl enable postgresql@10-main.service nats-server etcd.service memcached.service pgbouncer.service sudo systemctl restart postgresql@10-main.service nats-server etcd.service memcached.service pgbouncer.service
Обеспечение лицензирования
Важно
См. Лицензирование, чтобы узнать о политике лицензирования NtechLab.
Для обеспечения лицензирования FindFace Multi разверните findface-ntls
, сервер лицензий в составе ядра FindFace.
Важно
Система на базе FindFace Multi может включать в себя только один экземпляр
findface-ntls
.
sudo apt update
sudo apt install -y findface-ntls
sudo systemctl enable findface-ntls.service && sudo systemctl start findface-ntls.service
Развертывание основной базы данных
Основная база данных FindFace Multi построена на PostgreSQL. Для того чтобы развернуть основную базу данных, выполните следующие действия:
Откройте список пользователей
pgbouncer
/etc/pgbouncer/userlist.txt
. Скопируйте пароль пользователяntech
(9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3
в примере ниже).sudo cat /etc/pgbouncer/userlist.txt "ntech" "9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3"
В консоли PostgreSQL создайте пользователя
ntech
под скопированным паролем, а также базы данныхffsecurity
иffcounter
PostgreSQL.sudo -u postgres psql postgres=# CREATE ROLE ntech WITH LOGIN PASSWORD '9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3'; postgres=# CREATE DATABASE ffsecurity WITH OWNER ntech ENCODING 'UTF-8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE template0; postgres=# CREATE DATABASE ffcounter WITH OWNER ntech ENCODING 'UTF-8' LC_COLLATE='C.UTF-8' LC_CTYPE='C.UTF-8' TEMPLATE template0;
Совет
Для выхода из консоли PostgreSQL введите
\q
и нажмите Enter.Разрешите авторизацию в PostgreSQL по UID клиента сокета. Перезапустите PostgreSQL.
echo 'local all ntech peer' | sudo tee -a /etc/postgresql/10/main/pg_hba.conf sudo systemctl restart postgresql@10-main.service
Развертывание ядра FindFace
Для развертывания ядра FindFace выполните следующие действия:
Совет
Вы можете найти описание компонентов ядра FindFace и их параметров конфигурации в разделах Архитектура и Подробно о компонентах.
Для FindFace Multi на GPU установите драйверы NVIDIA.
Важно
Обязательно перезагрузите сервер после завершения установки драйверов NVIDIA. В противном случае при последующей установке GPU-компонентов произойдет сбой.
Установите компоненты ядра FindFace:
На CPU:
sudo apt update sudo apt install -y findface-tarantool-server findface-extraction-api findface-sf-api findface-upload findface-video-manager findface-video-worker-cpu findface-liveness-api
На GPU:
sudo apt update sudo apt install -y findface-tarantool-server findface-extraction-api-gpu findface-sf-api findface-upload findface-video-manager findface-video-worker-gpu findface-liveness-api
Примечание
Если на физическом сервере установлено несколько видеокарт, см. Использование нескольких видеокарт.
Важно
Обязательно установите модели нейронных сетей на серверах с
findface-extraction-api
.В файле конфигурации
/etc/findface-sf-api.ini
включите параметрallow-return-facen
.sudo vi /etc/findface-sf-api.ini ... limits: ... allow-return-facen: true ...
Откройте файл конфигурации
/etc/findface-video-worker-cpu.ini
(/etc/findface-video-worker-gpu.ini
). Задайте следующие параметры:В параметре
mgr-static
укажите IP-адрес сервераfindface-video-manager
, который будет обеспечиватьfindface-video-worker
настройками и списком видеопотоков для обработки.В параметре
capacity
укажите максимальное количество видеопотоков, которое может быть обработаноfindface-video-worker
.В разделе
streamer
укажите IP-адрес и порт для доступа к видеостене. Значениеport
должно быть18999
. Установитеtracks = true
, чтобы улучшить отображение рамок с объектами на видеостене.
sudo vi /etc/findface-video-worker-cpu.ini sudo vi /etc/findface-video-worker-gpu.ini mgr-static=127.0.0.1:18811 capacity=10 [streamer] #------------------------------ ## streamer/shots webserver port, 0=disabled ## type:number env:CFG_STREAMER_PORT longopt:--streamer-port port = 18999 ## streamer url - how to access this worker on streamer_port ## type:string env:CFG_STREAMER_URL longopt:--streamer-url url = 127.0.0.1:18999 ## use tracks instead detects for streamer ## type:bool env:CFG_STREAMER_TRACKS longopt:--streamer-tracks tracks = true
Добавьте сервисы ядра FindFace в автозагрузку Ubuntu и запустите их.
На CPU:
sudo systemctl enable findface-extraction-api findface-sf-api findface-video-manager findface-video-worker-cpu findface-liveness-api sudo systemctl start findface-extraction-api findface-sf-api findface-video-manager findface-video-worker-cpu findface-liveness-api
На GPU:
sudo systemctl enable findface-extraction-api findface-sf-api findface-video-manager findface-video-worker-gpu findface-liveness-api sudo systemctl start findface-extraction-api findface-sf-api findface-video-manager findface-video-worker-gpu findface-liveness-api
Развертывание прикладного модуля FindFace Multi и базы данных векторов признаков
Для развертывания прикладного модуля FindFace Multi, выполните следующие действия:
Установите компоненты
findface-security
,findface-security-ui
иfindface-counter
. Добавьте сервисfindface-counter
в автозагрузку Ubuntu и запустите его.sudo apt update sudo apt install -y findface-security findface-security-ui findface-counter sudo systemctl enable findface-counter && sudo systemctl start findface-counter
Перенесите схему базы данных из FindFace Multi в PostgreSQL, создайте с предустановленные пользовательские роли и первого администратора (т. н. Супер Администратора).
Важно
Супер Администратор не может лишиться прав администратора даже при смене роли.
sudo findface-security migrate sudo findface-security create_groups sudo findface-security create_default_user
Создайте структуру базы данных векторов признаков на основе Tarantool, выполнив следующую команду.
sudo findface-security make_tnt_schema | sudo tee /etc/findface-security/tnt_schema.lua
Откройте файл конфигурации
/etc/tarantool/instances.available/FindFace.lua
. Проверьте, содержит ли файл командуdofile
, а также определенияmeta_indexes
иmeta_scheme
, как показано в примере ниже. При необходимости измените файл.sudo vi /etc/tarantool/instances.available/FindFace.lua dofile("/etc/findface-security/tnt_schema.lua") -- host:port to bind, HTTP API FindFace = require("FindFace") FindFace.start("127.0.0.1", 8101, { license_ntls_server="127.0.0.1:3133", meta_indexes=meta_indexes, meta_scheme=meta_scheme })
Важно
IP-адрес и номер порта, указанные в секции
shards
файла конфигурации/etc/findface-sf-api.ini
, должны быть идентичны указанным в секцииFindFace.start
.sudo vi /etc/tarantool/instances.available/FindFace.lua ... FindFace.start("127.0.0.1", 8101...)
sudo vi /etc/findface-sf-api.ini storage-api: ... shards: - master: http://127.0.0.1:8101/v2/ ...
Важно
Если вы внесли изменения в файл конфигурации
/etc/findface-sf-api.ini
, обязательно перезапустите сервисfindface-sf-api
:sudo systemctl restart findface-sf-api.service
Добавьте сервис
findface-tarantool-server
в автозагрузку Ubuntu и запустите его.sudo systemctl enable tarantool@FindFace.service && sudo systemctl start tarantool@FindFace.service
Откройте файл конфигурации
/etc/findface-security/config.py
. Задайте следующие параметры:Совет
Просмотреть исходную версию файла
/etc/findface-security/config.py
вы можетездесь
.SERVICE_EXTERNAL_ADDRESS
: IP-адрес или URL FindFace Multi, являющимся приоритетным для Genetec и вебхуков. Если параметр не задан, система будет использовать для работы с данным функционалом значениеEXTERNAL_ADDRESS
.Важно
Для использования Genetec и вебхуков обязательно укажите по крайней мере один из параметров:
SERVICE_EXTERNAL_ADDRESS
/EXTERNAL_ADDRESS
.EXTERNAL_ADDRESS
: (опционально) IP-адрес или URL, который используется для доступа в веб-интерфейс FindFace Multi. Если этот параметр не указан вручную, система автоматически определяет его как внешний IP-адрес сервера.Примечание
Для доступа в FindFace Multi вы можете использовать оба IP-адреса: как автоопределенный, так и указанный вручную в
EXTERNAL_ADDRESS
.VIDEO_DETECTOR_TOKEN
: придумайте токен и укажите его в данном параметре, чтобы авторизовать модуль видеодетекции объектов.Совет
Рекомендуется сгенерировать токен, выполнив следующую команду:
pwgen -sncy 50 1|tr "'" "."
VIDEO_MANAGER_ADDRESS
: IP-адрес сервераfindface-video-manager
.NTLS_HTTP_URL
: IP-адрес сервераfindface-ntls
.ROUTER_URL
: IP-адрес сервераfindface-security
, который будет получать обнаруженные на видео объекты от экземпляровfindface-video-worker
. Адрес указывается внутренний или внешний, в зависимости от сети, в которойfindface-video-worker
взаимодействует сfindface-security
. Измените порт по умолчанию с учетом настроек переадресации с HTTP на HTTPS или вообще не указывайте его, оставив только IP-адрес.SF_API_ADDRESS
: IP-адрес сервераfindface-sf-api
.DATABASES
(раздел): заполните его следующим образом:'PORT': 5439, 'USER': 'ntech', 'PASSWORD': ‘<пароль из /etc/pgbouncer/userlist.txt>’
(см. Установка необходимого стороннего ПО).
Совет
Если необходимо обеспечить безопасность данных, включите SSL-шифрование.
Совет
При необходимости установите
’IGNORE_UNMATCHED’: True
, чтобы отключить запись события в базу данных, если обнаруженный объект отсутствует в списках наблюдения. Данную настройку рекомендуется использовать при большом количестве объектов.Используя приведенную ниже команду, сгенерируйте ключ подписи для шифрования сессии (используется в Django) и задайте его в параметре
SECRET_KEY
.pwgen -sncy 50 1|tr "'" "."
Запустите сервисы.
sudo systemctl enable findface-security sudo systemctl start findface-security
Отключите сервер nginx, активный по умолчанию, и добавьте сервер
findface-security
в список включенных серверов. Перезапустите nginx.sudo rm /etc/nginx/sites-enabled/default sudo ln -s /etc/nginx/sites-available/ffsecurity-nginx.conf /etc/nginx/sites-enabled/ sudo nginx -s reload
Обеспечение лицензирования:
Обеспечьте лицензирование. Используйте веб-интерфейс FindFace Multi, чтобы загрузить лицензионный файл, который вы до этого получили от своего менеджера ( ).
При лицензировании в закрытой системе с помощью USB-ключа аппаратной защиты, вставьте его в USB-порт.
Для лицензирования в закрытой системы по слепку с оборудования см. Лицензирование в закрытой сети по слепку с оборудования.
Важно
Для того чтобы войти в первый раз в систему, используйте учетную запись Cуперадминистратора
admin:admin
, созданную по умолчанию.
Примечание
Для создания других пользователей или смены пароля Суперадминистратора см. раздел Управление пользователями.
Важно
Для того чтобы сохранить совместимость FindFace Multi со средой установки, настоятельно рекомендуется отключить автоматическое обновление Ubuntu. В этом случае вы сможете обновлять ОС вручную, контролируя процесс обновления отдельных пакетов.
Для отключения автоматического обновления Ubuntu выполните следующие команды:
sudo apt-get remove unattended-upgrades
sudo systemctl stop apt-daily.timer
sudo systemctl disable apt-daily.timer
sudo systemctl disable apt-daily.service
sudo systemctl daemon-reload
Важно
Сервисы FindFace Multi логируют большой объем данных, что в конечном итоге может привести к чрезмерной загрузке диска. Чтобы этого не произошло, рекомендуется отключить сервис rsyslog
из-за его неоптимальной схемы ротации логов и вместо него использовать правильно настроенный сервис systemd-journal
. См. пошаговые инструкции в разделе Логи сервисов.