Пошаговое развертывание из apt-репозитория
Данный раздел содержит подробную информацию о пошаговом развертывании компонентов FindFace. Выполните приведенные ниже инструкции, придерживаясь заданного порядка.
Совет
Сначала обязательно ознакомьтесь с архитектурой FindFace.
В этом разделе:
Установка apt-репозитория
Прежде всего установите apt-репозиторий FindFace следующим образом:
Загрузите файл инсталлятора
findface-*.run.Поместите файл
.runв любой каталог на сервере установки (например,/home/username).Из данного каталога сделайте файл
.runисполняемым.Примечание
Вместо
findface-*укажите актуальное имя файла.chmod +x findface-*.run
Запустите файл
.run.sudo ./findface-*.run
Инсталлятор задаст вам несколько вопросов, после чего проверит, соответствует ли сервер системным требованиям. Ответьте на вопросы надлежащим образом, после ответа каждый раз нажимая Enter. Вопросы и ответы следующие:
В:
Which product should be installed?(Какой продукт следует установить?)О:
1Which product should be installed? 1. [security] FindFace Multi 2. [server ] FindFace Server 3. [video-worker] FindFace Video Worker 4. [nvidia-drivers] NVIDIA CUDA drivers (installed automatically when you install gpu-variant of the products above) (default: security) product> 1
В:
Please choose installation type:(Пожалуйста, выберите тип установки:)О:
3Please choose installation type: - 1 [stand-alone ] Single Server - 2 [multi-worker] Single Server, Multiple video workers - 3 [repo ] Don't install anything, just set up the APT repository - 4 [custom ] Fully customized installation (default: stand-alone) type> 3
В:
APT repository doesn't include recognition models. Do you want to install them now?(y/n)(В apt-репозиторий не включены модели распознавания. Вы хотите установить их сейчас?)О:
y(да) илиn(нет) в зависимости от плана развертывания. В любом случае не забудьте установить необходимые модели нейронной сети на сервере с компонентомfindface-extraction-api. Чтобы установить их позже, см. Установка моделей нейронных сетей.APT repository doesn't include recognition models. Do you want to install them now?(y/n) (default: yes) repo_data> y
В:
Select models to install(если вы ввелиyна предыдущем шаге)О: По умолчанию установке подлежат все модели нейронных сетей. Вы можете оставить все как есть, введя
done, или выбрать конкретные модели. Для этого снимите выделение со всех моделей, введя в командной строке-*, затем введите порядковые номера нужных моделей через пробел, например:1 3 4и т. д. Введитеdoneдля сохранения выбора и перехода к следующему шагу.Select models to install. Note that you will need to accordingly edit extraction-api and tntapi configuration files. At least one of recognition models has to be enabled. - 1 [v] ./findface-data-age.v2-cpu_3.0.0_all.deb ... ... - 68 [v] ./findface-data-quality.v1-gpu_3.0.0_all.deb Enter keyword to select matching choices or -keyword to clear selection. Enter "done" to save your selection and proceed to another step. findface-data.models> done
После этого apt-репозиторий FindFace будет автоматически установлен.
Установка необходимого стороннего ПО
Для работы FindFace необходимо стороннее программное обеспечение 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вставьте следующее содержимое вместо существующего, как показано в примере ниже.sudo vi /etc/pgbouncer/pgbouncer.ini [databases] ffsecurity = dbname=ffsecurity host=localhost port=5432 user=ntech ffsecurity_session = dbname=ffsecurity host=localhost port=5432 user=ntech pool_mode=session pool_size=10 [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 = 70 syslog = 1 log_connections = 0 log_disconnections = 0 stats_period = 300
Добавьте сервисы стороннего ПО в автозагрузку 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 разверните findface-ntls, сервер лицензий в составе ядра FindFace.
Важно
Система на базе FindFace может включать в себя только один экземпляр
findface-ntls.
sudo apt update
sudo apt install -y findface-ntls
sudo systemctl enable findface-ntls.service && sudo systemctl start findface-ntls.service
Развертывание основной базы данных
Основная база данных FindFace построена на PostgreSQL. Для того чтобы развернуть основную базу данных, выполните следующие действия:
Откройте список пользователей
pgbouncer/etc/pgbouncer/userlist.txt. Скопируйте пароль пользователяntech(9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3в примере ниже).sudo cat /etc/pgbouncer/userlist.txt "ntech" "9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3"
В консоли PostgreSQL создайте пользователя
ntechпод скопированным паролем, а также базы данныхffsecurityиffcounterPostgreSQL.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 на 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
На 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-extraction-apiпозднее.В файле конфигурации
/etc/findface-extraction-api.iniизмените нейронную сеть для распознавания лиц наmango_320.На CPU:
sudo vi /etc/findface-extraction-api.ini extractors: ... models: ... face_emben: face/mango_320.cpu.fnk ...
На GPU:
sudo vi /etc/findface-extraction-api.ini extractors: ... models: ... face_emben: face/mango_320.gpu.fnk ...
В файле конфигурации
/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.
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
Добавьте сервисы ядра FindFace в автозагрузку Ubuntu и запустите их.
На CPU:
sudo systemctl enable findface-extraction-api findface-sf-api findface-video-manager findface-video-worker-cpu sudo systemctl start findface-extraction-api findface-sf-api findface-video-manager findface-video-worker-cpu
На GPU:
sudo systemctl enable findface-extraction-api findface-sf-api findface-video-manager findface-video-worker-gpu sudo systemctl start findface-extraction-api findface-sf-api findface-video-manager findface-video-worker-gpu
Развертывание прикладного модуля FindFace и базы данных векторов признаков
Для развертывания прикладного модуля FindFace, выполните следующие действия:
Установите компоненты
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
Создайте структуру базы данных векторов признаков на основе Tarantool, выполнив следующую команду.
sudo findface-security make_tnt_schema | sudo tee /etc/findface-security/tnt_schema.lua
Откройте файл конфигурации
/etc/tarantool/instances.available/FindFace.lua. Проверьте, содержит ли файл командуdofileи определениеspaces, как показано в примере ниже. При необходимости измените файл.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", replication = replication_master, spaces = spaces })
Важно
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вы можетездесь.EXTERNAL_ADDRESS: (опционально) IP-адрес или URL, который используется для доступа в веб-интерфейс FindFace. Если этот параметр не указан вручную, система автоматически определяет его как внешний IP-адрес сервера.Примечание
Для доступа в FindFace вы можете использовать оба 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-шифрование.
Используя приведенную ниже команду, сгенерируйте ключ подписи для шифрования сессии (используется в Django) и задайте его в параметре
SECRET_KEY.pwgen -sncy 50 1|tr "'" "."
Перенесите схему базы данных из FindFace в PostgreSQL, создайте предустановленные пользовательские роли и первого администратора (т. н. Супер Администратора).
Важно
Супер Администратор не может лишиться прав администратора даже при смене роли.
sudo findface-security migrate sudo findface-security create_groups sudo findface-security create_default_user
Запустите сервисы.
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, чтобы загрузить лицензионный файл, который вы до этого получили от своего менеджера ().
При лицензировании в закрытой системе с помощью USB-ключа аппаратной защиты вставьте его в USB-порт.
Для лицензирования в закрытой системы по слепку с оборудования см. Лицензирование в закрытой сети по слепку с оборудования.
Важно
Для того чтобы войти в первый раз в систему, используйте учетную запись Cуперадминистратора
admin:admin, созданную по умолчанию.
Примечание
Для создания других пользователей или смены пароля Суперадминистратора см. раздел Управление ролями и пользователями.
Важно
Для того чтобы сохранить совместимость FindFace со средой установки, настоятельно рекомендуется отключить автоматическое обновление 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 логируют большой объем данных, что в конечном итоге может привести к чрезмерной загрузке диска. Чтобы этого не произошло, рекомендуется отключить сервис rsyslog из-за его неоптимальной схемы ротации логов и вместо него использовать правильно настроенный сервис systemd-journal. См. пошаговые инструкции в разделе Логи сервисов.