Слежение поворотной камерой за целями в зоне (PTZ Tracer 1) — различия между версиями
Mikheeva (обсуждение | вклад) (→Построение схемы) |
Mikheeva (обсуждение | вклад) (→Проверка) |
||
(не показано 39 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | Позиционирование и фокусировка камеры на отслеживаемой цели. Создание и сохранение фотоизображения цели. | + | Позиционирование и фокусировка камеры на отслеживаемой цели. Создание и сохранение фотоизображения цели. Скрипт работает с одной локальной базой трекинга и одной или несколькими удаленными базами интеграции |
==Зависимости== | ==Зависимости== | ||
Скрипт зависит от задачи определения вхождения целей в охраняемые зоны [[Детектор вхождения целей в зоны (Trace detector 1)]]. | Скрипт зависит от задачи определения вхождения целей в охраняемые зоны [[Детектор вхождения целей в зоны (Trace detector 1)]]. | ||
− | == | + | ==Построение схемы== |
− | + | Для построения схемы требуется: | |
− | + | 1. Добавить триггер '''EgsScheduled'''. | |
− | + | :Для этого необходимо: | |
− | + | :1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент '''EgsScheduled'''. | |
− | + | [[File:Scheduled_com_4.png|центр]] | |
− | 2. | + | :2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента. |
− | [[File: | + | [[File:Scheduled_com_5.png|центр]] |
− | 3. | + | :3. Нажать кнопку "Добавить". Элемент появится на рабочей области. |
− | |||
− | |||
− | |||
− | Элемент появится на рабочей области. | ||
[[File:Scheduled_com_3.png|центр|1000px]] | [[File:Scheduled_com_3.png|центр|1000px]] | ||
− | + | :''Также все элементы можно добавлять путем захвата и перетаскивания на рабочую область левой кнопкой мыши.'' | |
− | + | 2. Аналогично пункту 1 добавить элементы '''EgsModule''', менеджер '''AcuarioManager''' и компьютер '''Computer'''. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | 2. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[File:Scheduled_com_6.PNG|центр|1000px]] | [[File:Scheduled_com_6.PNG|центр|1000px]] | ||
− | + | 3. Настроить сетевой адрес компьютера. | |
− | Для этого необходимо выделить на схеме элемент Computer и нажать на кнопку вызова свойств элемента. | + | Для этого необходимо выделить на схеме элемент '''Computer''' и нажать на кнопку вызова свойств элемента. |
В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес". | В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес". | ||
Строка 61: | Строка 37: | ||
[[File:Scheduled_com_7.PNG|центр|1000px]] | [[File:Scheduled_com_7.PNG|центр|1000px]] | ||
− | + | 4. Связать '''EgsScheduled''' и '''Egs Модуль''', подключив пины «'''Egs вход: EgsInput'''» у '''EgsScheduled''' и «'''Egs выход: EgsOutput'''» у '''Egs Модуля'''. | |
[[File:PTZTracer_3.PNG|центр|1000px]] | [[File:PTZTracer_3.PNG|центр|1000px]] | ||
− | + | 5. Привязать пин "'''Привязка к менеджеру: ManagingContent'''" из '''Egs Модуля''' к пину "'''Менеджер устройств: ManagingContainer'''" из '''Менеджера устройств'''. | |
[[File:Scheduled_com_9.PNG|центр|1000px]] | [[File:Scheduled_com_9.PNG|центр|1000px]] | ||
− | + | 6. Подключить пин "'''ПО: SoftwareContent'''" из '''Менеджера устройств''' с пином "'''Установленное ПО: SoftwareContainer'''" из '''Компьютера'''. | |
[[File:PTZTracer_4.PNG|центр|1000px]] | [[File:PTZTracer_4.PNG|центр|1000px]] | ||
− | + | 7. Настроить следующие параметры триггера: | |
− | + | #текст скрипта ('''script'''). Может быть использован один из трех скриптов: PTZ Tracer 2, PTZ Tracer 3, PTZ Tracer 3 Naive. Скрипт PTZ Tracer 2 наводится на координаты, сформированные радаром, из-за чего при слежении за быстро перемещающимися объектами в связи с задержкой обработки данных камера поворачивается в место, где объекта уже нет. PTZ Tracer 3 Naive имеет простой алгоритм поправки на скорость поворота камеры. PTZ Tracer 3 содержит сложный алгоритм поправки, учитывающий скорость судна и другие параметры, позволяющие более точно навести камеру на цель. Текст скрипта PTZ Tracer 2: <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%202.put&path=0/params/script/value</code>; PTZ Tracer 3 - <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%203.put&path=0/params/script/value</code>; PTZ Tracer 3 Naive - <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%203%20Naive.put&path=0/params/script/value</code> | |
− | + | #единица измерения ('''period_unit'''), например: секунда; | |
− | # | + | #интервал в единицах измерения ('''period_count'''), например: 1; |
− | # | + | #точное время внутри интервала ('''period_time'''), например: 00:00:00, 14:30:00; |
− | # | + | #повторять через интервал или выполнить один раз в указанное время ('''repeat'''), например: 0 (бесконечно), 1 (один раз), 100; |
− | # | + | #задействовать триггер ('''enabled'''), например: true; |
− | # | + | #в настройках: |
− | # | + | ##адрес веб-сервиса ИнтеграВидео7 ('''url'''), например: http://localhost:1986/axis2/services/Iv7Server; |
− | # | + | ##дистанция до цели, начиная с которой приближение камеры будет всегда максимальным ('''max_zoom_distance'''), например: 1500; |
− | # | + | ##коэффициент, ограничивающий максимальный приближение камеры, от 0.0 (0%) до 1.0 (100%) ('''max_zoom_limit_factor'''), например: 1; |
− | # | + | ##ширина снимка отслеживаемой цели ('''snapshot_width'''), например: 320; |
− | # | + | ##высота снимка отслеживаемой цели ('''snapshot_height'''), например: 240; |
− | # | + | ##числовой коэффициент наивысшего приоритета отслеживания ('''trace_highest_factor'''), например: 10.0; |
− | # | + | ##числовой коэффициент высокого приоритета отслеживания ('''trace_high_factor'''), например: 2.0; |
− | # | + | ##числовой коэффициент нормального приоритета отслеживания ('''trace_normal_factor'''), например: 1.0; |
− | # | + | ##числовой коэффициент низкого приоритета отслеживания ('''trace_low_factor'''), например: 0.5; |
− | # | + | ##числовой коэффициент наинизшего приоритета отслеживания ('''trace_lowest_factor'''), например: 0.2; |
− | # | + | ##время в секундах с момента выключения слежения камерой, по прошествии которого оно автоматически включается ('''trace_disable_timeout'''), например: 60; |
+ | ##включает режим слежения всеми доступными камерами за самой приоритетной целью (в обычном режиме за каждой целью следит не более одной камеры одновременно) ('''multi_trace_enabled'''). | ||
− | + | Настройку параметров триггера можно выполнить, открыв свойства элемента. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[File:PTZTracer_7.PNG|центр]] | [[File:PTZTracer_7.PNG|центр]] | ||
Строка 108: | Строка 77: | ||
6. У каждой охраняемой зоны Zone настроить следующие параметры: | 6. У каждой охраняемой зоны Zone настроить следующие параметры: | ||
#географический полигон зоны ('''area'''), например: POLYGON((50.22190511 53.2362532,50.22222154 53.23630881,50.22224243 53.23622371,50.2218933105469 53.2361679077148,50.22190511 53.2362532)); | #географический полигон зоны ('''area'''), например: POLYGON((50.22190511 53.2362532,50.22222154 53.23630881,50.22224243 53.23622371,50.2218933105469 53.2361679077148,50.22190511 53.2362532)); | ||
− | #высоты точек из полигона area ('''area_heights'''), вида: -25.1,-25.1, -25.1, -25.1, -25.1; | + | #высоты точек из полигона area ('''area_heights'''), вида: -25.1,-25.1, -25.1, -25.1, -25.1. Числа в массиве должны быть разделены, используя клавишу Enter, а количество точек должно быть на 1 меньше, чем в полигоне; |
#приоритет зоны ('''trace_priority'''), например: normal. | #приоритет зоны ('''trace_priority'''), например: normal. | ||
− | 7. C зоной должна быть связана хотя бы одна поворотная камера, т.е. устройство типа '''PTZDevice''', '''VideoCamera''' и '''SpatialObject''' одновременно, подключив пины "'''Привязка к зоне:ZoneInputPin'''" у поворотной камеры и "'''Зона:ZoneOutputPin'''". Для камеры должны быть настроены следующие параметры: | + | 7. C зоной должна быть связана хотя бы одна поворотная камера, т.е. устройство типа '''PTZDevice''', '''VideoCamera''' и '''SpatialObject''' одновременно, подключив пины "'''Привязка к зоне:ZoneInputPin'''" у поворотной камеры и "'''Зона:ZoneOutputPin'''" у зоны. Для камеры должны быть настроены следующие параметры: |
#географические координаты поворотного устройства ('''geo_position'''), например: 40.72408616 -74.00867677; | #географические координаты поворотного устройства ('''geo_position'''), например: 40.72408616 -74.00867677; | ||
#географическая высота поворотного устройства ('''geo_height'''), например: 0. | #географическая высота поворотного устройства ('''geo_height'''), например: 0. | ||
Строка 123: | Строка 92: | ||
#список зон, в которые в данный момент входит цель ('''trace_zones'''), например: 6baa9825-a375-4ae3-b7cd-f4e1209a878b; | #список зон, в которые в данный момент входит цель ('''trace_zones'''), например: 6baa9825-a375-4ae3-b7cd-f4e1209a878b; | ||
#приоритет отслеживания цели ('''trace_priority'''), например: highest. | #приоритет отслеживания цели ('''trace_priority'''), например: highest. | ||
+ | |||
+ | '''Аутентификация''' | ||
+ | |||
+ | Если на сервере Интегра-Видео включена аутентификация, тогда необходима настройка логина и пароля доступа к видео-серверу одним из следующих способов: | ||
+ | #Параметр '''urls''' поворотной камеры должен содержать '''iv7''' адрес включающий логин и пароль, например: iv7://admin:fulladmin@/?udp_id=211&key2=211. | ||
+ | #Модуль '''IntegraVideo7''', с которым при помощи '''MediaLink''' соединена данная поворотная камера, должен иметь настроенные параметры '''login''' и '''password'''. | ||
+ | |||
+ | Алгоритм построения схемы "Интегра Видео 7" приведен на странице [[Типовые_схемы#Схема_"Интегра_Видео_7"|Схема "Интегра Видео 7"]]. | ||
==Проверка== | ==Проверка== | ||
− | После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/ | + | После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который при использовании скрипта PTZ Tracer 2 должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%202.put&path=0/params/hash/value</code>, при PTZ Tracer 3 - <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%203.put&path=0/params/hash/value</code>, при PTZ Tracer 3 Naive - <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%203%20Naive.put&path=0/params/hash/value</code> |
− | ''Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.'' | + | ''Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.'' |
==Алгоритм работы== | ==Алгоритм работы== | ||
− | + | :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'''. | ||
+ | |||
+ | ''Замечание'' | ||
+ | #''Для целей и зон с приоритетом DEFAULT, get_priority_factor всегда возвращает ноль.'' | ||
+ | #''Так же приоритет цели получится нулевым, если соответствующий ее приоритету числовой коэффициент в настройках равен нулю.'' | ||
+ | #''Слежение за целями с нулевым приоритетом не осуществляется.'' | ||
==Пример работы== | ==Пример работы== | ||
Строка 159: | Строка 148: | ||
1. Создать схему по выше описанному алгоритму. | 1. Создать схему по выше описанному алгоритму. | ||
− | [[File: | + | [[File:PTZTracer_4.PNG|центр|1000px]] |
− | 2. Добавить элементы Зона и | + | 2. Добавить и связать элементы Зона и IP поворотная камера. |
− | [[File: | + | [[File:PTZTracer_8.PNG|центр|1000px]] |
3. Настроить параметр "Сетевой адрес" компьютера. | 3. Настроить параметр "Сетевой адрес" компьютера. | ||
Строка 173: | Строка 162: | ||
#повторять через интервал или выполнить один раз в указанное время ('''repeat'''): 0; | #повторять через интервал или выполнить один раз в указанное время ('''repeat'''): 0; | ||
#задействовать триггер ('''enabled'''): true; | #задействовать триггер ('''enabled'''): true; | ||
− | # | + | #дистанция до цели, начиная с которой приближение камеры будет всегда максимальным ('''max_zoom_distance'''): 1500; |
− | + | #коэффициент, ограничивающий максимальный приближение камеры, от 0.0 (0%) до 1.0 (100%) ('''max_zoom_limit_factor'''): 1; | |
− | # | + | #ширина снимка отслеживаемой цели ('''snapshot_width'''): 320; |
− | # | + | #высота снимка отслеживаемой цели ('''snapshot_height'''): 240; |
− | # | + | #числовой коэффициент наивысшего приоритета отслеживания ('''trace_highest_factor'''): 10.0; |
− | # | + | #числовой коэффициент высокого приоритета отслеживания ('''trace_high_factor'''): 2.0; |
− | # | + | #числовой коэффициент нормального приоритета отслеживания ('''trace_normal_factor'''): 1.0; |
− | # | + | #числовой коэффициент низкого приоритета отслеживания ('''trace_low_factor'''): 0.5; |
− | # | + | #числовой коэффициент наинизшего приоритета отслеживания ('''trace_lowest_factor'''): 0.2; |
− | # | + | #время в секундах с момента выключения слежения камерой, по прошествии которого оно автоматически включается ('''trace_disable_timeout'''): 60; |
− | # | + | #включает режим слежения всеми доступными камерами за самой приоритетной целью (в обычном режиме за каждой целью следит не более одной камеры одновременно) ('''multi_trace_enabled'''. |
− | # | ||
5. Настроить следующие параметры Зоны: | 5. Настроить следующие параметры Зоны: | ||
+ | #географический полигон зоны ('''area'''), например: POLYGON((50.22190511 53.2362532,50.22222154 53.23630881,50.22224243 53.23622371,50.2218933105469 53.2361679077148,50.22190511 53.2362532)); | ||
+ | #высоты точек из полигона area ('''area_heights'''), вида: -25.1,-25.1, -25.1, -25.1, -25.1. Числа в массиве должны быть разделены, используя клавишу Enter, а количество точек должно быть на 1 меньше, чем в полигоне; | ||
+ | #приоритет зоны ('''trace_priority'''), например: normal. | ||
− | # | + | 6. Настроить следующие параметры камеры: |
− | #приоритет | + | #географические координаты поворотного устройства ('''geo_position'''), например: 40.72408616 -74.00867677; |
+ | #географическая высота поворотного устройства ('''geo_height'''), например: 0. | ||
+ | #калибровочная матрица поворотного устройства ('''calibrationMatrix'''), вида: -0.02104252 0.02104352... 0.9995127 (9 чисел с плавающей точкой); | ||
+ | #примерное время на фокусировку в секундах ('''focus_time'''), например: 5; | ||
+ | #адреса видео-потоков ('''urls'''), например: iv7://admin:fulladmin/?udp_id=2801&key2=2801_Поворотная ПН1@; | ||
+ | #включить слежение данной камерой ('''trace_enabled'''), например: true; | ||
+ | |||
+ | 7. Для каждой отслеживаемой цели задачи должны своевременно поставлять значения следующих параметров: | ||
+ | #позиция цели ('''position'''), например: POINT(48.03591156 46.35991287); | ||
+ | #список зон, в которые в данный момент входит цель ('''trace_zones'''), например: 6baa9825-a375-4ae3-b7cd-f4e1209a878b; | ||
+ | #приоритет отслеживания цели ('''trace_priority'''), например: highest. | ||
+ | |||
+ | Также необходимо настроить скрипт [[Детектор вхождения целей в зоны (Trace detector 1)]]. | ||
+ | |||
+ | Далее если цель не движется, можно запустить скрипт [[Симулятор движения (Position simulator 1)]], и настроить в свойствах триггера параметр: данные о движении объекта ('''settings.input'''): 40.72402111,-73.99108148,0. ''Элемент в Position Simulator и в Trace detector должен быть одним и тем же.'' | ||
+ | |||
+ | '''Результат''': | ||
+ | |||
+ | В параметр зона слежения ('''trace_zones''') будет установлена зона, в которой в данный момент находится цель. | ||
+ | |||
+ | ==Дополнения== | ||
+ | 1. В пункте 1 раздела [[Слежение_поворотной_камерой_за_целями_в_зоне_(PTZ_Tracer_1)#Построение_схемы|Построение схемы]] добавление триггера '''EgsScheduledTraceDetector''' можно осуществить по ссылке. | ||
+ | |||
+ | Для этого необходимо: | ||
+ | |||
+ | :1. Импортировать скрипт по ссылке. При выборе скрипта PTZ Tracer 2: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/PTZ%20Tracer%202.put.</code>, PTZ Tracer 3 - <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/PTZ%20Tracer%203.put</code>, PTZ Tracer 3 Naive - <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/PTZ%20Tracer%203%20Naive.put</code> | ||
+ | :2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | ||
+ | |||
+ | [[File:Scheduled_com_1.png|центр|1000px]] | ||
+ | |||
+ | :3. В открывшемся окне выбрать импортированный скрипт "Trace detector 1.put". | ||
+ | |||
+ | [[File:PTZTracer 1_1.PNG|центр|1000px]] | ||
+ | |||
+ | :Элемент появится на рабочей области. | ||
+ | |||
+ | [[File:Scheduled_com_3.png|центр|1000px]] | ||
+ | |||
+ | 2. В пункте 7 раздела [[Слежение_поворотной_камерой_за_целями_в_зоне_(PTZ_Tracer_1)#Построение_схемы|Построение схемы]] редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры". | ||
+ | |||
+ | [[File:PTZTracer_5.png|центр]] | ||
− | + | :После этого откроется окно для редактирования параметров. | |
− | + | [[File:PTZTracer_6.PNG|центр|1000px]] |
Текущая версия на 11:47, 21 мая 2019
Позиционирование и фокусировка камеры на отслеживаемой цели. Создание и сохранение фотоизображения цели. Скрипт работает с одной локальной базой трекинга и одной или несколькими удаленными базами интеграции
Содержание
Зависимости
Скрипт зависит от задачи определения вхождения целей в охраняемые зоны Детектор вхождения целей в зоны (Trace detector 1).
Построение схемы
Для построения схемы требуется:
1. Добавить триггер EgsScheduled.
- Для этого необходимо:
- 1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент EgsScheduled.
- 2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента.
- 3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
- Также все элементы можно добавлять путем захвата и перетаскивания на рабочую область левой кнопкой мыши.
2. Аналогично пункту 1 добавить элементы EgsModule, менеджер AcuarioManager и компьютер Computer.
3. Настроить сетевой адрес компьютера.
Для этого необходимо выделить на схеме элемент Computer и нажать на кнопку вызова свойств элемента.
В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес".
4. Связать EgsScheduled и Egs Модуль, подключив пины «Egs вход: EgsInput» у EgsScheduled и «Egs выход: EgsOutput» у Egs Модуля.
5. Привязать пин "Привязка к менеджеру: ManagingContent" из Egs Модуля к пину "Менеджер устройств: ManagingContainer" из Менеджера устройств.
6. Подключить пин "ПО: SoftwareContent" из Менеджера устройств с пином "Установленное ПО: SoftwareContainer" из Компьютера.
7. Настроить следующие параметры триггера:
- текст скрипта (script). Может быть использован один из трех скриптов: PTZ Tracer 2, PTZ Tracer 3, PTZ Tracer 3 Naive. Скрипт PTZ Tracer 2 наводится на координаты, сформированные радаром, из-за чего при слежении за быстро перемещающимися объектами в связи с задержкой обработки данных камера поворачивается в место, где объекта уже нет. PTZ Tracer 3 Naive имеет простой алгоритм поправки на скорость поворота камеры. PTZ Tracer 3 содержит сложный алгоритм поправки, учитывающий скорость судна и другие параметры, позволяющие более точно навести камеру на цель. Текст скрипта PTZ Tracer 2:
http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%202.put&path=0/params/script/value
; PTZ Tracer 3 -http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%203.put&path=0/params/script/value
; PTZ Tracer 3 Naive -http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%203%20Naive.put&path=0/params/script/value
- единица измерения (period_unit), например: секунда;
- интервал в единицах измерения (period_count), например: 1;
- точное время внутри интервала (period_time), например: 00:00:00, 14:30:00;
- повторять через интервал или выполнить один раз в указанное время (repeat), например: 0 (бесконечно), 1 (один раз), 100;
- задействовать триггер (enabled), например: true;
- в настройках:
- адрес веб-сервиса ИнтеграВидео7 (url), например: http://localhost:1986/axis2/services/Iv7Server;
- дистанция до цели, начиная с которой приближение камеры будет всегда максимальным (max_zoom_distance), например: 1500;
- коэффициент, ограничивающий максимальный приближение камеры, от 0.0 (0%) до 1.0 (100%) (max_zoom_limit_factor), например: 1;
- ширина снимка отслеживаемой цели (snapshot_width), например: 320;
- высота снимка отслеживаемой цели (snapshot_height), например: 240;
- числовой коэффициент наивысшего приоритета отслеживания (trace_highest_factor), например: 10.0;
- числовой коэффициент высокого приоритета отслеживания (trace_high_factor), например: 2.0;
- числовой коэффициент нормального приоритета отслеживания (trace_normal_factor), например: 1.0;
- числовой коэффициент низкого приоритета отслеживания (trace_low_factor), например: 0.5;
- числовой коэффициент наинизшего приоритета отслеживания (trace_lowest_factor), например: 0.2;
- время в секундах с момента выключения слежения камерой, по прошествии которого оно автоматически включается (trace_disable_timeout), например: 60;
- включает режим слежения всеми доступными камерами за самой приоритетной целью (в обычном режиме за каждой целью следит не более одной камеры одновременно) (multi_trace_enabled).
Настройку параметров триггера можно выполнить, открыв свойства элемента.
6. У каждой охраняемой зоны Zone настроить следующие параметры:
- географический полигон зоны (area), например: POLYGON((50.22190511 53.2362532,50.22222154 53.23630881,50.22224243 53.23622371,50.2218933105469 53.2361679077148,50.22190511 53.2362532));
- высоты точек из полигона area (area_heights), вида: -25.1,-25.1, -25.1, -25.1, -25.1. Числа в массиве должны быть разделены, используя клавишу Enter, а количество точек должно быть на 1 меньше, чем в полигоне;
- приоритет зоны (trace_priority), например: normal.
7. C зоной должна быть связана хотя бы одна поворотная камера, т.е. устройство типа PTZDevice, VideoCamera и SpatialObject одновременно, подключив пины "Привязка к зоне:ZoneInputPin" у поворотной камеры и "Зона:ZoneOutputPin" у зоны. Для камеры должны быть настроены следующие параметры:
- географические координаты поворотного устройства (geo_position), например: 40.72408616 -74.00867677;
- географическая высота поворотного устройства (geo_height), например: 0.
- калибровочная матрица поворотного устройства (calibrationMatrix), вида: -0.02104252 0.02104352... 0.9995127 (9 чисел с плавающей точкой);
- примерное время на фокусировку в секундах (focus_time), например: 5;
- адреса видео-потоков (urls), например: iv7://admin:fulladmin/?udp_id=2801&key2=2801_Поворотная ПН1@;
- включить слежение данной камерой (trace_enabled), например: true;
8. Для каждой отслеживаемой цели задачи должны своевременно поставлять значения следующих параметров:
- позиция цели (position), например: POINT(48.03591156 46.35991287);
- список зон, в которые в данный момент входит цель (trace_zones), например: 6baa9825-a375-4ae3-b7cd-f4e1209a878b;
- приоритет отслеживания цели (trace_priority), например: highest.
Аутентификация
Если на сервере Интегра-Видео включена аутентификация, тогда необходима настройка логина и пароля доступа к видео-серверу одним из следующих способов:
- Параметр urls поворотной камеры должен содержать iv7 адрес включающий логин и пароль, например: iv7://admin:fulladmin@/?udp_id=211&key2=211.
- Модуль IntegraVideo7, с которым при помощи MediaLink соединена данная поворотная камера, должен иметь настроенные параметры login и password.
Алгоритм построения схемы "Интегра Видео 7" приведен на странице Схема "Интегра Видео 7".
Проверка
После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который при использовании скрипта PTZ Tracer 2 должен быть равен тексту по следующей ссылке http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%202.put&path=0/params/hash/value
, при PTZ Tracer 3 - http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%203.put&path=0/params/hash/value
, при PTZ Tracer 3 Naive - http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Tracer%203%20Naive.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.
Замечание
- Для целей и зон с приоритетом DEFAULT, get_priority_factor всегда возвращает ноль.
- Так же приоритет цели получится нулевым, если соответствующий ее приоритету числовой коэффициент в настройках равен нулю.
- Слежение за целями с нулевым приоритетом не осуществляется.
Пример работы
Для построения схемы необходимо:
1. Создать схему по выше описанному алгоритму.
2. Добавить и связать элементы Зона и IP поворотная камера.
3. Настроить параметр "Сетевой адрес" компьютера.
4. Настроить следующие параметры триггера:
- единица измерения (period_unit): секунда;
- интервал в единицах измерения (period_count): 1;
- повторять через интервал или выполнить один раз в указанное время (repeat): 0;
- задействовать триггер (enabled): true;
- дистанция до цели, начиная с которой приближение камеры будет всегда максимальным (max_zoom_distance): 1500;
- коэффициент, ограничивающий максимальный приближение камеры, от 0.0 (0%) до 1.0 (100%) (max_zoom_limit_factor): 1;
- ширина снимка отслеживаемой цели (snapshot_width): 320;
- высота снимка отслеживаемой цели (snapshot_height): 240;
- числовой коэффициент наивысшего приоритета отслеживания (trace_highest_factor): 10.0;
- числовой коэффициент высокого приоритета отслеживания (trace_high_factor): 2.0;
- числовой коэффициент нормального приоритета отслеживания (trace_normal_factor): 1.0;
- числовой коэффициент низкого приоритета отслеживания (trace_low_factor): 0.5;
- числовой коэффициент наинизшего приоритета отслеживания (trace_lowest_factor): 0.2;
- время в секундах с момента выключения слежения камерой, по прошествии которого оно автоматически включается (trace_disable_timeout): 60;
- включает режим слежения всеми доступными камерами за самой приоритетной целью (в обычном режиме за каждой целью следит не более одной камеры одновременно) (multi_trace_enabled.
5. Настроить следующие параметры Зоны:
- географический полигон зоны (area), например: POLYGON((50.22190511 53.2362532,50.22222154 53.23630881,50.22224243 53.23622371,50.2218933105469 53.2361679077148,50.22190511 53.2362532));
- высоты точек из полигона area (area_heights), вида: -25.1,-25.1, -25.1, -25.1, -25.1. Числа в массиве должны быть разделены, используя клавишу Enter, а количество точек должно быть на 1 меньше, чем в полигоне;
- приоритет зоны (trace_priority), например: normal.
6. Настроить следующие параметры камеры:
- географические координаты поворотного устройства (geo_position), например: 40.72408616 -74.00867677;
- географическая высота поворотного устройства (geo_height), например: 0.
- калибровочная матрица поворотного устройства (calibrationMatrix), вида: -0.02104252 0.02104352... 0.9995127 (9 чисел с плавающей точкой);
- примерное время на фокусировку в секундах (focus_time), например: 5;
- адреса видео-потоков (urls), например: iv7://admin:fulladmin/?udp_id=2801&key2=2801_Поворотная ПН1@;
- включить слежение данной камерой (trace_enabled), например: true;
7. Для каждой отслеживаемой цели задачи должны своевременно поставлять значения следующих параметров:
- позиция цели (position), например: POINT(48.03591156 46.35991287);
- список зон, в которые в данный момент входит цель (trace_zones), например: 6baa9825-a375-4ae3-b7cd-f4e1209a878b;
- приоритет отслеживания цели (trace_priority), например: highest.
Также необходимо настроить скрипт Детектор вхождения целей в зоны (Trace detector 1).
Далее если цель не движется, можно запустить скрипт Симулятор движения (Position simulator 1), и настроить в свойствах триггера параметр: данные о движении объекта (settings.input): 40.72402111,-73.99108148,0. Элемент в Position Simulator и в Trace detector должен быть одним и тем же.
Результат:
В параметр зона слежения (trace_zones) будет установлена зона, в которой в данный момент находится цель.
Дополнения
1. В пункте 1 раздела Построение схемы добавление триггера EgsScheduledTraceDetector можно осуществить по ссылке.
Для этого необходимо:
- 1. Импортировать скрипт по ссылке. При выборе скрипта PTZ Tracer 2:
http://maps.integra-s.com:5434/resources/typedef2017/egs/PTZ%20Tracer%202.put.
, PTZ Tracer 3 -http://maps.integra-s.com:5434/resources/typedef2017/egs/PTZ%20Tracer%203.put
, PTZ Tracer 3 Naive -http://maps.integra-s.com:5434/resources/typedef2017/egs/PTZ%20Tracer%203%20Naive.put
- 2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
- 3. В открывшемся окне выбрать импортированный скрипт "Trace detector 1.put".
- Элемент появится на рабочей области.
2. В пункте 7 раздела Построение схемы редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
- После этого откроется окно для редактирования параметров.