Развертывание FindFace Video Worker на удаленных серверах
Вы можете установить экземпляры findface-video-worker
отдельно от основного сервера FindFace Multi при создании многосерверной среды.
Важно
Прежде чем приступить к установке сервиса findface-video-worker
на удаленных серверах, выполните следующие действия:
Разрешите доступ к лицензионному серверу
findface-ntls
с любого IP-адреса. Для этого откройте файл конфигурации/opt/findface-multi/configs/findface-ntls/findface-ntls.yaml
на сервере сfindface-ntls
и установитеlisten = 0.0.0.0:3133
. Перезапустите контейнерfindface-multi-findface-ntls-1
.sudo vi /opt/findface-multi/configs/findface-ntls/findface-ntls.yaml listen: 0.0.0.0:3133
sudo docker container restart findface-multi-findface-ntls-1
Разрешите доступ к сервису
findface-video-manager
с любого IP-адреса. Для этого откройте файл конфигурации/opt/findface-multi/configs/findface-video-manager/findface-video-manager.yaml
на сервере сfindface-video-manager
и установитеlisten: 0.0.0.0:18810
иrpc:listen: 0.0.0.0:18811
. Перезапустите контейнерfindface-multi-findface-video-manager-1
.sudo vi /opt/findface-multi/configs/findface-video-manager/findface-video-manager.yaml listen: 0.0.0.0:18810 ... rpc: listen: 0.0.0.0:18811
sudo docker container restart findface-multi-findface-video-manager-1
На сервере FindFace Multi откройте файл конфигурации
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
и убедитесь, что параметрROUTER_URL
содержит внешний IP-адрес сервера FindFace Multi, а не localhost. Экземплярыfindface-video-worker
на удаленных серверах будут использовать данный адрес для отправки объектов.sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py ... 'ROUTER_URL': 'http://192.168.0.12', ...
Для отдельной установки сервиса findface-video-worker
выполните следующие действия:
Совет
Перед тем как приступить к развертыванию, обязательно ознакомьтесь с системными требованиями, а также подготовьте сервер.
Загрузите файл инсталлятора
findface-*.run
.Поместите файл
.run
в любой каталог на сервере установки (например,/home/username
).Из данного каталога сделайте файл
.run
исполняемым.Примечание
Вместо
findface-*
укажите актуальное имя файла.chmod +x findface-*.run
Запустите файл
.run
.sudo ./findface-*.run
Инсталлятор задаст вам несколько вопросов, после чего проверит, соответствует ли сервер системным требованиям. Ответьте на вопросы надлежащим образом, после ответа каждый раз нажимая Enter. Вопросы и ответы следующие:
В:
Which product should be installed?
(Какой продукт следует установить?)О:
3
1. [multi ] FindFace Multi 2. [server ] FindFace Server 3. [video-worker] FindFace Video Worker (default: multi) product> 3
В:
Which variant of Video Worker should be installed?
(Какой вариант Video Worker следует установить?)О: Укажите тип пакета
findface-video-worker
, CPU или GPU.Which variant of Video Worker should be installed? - 1 [cpu] CPU-based implementation, slower but doesn't require GPU - 2 [gpu] CUDA-based implementation of video detector, requires NVIDIA GPU
В:
Found X interface(s). Which one should we announce as our inter-service communication address?
(Было найдено X сетевых интерфейсов. Какой интерфейс следует использовать в качестве адреса для межсервисной коммуникации?)О: Выберите интерфейс по умолчанию
2
для подключения к серверу FindFace Multi. Мы не рекомендуем использовать localhost.Found 1 interface(s). Which one should we announce as our external address? - 1 [lo ] 127.0.0.1 - 2 [ens3 ] 192.168.112.254 (default: 192.168.112.254) inter_ip.advertised> 2
В:
Please enter FF.Multi or FF.Server IP address:
(Пожалуйста, введите адрес сервера FindFace Multi или FindFace Enterprise Server)О: Укажите IP-адрес сервера FindFace Multi.
Please enter FF.Multi or FF.Server IP address: server_addr> 192.168.112.25
После этого процесс установки будет автоматически запущен.
Выполните процедуры после установки.
Внесите изменения в файл
findface-video-worker.yaml
– заполните значения всех необходимых параметров. Убедитесь, что в секцииmodels
указаныdetectors
,normalizers
иextractors
, а в секцииobjects
– соответствующие значения. Ниже приведен пример того, как должна выглядеть секция. Ее содержимое может отличаться в зависимости от выбранных объектов распознавания.sudo vi /opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml models: cache_dir: /var/cache/findface/models_cache detectors: face: fnk_path: /usr/share/findface-data/models/detector/face.jasmine_fast.003.cpu.fnk min_size: 60 body: fnk_path: /usr/share/findface-data/models/detector/body.jasmine_fast.018.cpu.fnk min_size: 60 car: fnk_path: /usr/share/findface-data/models/detector/car.jasmine_fast.005.cpu.fnk min_size: 60 normalizers: face_norm: fnk_path: /usr/share/findface-data/models/facenorm/crop2x.v2_maxsize400.cpu.fnk face_norm_quality: fnk_path: /usr/share/findface-data/models/facenorm/crop1x.v2_maxsize400.cpu.fnk body_norm: fnk_path: /usr/share/findface-data/models/facenorm/cropbbox.v2.cpu.fnk body_norm_quality: fnk_path: /usr/share/findface-data/models/facenorm/cropbbox.v2.cpu.fnk car_norm: fnk_path: /usr/share/findface-data/models/facenorm/cropbbox.v2.cpu.fnk car_norm_quality: fnk_path: /usr/share/findface-data/models/facenorm/cropbbox.v2.cpu.fnk extractors: face_quality: fnk_path: /usr/share/findface-data/models/faceattr/quality_fast.v1.cpu.fnk normalizer: face_norm_quality body_quality: fnk_path: /usr/share/findface-data/models/pedattr/pedattr.quality.v0.cpu.fnk normalizer: body_norm_quality car_quality: fnk_path: /usr/share/findface-data/models/carattr/carattr.quality.v0.cpu.fnk normalizer: car_norm_quality objects: face: normalizer: face_norm quality: face_quality track_features: '' body: normalizer: body_norm quality: body_quality track_features: '' car: normalizer: car_norm quality: car_quality track_features: ''
Перезапустите контейнер
findface-multi-findface-video-worker-1
.sudo docker container restart findface-multi-findface-video-worker-1
Важно
Если вы решили установить findface-ntls
и/или findface-video-manager
на серверах, отличных от серверов с findface-multi-legacy
, укажите их IP-адреса в файле конфигурации /opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml
после установки.
sudo vi /opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml
В параметре ntls-addr
укажите IP-адрес сервера findface-ntls
.
ntls_addr: 127.0.0.1:3133
В параметре mgr-static
укажите IP-адрес сервера findface-video-manager
, который будет обеспечивать findface-video-worker
настройками и списком видеопотоков для обработки.
mgr:
static: 127.0.0.1:18811
Совет
Чтобы установить экземпляр findface-video-worker
на другом сервере, используйте автоматическое развертывание из файла с параметрами установки. В этом случае вам не придется повторно отвечать на вопросы инсталлятора. Точный путь к файлу с параметрами установки отображается сразу после последнего вопроса инсталлятора, перед началом активной фазы установки:
[I 2023-02-09 11:13:37,187 main:142] Your answers were saved to /tmp/findface-installer-p01n9sn3.json
Для запуска автоматического развертывания из файла /tmp/<findface-installer-*>.json
, выполните следующую команду:
sudo ./<findface-*>.run -f /tmp/<findface-installer-*>.json
Если ваш экземпляр findface-video-worker
развернут в среде с несколькими GPU, то вам придется вручную настроить файл /opt/findface-multi/docker-compose.yaml
.
В файле
/opt/findface-multi/docker-compose.yaml
в секцииservices
укажите конфигурациюfindface-video-worker
для каждого запущенного экземпляраfindface-video-worker
. В параметреenvironment
укажите правильный идентификатор GPU дляCUDA_VISIBLE_DEVICES
. Придерживайтесь приведенного ниже примера:sudo vi /opt/findface-multi/docker-compose.yaml services: ... findface-video-worker: command: [--config=/etc/findface-video-worker.yaml] environment: [CUDA_VISIBLE_DEVICES=0] image: docker.int.ntl/ntech/universe/video-worker-gpu:ffserver-9.230407.1 logging: {driver: journald} network_mode: host restart: always runtime: nvidia volumes: ['./configs/findface-video-worker/findface-video-worker.yaml:/etc/findface-video-worker.yaml:ro', './models:/usr/share/findface-data/models:ro', './cache/findface-video-worker/models:/var/cache/findface/models_cache', './cache/findface-video-worker/recorder:/var/cache/findface/video-worker-recorder'] findface-video-worker-1: command: [--config=/etc/findface-video-worker-1.yaml] environment: [CUDA_VISIBLE_DEVICES=1] image: docker.int.ntl/ntech/universe/video-worker-gpu:ffserver-9.230407.1 logging: {driver: journald} network_mode: host restart: always runtime: nvidia volumes: ['./configs/findface-video-worker/findface-video-worker-1.yaml:/etc/findface-video-worker-1.yaml:ro', './models:/usr/share/findface-data/models:ro', './cache/findface-video-worker/models:/var/cache/findface/models_cache', './cache/findface-video-worker/recorder:/var/cache/findface/video-worker-recorder']
В этой же секции укажите переменные окружения для каждого экземпляра
findface-video-worker
. Придерживайтесь приведенного ниже примера:findface-video-worker: image: docker.int.ntl/ntech/universe/video-worker-gpu:ffserver-9.230407.1 ... environment: - CFG_MGR_STATIC=vm:18811 - CFG_NTLS_ADDR=ntls:3133 - CFG_STREAMER_PORT=9999 - CFG_STREAMER_URL=127.0.0.1:9999 - CFG_STREAMER_TRACKS=true #- CFG_RESOLUTIONS=1920x1080
Важно
Для корректной работы несколько экземпляров
findface-video-worker
не должны ссылаться на один и тот жеCFG_STREAMER_PORT
. Убедитесь, что вы указали уникальныйCFG_STREAMER_PORT
для каждого экземпляраfindface-video-worker
.Выполните пересборку контейнеров FindFace Multi из директории
/opt/findface-multi
.cd /opt/findface-multi sudo docker-compose down sudo docker-compose up -d