Внешние системы управления видео (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

  1. Откройте файл /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py и найдите раздел External VMS Integration settings.

  2. Измените параметр ENABLED на True.

  3. Запомните значение TOKEN, так как оно вам понадобится для настройки плагина позже. (Значение по умолчанию – VmsPluginToken PLUGIN_TOKEN).

    ...
    # -- 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://127.0.0.1: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.

  4. Перезапустите контейнер findface-multi-findface-multi-legacy-1 .

    sudo docker container restart findface-multi-findface-multi-legacy-1
    

Краткое описание параметров приведено ниже:

Параметр

Описание

EXTERNAL_VMS_EVENTS_MAX_AGE

Время хранения событий, полученных от VMS (дни). 0 – неограниченно.

EXTERNAL_VMS_SEND_EVENTS_STATUS_AGE

Время хранения событий, отправленных в VMS (дни). 0 – неограниченно.

EXTERNAL_VMS: ENABLED

Статус модуля интеграции VMS c FindFace. Если ENABLED, то в пользовательском интерфейсе появится опция “Внешние VMS”.

PLUGIN_ADDRESS

IP адрес плагина.

TOKEN

Токен, необходимый плагину интеграции с VMS для аутентификации в Findface Multi (должен соответствовать токену в файле конфигурации плагина).

EVENT_SENDER:ENABLED

Если True, все совпадающие события в Findface Multi будут отправлены во внешние VMS.

ALLOWED_TYPES

Типы отправляемых объектов. В настоящее время поддерживаются только объекты «Лица».

SENDER_TASKS

Количество одновременных задач для отправки событий в плагин. Значение по умолчанию = 1. При необходимости оно может быть увеличено. За дополнительной информацией обратитесь к нашим экспертам за консультацией (support@ntechlab.com).

MAX_SEND_ATTEMPTS

Количество попыток отправки до того, как она будет признана неудачной.

MIN_EVENT_SEND_TIMEOUT MAX_EVENT_SEND_TIMEOUT

Время между попытками отправки, если произошла неудачная отправка. Оно будет расти экспоненциально от минимума к максимуму до тех пор, пока увеличивается количество попыток MAX_SEND_ATTEMPTS.

RESPONSE_TIMEOUT

Время ожидания ответа от плагина при отправке события.

PostgreSQL

  1. Откройте файл /opt/findface-multi/docker-compose.yaml и запишите значение POSTGRES_PASSWORD. Оно понадобится для следующего шага.

    sudo vi /opt/findface-multi/docker-compose.yaml
    ...
     postgresql:
       environment: {POSTGRESQL_ALLOW_REMOTE_CONNECTIONS: 'no', POSTGRES_PASSWORD: POSTGRES_PASSWORD}
    ...
    
  2. Войдите в контейнер findface-multi-postgresql-1, выполнив следующую команду:

    sudo docker exec -i findface-multi-postgresql-1 /bin/bash -c "PGPASSWORD={POSTGRES_PASSWORD} psql --username postgres"
    

    Чтобы убедиться, что вы успешно вошли в контейнер, используйте команду \l для просмотра списка баз данных:

    wms_databases_en

  3. Выполните следующую команду, чтобы создать новую базу данных, необходимую для работы VMS:

    CREATE DATABASE ffsintegration WITH OWNER ntech ;
    
  4. Подтвердите создание базы данных, снова выполнив команду \l. После завершения используйте параметр \q для выхода из PostgreSQL.

    wms_exit_postgreSQL_en

Установка и настройка плагина для интеграции VMS с FindFace

  1. Откройте файл /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
    
    ...
    # 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': '127.0.0.1', 'PORT': 5439, 'USER': 'ntech', 'PASSWORD': 'PASSWORD'
        }
    }
    
  2. Скачайте установочный файл плагина FindFace (.deb) по ссылке от представителя NtechLab.

  3. Установите его с помощью команды:

    sudo dpkg -i findface-vms-integration-plugin_0.1.0_amd64.deb
    
  4. Откройте конфигурационный файл расположенный в /etc/findface-vms-integration-plugin.conf. Раскомментируйте и вставьте в него следующие данные:

    sudo vi /etc/findface-vms-integration-plugin.conf
    
    • POSTGRES_SERVER (укажите сервер, на котором запущен контейнер postgresql)

    • POSTGRES_PORT (используйте значение, отличное от указанного в config.py, например, используйте 5432)

    • POSTGRES_USER (укажите ntech)

    • POSTGRES_PASSWORD (используйте значение PASSWORD для пользователя ntech из конфигурационного файла /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py, см. п.1.)

    • POSTGRES_DB (укажите ffsintegration)

    • PUBLIC_URL (по умолчанию http://127.0.0.1:18333)

    • FFS_PUBLIC_URL (по умолчанию: http://127.0.0.1)

    • FFS_TOKEN (укажите тот же токен, что в разделе EXTERNAL_VMSTOKEN файла /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py без префикса VmsPluginToken)

    В результате конфигурационный файл будет выглядеть следующим образом:

    Совет

    В нашем примере мы устанавливаем плагин на тот же хост, где развернут FindFace Multi. В случае использования отдельного компьютера, пожалуйста, укажите правильный адрес сервера FindFace Multi в поле POSTGRES_SERVER, а URL – в поле FFS_PUBLIC_URL.

    Остальные параметры являются необязательными и не требуются для первоначальной настройки.

  5. Обновите базу данных, используя следующую команду:

    sudo /opt/findface-vms-integration-plugin/bin/vms-integration-plugin-alembic upgrade head
    

    В случае успеха результат будет выглядеть следующим образом:

    wms_update_database_en

  6. Чтобы запустить сервис плагина и убедиться, что сервис запускается автоматически, выполните следующую команду:

    sudo systemctl start findface-vms-integration-plugin && sudo systemctl enable findface-vms-integration-plugin && sudo systemctl status findface-vms-integration-plugin
    

    wms_start_plugin_en

Предупреждение

Для корректного воспроизведения видеоархивов с внешних VMS необходимо установить на внешнем сервере VMS тот же часовой пояс, что и на сервере FindFace Multi.

Добавление Внешних VMS в FindFace Multi

  1. Войдите в FindFace Multi в вашем браузере, перейдите в раздел Настройки -> Внешние VMS. Нажмите на кнопку Новая VMS.

    wms_add_ru

  2. Укажите параметры вашей VMS в открывшихся окнах и нажмите на кнопку Сохранить, как только все будет готово:

    wms_info_ru

  3. После завершения теперь вы можете управлять потоками со своих VMS на вкладке Камеры. Например, вы можете мгновенно добавить все или выбранные камеры в FindFace Multi.

    wms_cameras_ru

  4. Если вам нужно отправить события на внешнюю VMS, в настройках камеры, добавленной из VMS, проверьте, настроена ли отправка событий на внешние VMS:

    wms_general_ru

  5. В обязательных свойствах списка наблюдения установите флажок Отправка событий сопоставления в VMS и нажмите на кнопку Сохранить, чтобы применить изменения.

    wms_watch_list_prop_ru

  6. Отправленные и полученные сообщения можно просмотреть на соответствующих вкладках выбранной VMS:

    wms_messages_ru

Теперь ваша установка FindFace Multi расширена и поддерживает внешние VMS. Вы можете подключить столько VMS, сколько потребуется, и легко добавлять существующие видеопотоки в FindFace всего за несколько кликов.