Номер | Вид источника | IP адрес | Кол-во отдаваемых потоков | Статус |
---|---|---|---|---|
1 | H.264 Encoder | 172.18.191.111 | - | Установлен |
2 | Камера Mini_PTZ_6_1F:1B | 172.18.191.112 | Более двух | Установлена |
3 | Камера Mini_PTZ_4_10:1B | 172.18.191.113 | Более двух | Установлена |
4 | Камера-шар 30х | 172.18.191.114 | 2 | Установлена |
5 | Камера Mini_PTZ_3_1E:F1 | 172.18.191.115 | Более двух | Установлена |
6 | Камера-шар 30х | 172.18.191.116 | 2 | Установлена |
7 | StaticDahua | 172.18.191.117 | ? | Установлена |
8 | Mini_PTZ_5_1E:E5 | 172.18.191.118 | Более двух | Установлена |
Задача состоит в том, чтобы лучем фонаря под управлением DMX отслеживать движения человека на сцене и перемещаться в соответсвующую сторону.
Подключение к фонарям:
Платформа запуска:
Фонари управляются контроллером, который подключен в сеть через роутер с настроеным vpn гейтом.
Машина, на которой запускается алгоритм должна иметь доступ к контроллеру и к камере, для этого испоьзуется vpn (конфиг vpn-15).
Изображение с камера передается в нейросеть, обрабатывается и фонарь двигается к координате человека.
Фонарь с управлением по DMX модель
Контроллер DMX-artnet
Роутер
ПК, проверили работоспособность алгоритма на следующих системах и конфигурациях
2 cpu cores, 8 Gb RAM, win10;
4 cpu cores, 12 Gb RAM, win10;
8 cpu cores, 16 Gb RAM, win10;
8 cpu cores, 16 Gb RAM, ubuntu 21.10;
Алгоритм полуает изображение с камеры, обрезает и сжимает его до 480p. По изображению строится сетка в зависимости от параметра lights-position. Сетка - количество положений фонаря, в которые помещается сцена. Изображение отправляется в нейронную сеть YOLOv4-tiny, на выходе получаются массивы объектов имя класса, точность, начало координат прямоугольной рамки обнаруженного объекта.
Алгоритм фильтрует список классов, оставляет только 'person', по координатам рамки получает центр объекта. Определяется положение центра в сетке, алгоритм получает значение сдвига. С помощью библиотеки stupidArtnet передает сумму начального положение фонаря и сдвига контроллеру.
OpenCV
Numpy
StupidArtnet
Создание окружения
windows:
python3 -m venv /path/to/new/virtual_environment
virtual_environment\Scripts\activate.bat
Linux
python3 -m venv /path/to/new/virtual_environment
source virtual_environment/bin/activate
Зависимости:
pip install -r requirements.txt
Модель нейронной сети, файлы необходимо добавить в корневую папку проекта:
Конфиг yolov4-tiny.cfg
Веса yolov4-tiny.weights
Запуск
python3 detector.py RTSP_camera_address controller_artnet_ip lights-position frame-count
detector -- используется для визульной отладки, отрисовывает изображение, сетку и контур человека.
detector_wo_img -- не тратит ресурсы процессора на отрисовку изображения, должна быть прибавка к скорости около 10%
lights-position -- количество положений фонаря, в который помещается сцена
frame-count -- Алгоритм обрабатывает каждый frame-count кадр
Для левого фонаря, глядя со сцена на -1 этаже: lights-position = 10
Алгоритм -- Годяев Дмитрий БИВ182
Настройка vpn гейта на роутере -- Годяев Дмитрий БИВ182
Развертывание на виртуалке -- Бородин Юрий БИВ181
Тестирование и отладка -- Бородин Юрий БИВ181, Годяев Дмитрий БИВ182
Примеры работы:
GDrive
vid01-03 алгоритм работает с одним DMX-каналом управления горизонтальным движением
vid04 алгоритм работает с двумя DMX-каналами. Боле тонкая настройка