EVI Analytics — модуль видеоаналитики, предназначен для обнаружения, распознавания, подсчета, трекинга объектов согласно моделям.

Рекомендуется обновить ядро системы перед установкой видеодрайвера.

Системные требования для видеоаналитики

Перед началом работы необходимо ознакомиться с требованиями к модулю Видеоалитики в разделе Системные требования Платформы EVI.

Требования для модуля Видеоаналитика

Использование виртуализации

Система видеоаналитики требует наличия видеокарты.

Для работы в виртуальном окружении гипервизор должен поддерживать аппаратный проброс устройств PCI/PCI-E, включая видеокарту.

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

Для работы модуля требуется дискретная видеокарта. Ниже приведена минимальная конфигурация для запуска:

OSGPUSERIESVRAMDRIVER
RedOS 8.0 SENVIDIAQuadro или RTX8 GB545

Пример установленных версий ядра и драйвера

Возможны проблемы установки драйвера из-за ядра Linux, ниже приведены примеры рабочих вариантов:

OSKernelDriver
RED OS 8.0 SEGNU/Linux 6.12.37-1.red80.x86_64
NVIDIA-SMI 570.144-1

Ручная установка docker и драйвера

Для работы с видеокартой необходимо установить драйвер:

Установить драйвер для видеокарты
sudo dnf install nvidia-drivers-3:570.144-1.red80.x86_64

Далее необходимо установить docker для работы с контейнером аналитики и nvidia-container-tookit для работы с видеокартой:

Подключение репозитория Nvidia
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
Установка docker
sudo dnf install docker-ce
sudo dnf install docker-compose
Установка nvidia-container-toolkit для проброса видеокарты
sudo dnf install nvidia-container-toolkit


Настройка запуска контейнера
sudo nvidia-ctk runtime configure --runtime=docker 
sudo nvidia-ctk runtime configure --runtime=containerd


Изменение конфигурационного файла контейнера Nvidia
sudo nano /etc/nvidia-container-runtime/config.toml

Изменить no-cgroups на true:

[nvidia-container-cli] no-cgroups = true

Cохранить файл нажав Ctrl+X, затем Y и Enter.

Добавить пользователя в группу docker:

Добавить пользователя в группу docker
sudo usermod -aG docker $(whoami)
Обязательно требуется перезагрузка сервера.
sudo reboot

Необходимо проверить наличие запущенного драйвера в системе после его установки

Проверка работающего драйвера в системе
nvidia-smi
Пример вывода команды nvidia-smi
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.144.03             Driver Version: 550.144.03     CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3080        Off |   00000000:01:00.0 Off |                  N/A |
|  0%   41C    P2            113W /  370W |    3902MiB /  10240MiB |      5%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A   2144100      C   tritonserver                                 1296MiB |
|    0   N/A  N/A   2144155      C   tritonserver                                 1296MiB |
|    0   N/A  N/A   2144163      C   tritonserver                                 1296MiB |
+-----------------------------------------------------------------------------------------+

Настройка доступа к базе данных для подключения контейнера

Перед началом настройки необходимо остановить сервисы EVI.

Остановите сервисы, которые работают с базой данных 
sudo systemctl stop evi-core.service evi-scud.service evi-live.service evi-archive.service evi-analyzer.service

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

Отредактировать файл /var/lib/pgsql/17/data/pg_hba.conf
sudo nano /var/lib/pgsql/17/data/pg_hba.conf

В раздел IPv4 local connections добавьте строку по примеру ниже и сохраните файл.

Так как контейнеры по умолчанию получают IP-адреса из подсети 172.16.0.0/12, необходимо указать его.

/var/lib/pgsql/17/data/pg_hba.conf
# IPv4 local connections:
host    all             all             127.0.0.1/32          scram-sha-256
host    all             all             172.16.0.0/12         md5

Откройте файл конфигурации базы данных. Уберите символ решётки (#), чтобы активировать параметр listen_addresses, и укажите в нем IP-адрес сервера. После этого сохраните изменения в файле.

Отредактировать файл /var/lib/pgsql/17/data/postgresql.conf
sudo nano /var/lib/pgsql/17/data/postgresql.conf
Исходный файл /var/lib/pgsql/17/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
                                        
# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
Пример отредактированного файла /var/lib/pgsql/17/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
                                        
# - Connection Settings -

listen_addresses = 'localhost, 192.168.1.10'         # what IP address(es) to listen on;

Для применения изменений перезапустите сервис базы данных postgresql:

Перезапуск сервиса базы данных
sudo systemctl restart postgresql-17.service
Запустите сервисы evi 
sudo systemctl start evi-core.service evi-scud.service evi-live.service evi-archive.service evi-analyzer.service

Загрузка образа и запуск контейнера evi-analytics

Образы аналитики имеют большой объем, поэтому их загрузка может занять некоторое время.

После настройки доступа к базе данных необходимо загрузить на сервер аналитики скрипт evi-analytics_1.4.1.sh:

Загрузить скрипт evi-analytics_1.4.1_public.sh с 1 или 3 тритонами
wget --no-check-certificate https://archive.eltex-co.ru/evi-raw/evi-1.4.1/evi-analytics_1.4.1_triton1.sh
/или/
wget --no-check-certificate https://archive.eltex-co.ru/evi-raw/evi-1.4.1/evi-analytics_1.4.1_triton3.sh
Запустить скрипт evi-analytics_1.4.1_public.sh с 1 или 3 тритонами
bash evi-analytics_1.4.1_triton1.sh EFNRS_DB_HOST="IP-АДРЕС ВАШЕЙ БАЗЫ ДАННЫХ"
/или/
bash evi-analytics_1.4.1_triton3.sh EFNRS_DB_HOST="IP-АДРЕС ВАШЕЙ БАЗЫ ДАННЫХ"
Пример запуска
bash evi-analytics_1.4.1_triton1.sh EFNRS_DB_HOST="192.168.1.10"
/или/
bash evi-analytics_1.4.1_triton3.sh EFNRS_DB_HOST="192.168.1.10"

Проверка работоспособности

docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"

Пример успешно запущенных контейнеров

CONTAINER ID   NAMES                                                    STATUS
f01deee7d6a5   user-triton1-1                                       Up 23 hours
d70d9e7004ac   user-triton3-1                                       Up 23 hours
c011105320e9   user-triton2-1                                       Up 23 hours
d17d6261648f   user-evi-analytics-haproxy-1            Up 23 hours
fa2db6812f3b    user-evi-analytics-1                             Up 23 hours

  • Нет меток