Внешние системы управления видео (VMS)
На стороне FindFace Multi реализован механизм интеграции с внешними системами управления видео (VMS), позволяющий добавлять камеры из них в FindFace Multi и осуществлять их обработку. После добавления камеры из VMS для нее становятся доступны все действия, которые доступны для обычной камеры FindFace Multi.
Интеграция с внешними VMS возможна через плагин. Взаимодействие между плагином и FindFace Multi осуществляется по HTTP. Плагин взаимодействует с VMS, FindFace Multi – с плагином.
В этой главе:
Этот раздел содержит пошаговое руководство по установке и настройке функции внешних VMS в FindFace Multi. Пользователь должен иметь большой опыт администрирования ОС Linux и контейнеров Docker.
Создание сервисной учетной записи для плагина интеграции с VMS
Создайте пользователя (имя пользователя: ntech) с определенным набором разрешений, который будет использоваться в качестве сервисной учетной записи для плагина интеграции. Для этого выполните приведенную ниже команду:
adduser --system --disabled-password --disabled-login --home /var/empty \
--no-create-home --quiet --force-badname --group ntech
Включение плагина в FindFace Multi
Откройте файл
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.pyи найдите разделExternal VMS Integration settings.Измените параметр
'ENABLED'наTrue.Запомните значение
TOKEN, так как оно вам понадобится для настройки плагина позже. Значение по умолчанию –PLUGIN_TOKEN. Пожалуйста, обратите внимание, что префикс токенаVmsPluginTokenдолжен быть только в конфигурационном файлеfindface-multi-legacy.py. Если плагин установлен на том же хосте, что и FindFace Multi, используйте имя контейнера и портhttp://findface-vms-integration-plugin:18333в качестве адреса плагина.... # -- External VMS integration settings -- # cleanup settings 'EXTERNAL_VMS_EVENTS_MAX_AGE': 0, 'EXTERNAL_VMS_SEND_EVENTS_STATUS_MAX_AGE': 0, 'EXTERNAL_VMS': { 'ENABLED': True, 'PLUGIN_ADDRESS': 'http://findface-vms-integration-plugin:18333', 'TOKEN': 'VmsPluginToken PLUGIN_TOKEN', 'EVENT_SENDER': { 'ENABLED': True, 'ALLOWED_TYPES': ['face'], 'SENDER_TASKS': 1, 'MAX_SEND_ATTEMPTS': 1, 'MIN_EVENT_SEND_TIMEOUT': 0.1, 'MAX_EVENT_SEND_TIMEOUT': 100, 'RESPONSE_TIMEOUT': 10, }, }, ...
Совет
В данном примере плагин установлен на том же хосте, что и FindFace Multi. Если плагин установлен на другом хосте, укажите правильный адрес сервера, на котором находится плагин интеграции с VMS, в параметре
PLUGIN_ADDRESS.Примечание
Если вам нужно отправлять события на VMS, установите значение
'ENABLED': Trueв разделеEVENT_SENDER.Выполните перезапуск контейнеров FindFace Multi.
cd /opt/findface-multi/ sudo docker-compose restart
Краткое описание параметров приведено ниже:
Параметр |
Описание |
|---|---|
|
Время хранения событий, полученных от VMS (дни). 0 – неограниченно. |
|
Время хранения событий, отправленных в VMS (дни). 0 – неограниченно. |
|
Статус модуля интеграции VMS c FindFace. Если |
|
IP адрес плагина. |
|
Токен, необходимый плагину интеграции с VMS для аутентификации в Findface Multi (должен соответствовать токену в файле конфигурации плагина). |
|
Если |
|
Типы отправляемых объектов |
|
Количество одновременных задач для отправки событий в плагин. Значение по умолчанию = 1. При необходимости оно может быть увеличено. За дополнительной информацией обратитесь к нашим экспертам за консультацией (support@ntechlab.com). |
|
Количество попыток отправки до того, как она будет признана неудачной. |
|
Время между попытками отправки, если произошла неудачная отправка. Оно будет расти экспоненциально от минимума к максимуму до тех пор, пока увеличивается количество попыток |
|
Время ожидания ответа от плагина при отправке события. |
Создание новой базы данных в PostgreSQL
Откройте файл
/opt/findface-multi/docker-compose.yamlи запишите значениеPOSTGRES_PASSWORD. Оно понадобится для следующего шага.sudo vi /opt/findface-multi/docker-compose.yaml ... postgresql: environment: {POSTGRES_PASSWORD: POSTGRES_PASSWORD} ...
Войдите в контейнер
findface-multi-postgresql-1, выполнив следующую команду:sudo docker exec -i findface-multi-postgresql-1 /bin/bash -c "PGPASSWORD={POSTGRES_PASSWORD} psql --username postgres"
Чтобы убедиться, что вы успешно вошли в контейнер, используйте команду
\lдля просмотра списка баз данных:List of databases Name | Owner | Encoding | Locale Provider | Collate | Ctype | ICU Locale | ICU Rules | Access privileges ------------------------------+----------+----------+-----------------+-------------+-------------+------------+-----------+----------------------- alerts | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | ffsecurity | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | ffsecurity_audit | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | ffsecurity_identity_provider | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | postgres | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | replication_receiver | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | replication_sender | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | superset | superset | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | template0 | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/postgres + | | | | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/postgres + | | | | | | | | postgres=CTc/postgres (10 rows)
Выполните следующую команду, чтобы создать новую базу данных, необходимую для работы VMS:
CREATE DATABASE ffsintegration WITH OWNER ntech ;
Подтвердите создание базы данных, снова выполнив команду
\l. После завершения используйте параметр\qдля выхода из PostgreSQL.CREATE DATABASE ffsintegration WITH OWNER ntech ; CREATE DATABASE \l List of databases Name | Owner | Encoding | Locale Provider | Collate | Ctype | ICU Locale | ICU Rules | Access privileges ------------------------------+----------+----------+-----------------+-------------+-------------+------------+-----------+----------------------- alerts | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | ffsecurity | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | ffsecurity_audit | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | ffsecurity_identity_provider | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | ffsintegration | ntech | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | postgres | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | replication_receiver | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | replication_sender | ntech | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | superset | superset | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | template0 | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/postgres + | | | | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/postgres + | | | | | | | | postgres=CTc/postgres (11 rows) \q
Установка и настройка плагина для интеграции VMS с FindFace
Откройте файл
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.pyи найдите разделDATABASES. Запомните значениеPASSWORDдля пользователяntech:sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py ... # Database is used to store cameras, camera groups, watchlists and so on. # Only PostgreSQL is supported. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'DISABLE_SERVER_SIDE_CURSORS': True, 'NAME': 'ffsecurity', 'HOST': 'pgbouncer', 'PORT': 6432, 'USER': 'ntech', 'PASSWORD': 'PASSWORD' } }
Запросите плагин
findface-vms-integration-plugin.imgу представителя компании NtechLab.Загрузите плагин в систему.
docker load < findface-vms-integration-plugin.img
Отредактируйте файл
/opt/findface-multi/docker-compose.yaml, добавив в него секциюfindface-vms-integration-plugin.sudo vi /opt/findface-multi/docker-compose.yaml
Добавьте секцию
findface-vms-integration-pluginв конец файла/opt/findface-multi/docker-compose.yaml.findface-vms-integration-plugin: depends_on: [findface-ntls, postgresql, findface-multi-legacy] image: findface-vms-integration-plugin:latest networks: [product-network] volumes: ['./configs/findface-vms-integration-plugin/findface-vms-integration-plugin.conf:/etc/findface-vms-integration-plugin.conf'] restart: always
Совет
Версия плагина может отличаться от указанной в документации. Для получения последней версии обратитесь в службу технической поддержки по адресу support@ntechlab.com.
Создайте конфигурационный файл для плагина.
sudo mkdir configs/findface-vms-integration-plugin/ sudo vi configs/findface-vms-integration-plugin/findface-vms-integration-plugin.conf
Ниже приведен пример конфигурационного файла
findface-vms-integration-plugin.conf.# URL prefix for API version 1 endpoints # Default: /api/v1 # API_V1_STR: /v1 # App listens on this interface. Set it to 0.0.0.0 to listen on all available interfaces # Default: 127.0.0.1 # HOST: 0.0.0.0 # App accepts HTTP connections on this port # Default: 18333 # # PORT: 18333 # Public URL for App #Default: http://127.0.0.1:18333 # #PUBLIC_URL: http://127.0.0.1:18333 # Public URL for FFS # Default: http://127.0.0.1 # FFS_PUBLIC_URL: http://172.23.218.85 # Replace 172.23.218.85 with your FindFace Multi IP address. # Full database URL dialect+driver://username:password@host:port/database. # Alternatively, connection parameters can be specified one by one (see below). # # SQLALCHEMY_DATABASE_URI: # Database host # POSTGRES_SERVER: postgresql # name of the postgresql container # Database port number # POSTGRES_PORT: 5432 # Database user # POSTGRES_USER: ntech # Database user password # POSTGRES_PASSWORD: POSTGRES_PASSWORD # the PostgreSQL password for the ``ntech`` user from the ``/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py`` configuration file # Database name # POSTGRES_DB: ffsintegration # Log SQL statements # Default: FALSE # # LOG_QUERIES: FALSE # Secret token used to validate requests made by FindFace Security # Required: yes # FFS_TOKEN: PLUGIN_TOKEN # Include traceback information in error responses # Default: FALSE # RESP_TRACEBACK: True # Logging level # Default: INFO # #LOG_LEVEL: DEBUG # Enable journald log handler. # Default: TRUE # # LOG_TO_JOURNALD: TRUE # Timeout for requests to VMS # Default: 10 # # VMS_REQUEST_TIMEOUT_SEC: 10 # Timeout for requests to FindFace # Default: 10 # # FF_REQUEST_TIMEOUT_SEC: 10
Совет
В данном примере плагин установлен на том же хосте, что и FindFace Multi. Если плагин установлен на другом хосте, укажите правильный адрес сервера FindFace Multi в параметре
POSTGRES_SERVER, а URL – в параметреFFS_PUBLIC_URL.Если вы установили плагин на тот же хост, что и FindFace Multi, то вам нужно только добавить правильный логин и пароль для локальной базы данных PostgreSQL.
POSTGRES_USER: ntech POSTGRES_PASSWORD: POSTGRES_PASSWORD
Значение
POSTGRES_PASSWORDможно получить из файла/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py.Для включения внешнего плагина VMS в FindFace Multi запустите все контейнеры FindFace Multi из директории
/opt/findface-multi.sudo docker-compose up -d
Откройте FindFace Multi в браузере. Вы увидите, что появился раздел Настройки → Внешние VMS.
Предупреждение
Для корректного воспроизведения видеоархивов с внешних VMS необходимо установить на внешнем сервере VMS тот же часовой пояс, что и на сервере FindFace Multi.
Добавление внешних VMS в FindFace Multi
В разделе Настройки → Внешние VMS нажмите на кнопку + Новая VMS.
Укажите параметры вашей VMS в открывшихся окнах и нажмите на кнопку Сохранить, как только все будет готово:
После завершения вы можете управлять потоками со своих VMS на вкладке Камеры. Например, вы можете мгновенно добавить все или выбранные камеры в FindFace Multi.
Если вам нужно отправить события на внешнюю VMS, в настройках камеры, добавленной из VMS, проверьте, настроена ли отправка событий на внешние VMS:
При нажатии на кнопку
в мастере настройки обработки для созданной камеры доступны следующие действия:Отфильтровать события
Активировать/Деактивировать
Удалить
Перезапустить
Сбросить настройки
Дублировать
В обязательных свойствах списка наблюдения установите флажок
Отправка событий сопоставления в VMSи нажмите на кнопку Сохранить, чтобы применить изменения.Отправленные и полученные сообщения можно просмотреть на соответствующих вкладках выбранной VMS:
Если Видеомагнитофон развернут и настроен, вы можете воспроизводить видеоархивы из внешних систем управления видео VMS (Axxon, Trassir) через него. Чтобы использовать эту функциональность, сначала убедитесь, что камера, добавленная из внешних VMS, активна. Затем перейдите на вкладку Эпизоды и события и наведите курсор на интересующее вас событие или эпизод. На миниатюре объекта (лица/силуэта или транспортного средства) отобразится кнопка play. Нажмите на нее, чтобы начать воспроизведение видео с того момента, когда было зафиксировано событие или эпизод с камеры.
Вы также можете воспроизводить видеоархив через камеру, нажав play на миниатюре камеры в списке камер на вкладке Источники видео. В результате видео с камеры внешних VMS будет отображаться в видеомагнитофоне. Если в указанное время в FindFace Multi имеется записанный видеоархив, то в видеомагнитофоне будет воспроизводиться он, а не видеоархив из внешних VMS.
Теперь ваша установка FindFace Multi расширена и поддерживает внешние VMS. Вы можете подключить столько VMS, сколько потребуется, и легко добавлять существующие видеопотоки в FindFace всего за несколько кликов.







