Развертывание 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?(Какой продукт следует установить?)О:
31. [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 3 interface(s). Which one should we announce as our inter-service communication address? - 1 [lo ] 127.0.0.1 - 2 [ens3 ] 192.168.112.254 - 3 [docker0 ] 10.152.249.1 (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: 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.021.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.quality.v1.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-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-12.240830.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.240830.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.240830.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не должны ссылаться на один и тот жеCFG_STREAMER_PORT. Убедитесь, что вы указали уникальныйCFG_STREAMER_PORTдля каждого экземпляраfindface-video-worker.Важно
Для параметра
CFG_STREAMER_URLукажите IP адрес сервера, на котором развернутfindface-video-worker. Данный параметр отвечает за работу Видеостены.Выполните пересборку контейнеров FindFace Multi из директории
/opt/findface-multi.cd /opt/findface-multi sudo docker-compose down sudo docker-compose up -d