Слежение поворотной камерой за целями в зоне (PTZ Tracer 1)

Материал из Integra-S Wiki
Перейти к: навигация, поиск

Позиционирование и фокусировка камеры на отслеживаемой цели. Создание и сохранение фотоизображения цели.

Зависимости

Скрипт зависит от задачи определения вхождения целей в охраняемые зоны Детектор вхождения целей в зоны (Trace detector 1).

Построение схемы

Для построения схемы требуется:

1. Добавить триггер EgsScheduledPTZTracer.

Для этого необходимо:
1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент EgsScheduledPTZTracer.
PTZTracer 9.png
2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента.
Scheduled com 5.png
3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
Scheduled com 3.png
Также все элементы можно добавлять путем захвата и перетаскивания на рабочую область левой кнопкой мыши.

2. Аналогично пункту 1 добавить элементы EgsModule, менеджер AcuarioManager и компьютер Computer.

Scheduled com 6.PNG

3. Настроить сетевой адрес компьютера.

Для этого необходимо выделить на схеме элемент Computer и нажать на кнопку вызова свойств элемента.

В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес".

Scheduled com 7.PNG

4. Связать EgsScheduledPTZTracer и Egs Модуль, подключив пины «Egs вход: EgsInput» у EgsScheduledPTZTracer и «Egs выход: EgsOutput» у Egs Модуля.

PTZTracer 3.PNG

5. Привязать пин "Привязка к менеджеру: ManagingContent" из Egs Модуля к пину "Привязка к менеджеру: ManagingContainer" из Менеджера устройств.

Scheduled com 9.PNG

6. Подключить пин "ПО: SoftwareContent" из Менеджера устройств с пином "Установленное ПО: SoftwareContainer" из Компьютера.

PTZTracer 4.PNG

7. Настроить следующие параметры триггера:

  1. текст скрипта (script) http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%201.put&path=0/params/script/value;
  2. единица измерения (period_unit), например: секунда;
  3. интервал в единицах измерения (period_count), например: 1;
  4. точное время внутри интервала (period_time), например: 00:00:00, 14:30:00;
  5. повторять через интервал или выполнить один раз в указанное время (repeat), например: 0 (бесконечно), 1 (один раз), 100;
  6. задействовать триггер (enabled), например: true;
  7. дистанция до цели, начиная с которой приближение камеры будет всегда максимальным (max_zoom_distance), например: 1500;
  8. коэффициент, ограничивающий максимальный приближение камеры, от 0.0 (0%) до 1.0 (100%) (max_zoom_limit_factor), например: 1;
  9. ширина снимка отслеживаемой цели (snapshot_width), например: 320;
  10. высота снимка отслеживаемой цели (snapshot_height), например: 240;
  11. числовой коэффициент наивысшего приоритета отслеживания (trace_highest_factor), например: 10.0;
  12. числовой коэффициент высокого приоритета отслеживания (trace_high_factor), например: 2.0;
  13. числовой коэффициент нормального приоритета отслеживания (trace_normal_factor), например: 1.0;
  14. числовой коэффициент низкого приоритета отслеживания (trace_low_factor), например: 0.5;
  15. числовой коэффициент наинизшего приоритета отслеживания (trace_lowest_factor), например: 0.2;
  16. время в секундах с момента выключения слежения камерой, по прошествии которого оно автоматически включается (trace_disable_timeout), например: 60.

Настройку параметров триггера можно выполнить, открыв свойства элемента.

PTZTracer 7.PNG

6. У каждой охраняемой зоны Zone настроить следующие параметры:

  1. географический полигон зоны (area), например: POLYGON((50.22190511 53.2362532,50.22222154 53.23630881,50.22224243 53.23622371,50.2218933105469 53.2361679077148,50.22190511 53.2362532));
  2. высоты точек из полигона area (area_heights), вида: -25.1,-25.1, -25.1, -25.1, -25.1;
  3. приоритет зоны (trace_priority), например: normal.

7. C зоной должна быть связана хотя бы одна поворотная камера, т.е. устройство типа PTZDevice, VideoCamera и SpatialObject одновременно, подключив пины "Привязка к зоне:ZoneInputPin" у поворотной камеры и "Зона:ZoneOutputPin" у зоны. Для камеры должны быть настроены следующие параметры:

  1. географические координаты поворотного устройства (geo_position), например: 40.72408616 -74.00867677;
  2. географическая высота поворотного устройства (geo_height), например: 0.
  3. калибровочная матрица поворотного устройства (calibrationMatrix), вида: -0.02104252 0.02104352... 0.9995127 (9 чисел с плавающей точкой);
  4. примерное время на фокусировку в секундах (focus_time), например: 5;
  5. адреса видео-потоков (urls), например: iv7://admin:fulladmin/?udp_id=2801&key2=2801_Поворотная ПН1@;
  6. включить слежение данной камерой (trace_enabled), например: true;

8. Для каждой отслеживаемой цели задачи должны своевременно поставлять значения следующих параметров:

  1. позиция цели (position), например: POINT(48.03591156 46.35991287);
  2. список зон, в которые в данный момент входит цель (trace_zones), например: 6baa9825-a375-4ae3-b7cd-f4e1209a878b;
  3. приоритет отслеживания цели (trace_priority), например: highest.

Проверка

После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%201.put&path=0/params/hash/value

Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.

Алгоритм работы

1. Выбираются все поворотные устройства PTZDevice, у которых включен параметр trace_enabled и заполнен параметр calibrationMatrix.
2. Выбираются все зоны Zone, связанные с полученными поворотными устройствами.
3. Выбираются все цели MoveableObject с непустым списком зон trace_zones и приоритетом слежения trace_priority отличным от DEFAULT.
4. Из списка удаляются все цели, не входящие в ранее полученный список отслеживаемых зон.
5. Цели сортируются по убыванию величины, рассчитываемой по следующей формуле:
seconds_passed(target.trace_snapshot) * get_priority_factor(target.trace_priority) * get_priority_factor(zone.trace_priority), 

