Пошаговое развертывание из apt-репозитория
Данный раздел содержит подробную информацию о пошаговом развертывании компонентов FindFace Multi. Выполните приведенные ниже инструкции, придерживаясь заданного порядка.
В этом разделе:
Установка apt-репозитория
Прежде всего установите apt-репозиторий FindFace следующим образом:
Загрузите файл инсталлятора
findface-multi-1.0-and-server-5.0.1.run
.Поместите файл
.run
в любой каталог на сервере установки (например,/home/username
).Из данного каталога сделайте файл
.run
исполняемым.chmod +x findface-multi-1.0-and-server-5.0.1.run
Запустите файл
.run
.sudo ./findface-multi-1.0-and-server-5.0.1.run
Инсталлятор задаст вам несколько вопросов, после чего проверит, соответствует ли сервер системным требованиям. Вопросы следующие:
Устанавливаемый продукт:
FindFace Multi
.Тип установки:
repo: Don't install anything, just set up the APT repository
.Устанавливаемые модели нейронных сетей (при необходимости). Для того чтобы выбрать модели, сначала снимите выделение, введя в командной строке
-*
, затем введите через пробел порядковые номера нужных моделей, например:1 3
. Введитеdone
для сохранения выбора и перехода к следующему шагу.Важно
Должна быть установлена как минимум одна модель для биометрии лица.
После этого apt-репозиторий FindFace будет автоматически установлен.
Установка необходимого стороннего ПО
Для работы FindFace Multi необходимо стороннее программное обеспечение PostgreSQL, Pgbouncer, Redis, etcd и memcached. Выполните следующие действия:
Установите пакеты с указанным сторонним ПО следующим образом:
sudo apt update sudo apt install -y postgresql-10 redis-server etcd memcached pgbouncer
Откройте файл конфигурации
/etc/memcached.conf
. Установите максимальный размер памяти в мегабайтах, используемый для хранения элементов:-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 redis-server etcd.service memcached.service pgbouncer.service sudo systemctl restart postgresql@10-main.service redis-server etcd.service memcached.service pgbouncer.service
Обеспечение лицензирования
См.также
Вы получаете файл лицензии вместе с установочными пакетами FindFace Multi. Для лицензирования в закрытой сети вам также будет предоставлен ключ аппаратной защиты.
Для обеспечения лицензирования 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.
Установите компоненты ядра FindFace:
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
Примечание
Для того чтобы установить компонент
findface-extraction-api
с GPU-ускорением, вместоfindface-extraction-api
в команде введитеfindface-extraction-api-gpu
.Примечание
Для того чтобы установить компонент
findface-video-worker
с GPU-ускорением, вместоfindface-video-worker-cpu
в команде введитеfindface-video-worker-gpu
. Если на физическом сервере установлено несколько видеокарт, см. Использование нескольких видеокарт.Важно
Обязательно установите модели нейронных сетей на серверах с
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
.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 и запустите их.
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
Развертывание прикладного модуля 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
.(Опционально) IP-адрес или URL, который используется для доступа к веб-интерфейсу FindFace Multi. Если параметр не задан, система автоматически определяет его как внешний IP-адрес. Для доступа в FindFace Multi вы можете использовать оба IP-адреса: как автоопределенный, так и указанный в
EXTERNAL_ADDRESS
.VIDEO_DETECTOR_TOKEN
: придумайте токен и укажите его в данном параметре, чтобы авторизовать модуль видеодетекции лиц.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
, чтобы отключить запись события в базу данных, если обнаруженное лицо отсутствует в списках наблюдения (верификация дала отрицательный результат). Данную настройку рекомендуется использовать при большом количестве посетителей. Пороговая степень схожести при верификации лиц определяется параметромCONFIDENCE_THRESHOLD
.Совет
Не рекомендуется редактировать значение параметра
MINIMUM_DOSSIER_QUALITY
. Данный параметр определяет минимальное качество лица на фотографии в досье. Если качество лица хуже минимального, пользователь не сможет загрузить такую фотографию в досье. Прямые изображения лиц анфас считаются наиболее качественными.Используя приведенную ниже команду, сгенерируйте ключ подписи для шифрования сессии (используется в 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-порт.
Важно
Для того чтобы войти в первый раз в систему, используйте учетную запись 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