Развертывание FindFace Video Worker на удаленных серверах
Вы можете установить экземпляры findface-video-worker
отдельно от основного сервера FindFace Multi при создании многосерверной среды.
Важно
Прежде чем приступить к установке сервиса findface-video-worker
на удаленных серверах, выполните следующие действия:
На сервере FindFace Multi откройте файл конфигурации /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
. Измените значение параметра ROUTER_URL
, по умолчанию заданное как http://findface-multi-ui
. В параметре ROUTER_URL
укажите внешний IP-адрес сервера FindFace Multi. Экземпляры findface-video-worker
на удаленных серверах будут использовать данный адрес для отправки объектов.
sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py ... 'ROUTER_URL': 'http://192.168.112.253', ...
Для отдельной установки сервиса findface-video-worker
выполните следующие действия:
Совет
Перед тем как приступить к развертыванию, обязательно ознакомьтесь с системными требованиями, а также подготовьте сервер на Ubuntu или Debian.
Загрузите файл инсталлятора
findface-*.run
.Поместите файл
.run
в любой каталог на сервере установки (например,/home/username
).Из данного каталога сделайте файл
.run
исполняемым.Примечание
Вместо
findface-*
укажите актуальное имя файла.chmod +x findface-*.run
Запустите файл
.run
.sudo ./findface-*.run
Инсталлятор задаст вам несколько вопросов, после чего проверит, соответствует ли сервер системным требованиям. Ответьте на вопросы надлежащим образом, после ответа каждый раз нажимая Enter. Вопросы и ответы следующие:
В:
Which product should be installed?
(Какой продукт следует установить?)О:
2
Which product should be installed? - 1 [multi ] FindFace Multi - 2 [video-worker] FindFace Video Worker (default: multi) product> 2
В:
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 (default: cpu) findface-video-worker.variant> 1
В:
Directory to install into:
(Директория установки:)О: Укажите директорию установки FindFace Video Worker. По умолчанию установка выполняется в
/opt/findface-server
. Нажмите Enter для подтверждения. В противном случае укажите нужную директорию и нажмите Enter.Directory to install into: (default: /opt/findface-server) dest_dir>
В:
Please enter domain name or IP address to access License and Video Manager services:
(Введите доменное имя или IP-адрес, по которому доступны сервисы лицензирования и Video Manager:)О: Укажите доменное имя или IP-адрес, по которому доступны сервисы
findface-ntls
иfindface-video-manager
.Please enter domain name or IP address to access License and Video Manager services: server_addr> 192.168.112.253
В:
Found X interface(s). Which one should we announce as our external address?
(Было найдено X сетевых интерфейсов. Какой интерфейс следует использовать в качестве внешнего IP-адреса?)О: Выберите интерфейс, который вы собираетесь использовать в качестве внешнего IP-адреса.
Found 4 interface(s). Which one should we announce as our external address? - 1 [lo ] 127.0.0.1 - 2 [ens3 ] 192.168.112.254 - 3 [docker0 ] 10.44.132.1 - 4 [br-60d3cac2fd81] 10.44.0.1 (default: 192.168.112.254) ext_ip.advertised> 2
После этого процесс установки будет автоматически запущен.
Выполните процедуры после установки.
Внесите изменения в файл
findface-video-worker.yaml
– заполните значения всех необходимых параметров. Убедитесь, что в секцииmodels
указаныdetectors
,normalizers
иextractors
, а в секцииobjects
– соответствующие значения. Ниже приведен пример того, как должна выглядеть секция. Ее содержимое может отличаться в зависимости от выбранных объектов распознавания.sudo vi /opt/findface-server/configs/findface-video-worker/findface-video-worker.yaml models: cache_dir: /var/cache/findface/models_cache detectors: car: fnk_path: /usr/share/findface-data/models/detector/car.gustav_normal.007.cpu.fnk min_size: 60 body: fnk_path: /usr/share/findface-data/models/detector/bodydet.gustav_normal.022.cpu.fnk min_size: 60 face: fnk_path: /usr/share/findface-data/models/detector/facedet.jasmine_fast.004.cpu.fnk min_size: 60 normalizers: 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 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 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 extractors: car_quality: fnk_path: /usr/share/findface-data/models/carattr/carattr.license_plate_quality.v4.cpu.fnk normalizer: car_norm_quality body_quality: fnk_path: /usr/share/findface-data/models/pedattr/pedattr.quality.v0.cpu.fnk normalizer: body_norm_quality face_quality: fnk_path: /usr/share/findface-data/models/faceattr/faceattr.quality.v5.cpu.fnk normalizer: face_norm_quality objects: car: normalizer: car_norm quality: car_quality track_features: '' body: normalizer: body_norm quality: body_quality track_features: '' face: normalizer: face_norm quality: face_quality track_features: ''
Перезапустите контейнер
findface-server-findface-video-worker-1
.sudo docker restart findface-server-findface-video-worker-1
Примечание
Если findface-ntls
и/или findface-video-manager
установлены на двух различных серверах, укажите их IP-адреса после установки в файле конфигурации /opt/findface-server/configs/findface-video-worker/findface-video-worker.yaml
. Предположим, findface-ntls
установлен на центральном сервере 192.168.112.253
, а findface-video-manager
установлен на дополнительном сервере 192.168.112.252
, тогда отредактируйте соответствующим образом файл /opt/findface-server/configs/findface-video-worker/findface-video-worker.yaml
.
sudo vi /opt/findface-server/configs/findface-video-worker/findface-video-worker.yaml
В параметре ntls_addr
укажите IP-адрес сервера findface-ntls
.
ntls_addr: 192.168.112.253:3133
В параметре mgr
→ static
укажите IP-адрес сервера findface-video-manager
, который будет обеспечивать findface-video-worker
настройками и списком видеопотоков для обработки.
static: 192.168.112.252: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-server/docker-compose.yaml
.
В файле
/opt/findface-server/docker-compose.yaml
в секцииservices
укажите конфигурациюfindface-video-worker
для каждого запущенного экземпляраfindface-video-worker
. В параметреenvironment
укажите правильный идентификатор GPU дляCUDA_VISIBLE_DEVICES
. Придерживайтесь приведенного ниже примера:sudo vi /opt/findface-server/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-12.241211.2 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-12.241211.2 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-12.241211.2 ... 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
:findface-video-worker-cpu
илиfindface-video-worker-gpu
.docker exec -it findface-server-findface-video-worker-1 ./findface-video-worker-cpu --help
Важно
Для корректной работы несколько экземпляров
findface-video-worker
не должны ссылаться на один и тот жеCFG_STREAMER_PORT
. Убедитесь, что вы указали уникальныйCFG_STREAMER_PORT
для каждого экземпляраfindface-video-worker
.Важно
Для параметра
CFG_STREAMER_URL
укажите IP адрес сервера, на котором развернутfindface-video-worker
. Данный параметр отвечает за работу Видеостены.Выполните перезапуск всех контейнеров.
cd /opt/findface-server sudo docker-compose down sudo docker-compose up -d