где:

target - отслеживаемая цель;

zone - зона с наивысшим приоритетом, в которую в данный момент входит цель;

trace_priority - приоритет отслеживания цели или зоны;

seconds_passed - функция, возвращающая время в секундах с момента последнего изменения параметра, переданного ей;

get_priority_factor - функция, превращающая приоритет в числовой коэффициент, см. параметры триггера.

6. Следующие действия выполняются до тех пор, пока список поворотных устройств не пуст:
1. Из начала списка берется цель с наивысшим рассчитанным коэффициентом.
2. Из списка поворотных устройств удаляется то, которое связано с зоной данной цели.
3. Для полученной пары MoveableObject и PTZDevice выполняется асинхронная функция слежения:
1. Рассчитываются параметры поворота pan, tilt и zoom.
2. Осуществляется поворот устройства в нужную точку.
3. Выдерживается пауза в секундах, равная параметру поворотного устройства focus_time.
4. Осуществляется снимок камеры, для чего из параметра поворотного устройства urls извлекаются параметры udp_id и key2.
5. Снимок экрана конвертируется в JPEG и сохраняется в параметре цели trace_snapshot.

Пример работы

Для построения схемы необходимо:

1. Создать схему по выше описанному алгоритму.

PTZTracer 4.PNG

2. Добавить и связать элементы Зона и IP поворотная камера.

PTZTracer 8.PNG

3. Настроить параметр "Сетевой адрес" компьютера.

4. Настроить следующие параметры триггера:

  1. единица измерения (period_unit): секунда;
  2. интервал в единицах измерения (period_count): 1;
  3. повторять через интервал или выполнить один раз в указанное время (repeat): 0;
  4. задействовать триггер (enabled): true;
  5. дистанция до цели, начиная с которой приближение камеры будет всегда максимальным (max_zoom_distance): 1500;
  6. коэффициент, ограничивающий максимальный приближение камеры, от 0.0 (0%) до 1.0 (100%) (max_zoom_limit_factor): 1;
  7. ширина снимка отслеживаемой цели (snapshot_width): 320;
  8. высота снимка отслеживаемой цели (snapshot_height): 240;
  9. числовой коэффициент наивысшего приоритета отслеживания (trace_highest_factor): 10.0;
  10. числовой коэффициент высокого приоритета отслеживания (trace_high_factor): 2.0;
  11. числовой коэффициент нормального приоритета отслеживания (trace_normal_factor): 1.0;
  12. числовой коэффициент низкого приоритета отслеживания (trace_low_factor): 0.5;
  13. числовой коэффициент наинизшего приоритета отслеживания (trace_lowest_factor): 0.2;
  14. время в секундах с момента выключения слежения камерой, по прошествии которого оно автоматически включается (trace_disable_timeout): 60.

5. Настроить следующие параметры Зоны:

  1. географический полигон зоны (area), например: POLYGON((50.22190511 53.2362532,50.22222154 53.23630881,50.22224243 53.23622371,50.2218933105469 53.2361679077148,50.22190511 53.2362532));
  2. высоты точек из полигона area (area_heights), вида: -25.1,-25.1, -25.1, -25.1, -25.1;
  3. приоритет зоны (trace_priority), например: normal.

6. Настроить следующие параметры камеры:

  1. географические координаты поворотного устройства (geo_position), например: 40.72408616 -74.00867677;
  2. географическая высота поворотного устройства (geo_height), например: 0.
  3. калибровочная матрица поворотного устройства (calibrationMatrix), вида: -0.02104252 0.02104352... 0.9995127 (9 чисел с плавающей точкой);
  4. примерное время на фокусировку в секундах (focus_time), например: 5;
  5. адреса видео-потоков (urls), например: iv7://admin:fulladmin/?udp_id=2801&key2=2801_Поворотная ПН1@;
  6. включить слежение данной камерой (trace_enabled), например: true;

7. Для каждой отслеживаемой цели задачи должны своевременно поставлять значения следующих параметров:

  1. позиция цели (position), например: POINT(48.03591156 46.35991287);
  2. список зон, в которые в данный момент входит цель (trace_zones), например: 6baa9825-a375-4ae3-b7cd-f4e1209a878b;
  3. приоритет отслеживания цели (trace_priority), например: highest.


Далее необходимо запустить скрипт "Симулятор движения (Position Simulator 1)", описание которого приведено на странице Симулятор движения (Position simulator 1), и настроить в свойствах триггера параметр: данные о движении объекта (settings.input): 40.72402111,-73.99108148,0. Элемент в Position Simulator 1 и в Trace detector 1 должен быть одним и тем же.

Результат:

В параметр зона слежения (trace_zones) будет установлена зона, в которой в данный момент находится цель.

Дополнения

1. В пункте 1 раздела Построение схемы добавление триггера EgsScheduledTraceDetector можно осуществить по ссылке.

Для этого необходимо:

1. Импортировать скрипт по следующей ссылке: http://maps.integra-s.com/resources/typedef2017/egs/PTZ%20Tracer%201.put.
2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
Scheduled com 1.png
3. В открывшемся окне выбрать импортированный скрипт "Trace detector 1.put".
PTZTracer 1 1.PNG
Элемент появится на рабочей области.
Scheduled com 3.png

2. В пункте 7 раздела Построение схемы редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".

PTZTracer 5.png
После этого откроется окно для редактирования параметров.
PTZTracer 6.PNG