Пошаговое развертывание из apt-репозитория¶
Данный раздел содержит подробную информацию о пошаговом развертывании компонентов FindFace Security. Выполните приведенные ниже инструкции, придерживаясь заданного порядка.
В этом разделе:
Установка apt-репозитория¶
Прежде всего установите apt-репозиторий FindFace следующим образом:
Загрузите файл инсталлятора
findface-security-and-server-4.0.1.run
.Поместите файл
.run
в любой каталог на сервере установки (например,/home/username
).Из данного каталога сделайте файл
.run
исполняемым.chmod +x findface-security-and-server-4.0.1.run
Запустите файл
.run
.sudo ./findface-security-and-server-4.0.1.run
Инсталлятор задаст вам несколько вопросов, после чего проверит, соответствует ли сервер системным требованиям. Вопросы следующие:
Устанавливаемый продукт:
FindFace Security
.Тип установки:
repo: Don't install anything, just set up the APT repository
.Устанавливаемые модели нейронных сетей (при необходимости). Для того чтобы выбрать модели, сначала снимите выделение, введя в командной строке
-*
, затем введите через пробел порядковые номера нужных моделей, например:1 3
. Введитеdone
для сохранения выбора и перехода к следующему шагу.Важно
Должна быть установлена как минимум одна модель для биометрии лица.
После этого apt-репозиторий FindFace будет автоматически установлен.
Установка необходимого стороннего ПО¶
Для работы FindFace Security необходимо стороннее программное обеспечение PostgreSQL, Redis, etcd и memcached. Выполните следующие действия:
Установите пакеты с указанным сторонним ПО следующим образом:
sudo apt update sudo apt install -y postgresql-9.5 redis-server etcd memcached
Откройте файл конфигурации
memcached
. Установите максимальный размер памяти в мегабайтах, используемый для хранения элементов:-m 512
. Установите максимальный размер элемента:-I 16m
. Если один или оба этих параметра отсутствуют, добавьте их в файл.sudo vi /etc/memcached.conf -m 512 -I 16m
Добавьте сервисы стороннего ПО в автозагрузку Ubuntu и запустите их:
sudo systemctl enable postgresql@9.5-main.service redis-server etcd.service memcached.service sudo systemctl start postgresql@9.5-main.service redis-server etcd.service memcached.service
Обеспечение лицензирования¶
См.также
Вы получаете файл лицензии вместе с установочными пакетами FindFace Security. Для лицензирования в закрытой сети вам также будет предоставлен ключ аппаратной защиты.
Лицензирование FindFace Security обеспечивается следующим образом:
Разверните
findface-ntls
, сервер лицензий в составе ядра FindFace.Важно
Система на базе FindFace Security может включать в себя только один экземпляр
findface-ntls
.Совет
В файле конфигурации
findface-ntls
вы можете изменить папку для хранения файла лицензии и настроить удаленный доступ к веб-интерфейсуfindface-ntls
, используемому для управления лицензией. Подробнее см. findface-ntls.sudo apt update sudo apt install -y findface-ntls sudo systemctl enable findface-ntls.service && sudo systemctl start findface-ntls.service
Загрузите файл лицензии через веб-интерфейс
findface-ntls
одним из следующих способов:Откройте веб-интерфейс
findface-ntls
:http://<NTLS_IP_address>:3185/#/
. Загрузите файл лицензии.Совет
Впоследствии используйте основной веб-интерфейс FindFace Security, чтобы посмотреть информацию о лицензиях, обновить или продлить лицензию (
).Непосредственно положите файл лицензии в предназначенную для этого папку (по умолчанию,
/ntech/license
, может быть изменена в файле конфигурации/etc/findface-ntls.cfg
).
При лицензировании в закрытой системе вставьте USB-ключ аппаратной защиты в USB-порт.
Если лицензируемые компоненты установлены на удаленных серверах, впоследствии укажите IP-адрес сервера
findface-ntls
в их файлах конфигурации. Подробнее см. findface-extraction-api, findface-tarantool-server, Видеодетекция лиц: findface-video-manager и findface-video-worker.
См.также
Развертывание основной базы данных¶
Основная база данных FindFace Security построена на PostgreSQL. Для того чтобы развернуть основную базу данных, выполните следующие действия:
В консоли PostgreSQL создайте пользователя
ntech
и базу данныхffsecurity
.sudo -u postgres psql postgres=# CREATE ROLE ntech WITH LOGIN; postgres=# CREATE DATABASE ffsecurity WITH OWNER ntech ENCODING 'UTF-8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE template0;
Совет
Для выхода из консоли PostgreSQL введите
\q
и нажмите Enter.Разрешите авторизацию в PostgreSQL по UID клиента сокета. Перезапустите PostgreSQL.
echo 'local all ntech peer' | sudo tee -a /etc/postgresql/9.5/main/pg_hba.conf sudo systemctl restart postgresql@9.5-main.service
Развертывание ядра FindFace¶
Для развертывания ядра FindFace выполните следующие действия:
Совет
Вы можете найти описание компонентов ядра FindFace и их параметров конфигурации в разделах Архитектура и Подробно о компонентах.
Установите компоненты ядра 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-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
.В файле конфигурации
findface-extraction-api
(на CPU или GPU) включите опциюquality_estimator
для оценки качества лица при загрузке фотографии в досье.Примечание
Минимальное качество лица на фотографии в досье задается параметром
MINIMUM_DOSSIER_QUALITY
в файле/etc/ffsecurity/config.py
.sudo vi /etc/findface-extraction-api.ini quality_estimator: true
В файле конфигурации
findface-extraction-api
включите модели распознавания атрибутов лица, таких как пол, возраст, эмоции, очки и/или борода, в зависимости от ваших нужд. Удостоверьтесь, что для каждой модели вы указали правильный тип ускорения CPU или GPU: он должен совпадать с типом ускоренияfindface-extraction-api
. Обратите внимание, чтоfindface-extraction-api
на CPU может работать только с CPU-моделями, в то время какfindface-extraction-api
на GPU поддерживает как CPU-, так и GPU-модели. Подробнее см. Распознавание атрибутов лица.models: age: faceattr/age.v1.cpu.fnk emotions: faceattr/emotions.v1.cpu.fnk face: face/elderberry_576.r2.cpu.fnk gender: faceattr/gender.v2.cpu.fnk beard: faceattr/beard.v0.cpu.fnk glasses3: faceattr/glasses3.v0.cpu.fnk
Доступны следующие модели:
Атрибут лица Ускорение Параметр в файле конфигурации биометрия лица CPU face: face/elderberry_576.r2.cpu.fnk
GPU face: face/elderberry_576.r2.gpu.fnk
возраст CPU age: faceattr/age.v1.cpu.fnk
GPU age: faceattr/age.v1.gpu.fnk
пол CPU gender: faceattr/gender.v2.cpu.fnk
GPU gender: faceattr/gender.v2.gpu.fnk
эмоции CPU emotions: faceattr/emotions.v1.cpu.fnk
GPU emotions: faceattr/emotions.v1.gpu.fnk
очки CPU glasses3: faceattr/glasses3.v0.cpu.fnk
GPU glasses3: faceattr/glasses3.v0.gpu.fnk
борода CPU beard: faceattr/beard.v0.cpu.fnk
GPU beard: faceattr/beard.v0.gpu.fnk
Совет
Для того чтобы отключить модель распознавания, передайте в соответствующий параметр пустое значение. Не удаляйте сам параметр, поскольку в этом случае будет выполняться поиск модели по умолчанию.
models: gender: "" age: "" emotions: ""
Откройте файл конфигурации
/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
Добавьте сервисы ядра FindFace в автозагрузку Ubuntu и запустите их.
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
Развертывание прикладного модуля FindFace Security и биометрической базы данных¶
Для развертывания прикладного модуля FindFace Security, выполните следующие действия:
Установите компоненты
findface-security
иffsecurity-ui
.sudo apt update sudo apt install -y ffsecurity ffsecurity-ui
Перенесите схему базы данных из FindFace Security в 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/ffsecurity/tnt_schema.lua
Импортируйте переменную
meta_scheme
из файлаtnt_schema.lua
. Откройте файл конфигурации/etc/tarantool/instances.enabled/FindFace.lua
. Перед секциейFindFace.start
добавьте строкуdofile("/etc/ffsecurity/tnt_schema.lua")
. В параметрахFindFace.start
определитеmeta_scheme=meta_scheme
.sudo vi /etc/tarantool/instances.enabled/FindFace.lua dofile("/etc/ffsecurity/tnt_schema.lua") FindFace.start("127.0.0.1", 8101, { license_ntls_server="127.0.0.1:3133", facen_size=576, meta_scheme = meta_scheme })
Добавьте сервис
findface-tarantool-server
в автозагрузку Ubuntu и запустите его.sudo systemctl enable tarantool@FindFace.service && sudo systemctl start tarantool@FindFace.service
Откройте файл конфигурации
/etc/ffsecurity/config.py
. Задайте следующие параметры:EXTERNAL_ADDRESS
: внешний IP-адрес или URL, который будет использоваться для доступа к веб-интерфейсу FindFace Security.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
.SF_API_ADDRESS
: IP-адрес сервераfindface-sf-api
.
Совет
Если необходимо обеспечить безопасность данных, включите SSL-шифрование.
Совет
При необходимости установите
’IGNORE_UNMATCHED’: True
, чтобы отключить запись события в базу данных, если обнаруженное лицо отсутствует в списках наблюдения (верификация дала отрицательный результат). Данную настройку рекомендуется использовать при большом количестве посетителей. Пороговая степень схожести при верификации лиц определяется параметромCONFIDENCE_THRESHOLD
.Совет
Рекомендуется отредактировать значение параметра
MINIMUM_DOSSIER_QUALITY
. Данный параметр определяет минимальное качество лица на фотографии в досье. Если качество лица хуже минимального, пользователь не сможет загрузить такую фотографию в досье. Прямые изображения лиц анфас считаются наиболее качественными. Им соответствуют значения вблизи 0, как правило, отрицательные (такие как -0.00067401276, например). Перевернутые лица и лица, повернутые под большими углами, характеризуются отрицательным значениям от -5 и меньше. По умолчанию’MINIMUM_DOSSIER_QUALITY’: -2
, что соответствует среднему качеству.Важно
Если вы включили модели распознавания в файле конфигурации
findface-extraction-api
, добавьте следующую строку в секциюFFSECURITY
:’EVENTS_FEATURES': ['gender', 'age', 'emotions', 'beard', 'glasses’]
, в зависимости от того, какие модели были включены. Данная строка должна быть расположена между строкамиSF_API_ADDRESS
иLIVENESS_THRESHOLD
, как показано в примере ниже. Подробнее см. Распознавание атрибутов лица.sudo vi /etc/ffsecurity/config.py MEDIA_ROOT = "/var/lib/ffsecurity/uploads" STATIC_ROOT = "/var/lib/ffsecurity/static" EXTERNAL_ADDRESS = "http://172.20.77.58" DEBUG = False LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'ffsecurity', } } # use pwgen -sncy 50 1|tr "'" "." to generate your own unique key SECRET_KEY = 'c8b533847bbf7142102de1349d33a1f6' FFSECURITY = { 'VIDEO_DETECTOR_TOKEN': '381b0f4a20495227d04185ab02f5085f', 'CONFIDENCE_THRESHOLD': 0.75, 'MINIMUM_DOSSIER_QUALITY': -2, 'IGNORE_UNMATCHED': False, 'EXTRACTION_API': 'http://127.0.0.1:18666/', 'VIDEO_MANAGER_ADDRESS': 'http://127.0.0.1:18810', 'EVENTS_MAX_AGE': 30, 'NTLS_HTTP_URL': 'http://127.0.0.1:3185', 'ROUTER_URL': 'http://172.20.77.58', 'MONITORING_UPDATE_INTERVAL': 60, 'SF_API_ADDRESS': 'http://127.0.0.1:18411', 'EVENTS_FEATURES': ['gender', 'age', 'emotions', 'beard', 'glasses'], 'LIVENESS_THRESHOLD': 0.75, 'BEARD_THRESHOLD': 0.7, } ASGI_THREADS = 16 UVICORN_SETTINGS = { 'workers': 4, 'host': 'localhost', 'port': 8002, } FFSECURITY_UI_CONFIG = { "event": { "features": { "f_gender_class": ["male", "female"], "age": { "f_age_gte": "", "f_age_lte": "" }, "f_emotions_class": ["angry", "disgust", "fear", "happy", "sad", "surprise"], "f_glasses_class": ["none", "eye", "sun"], "f_beard_class": ["none", "beard"], "f_liveness_class": ["real", "fake"], } } } # integration plugins INSTALLED_APPS.append('ffsecurity_genetec') # remove or comment out this line to disable genetec integration
Используя команду
pwgen -sncy 50 1|tr “’” “.”
, сгенерируйте ключ подписи для шифрования сессии (используется в Django) и задайте его в параметреSECRET_KEY
.Запустите сервисы.
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