Есть wifi камера с 2 степенями свободы (по горизонтали и вертикали)просмотр и управление через IntExp. Камера будет установлена на земельном участке хотелось бы сделать следующее что бы при попадании в кадр человека камера фокусировалась на нем и двигалась за человеком используя ее степень свободы. заранее благодарен.
А если в кадре 2 человека? Вообще задача не простая, если ее с нуля делать. Видится мне такой алгоритм: 1) Нужно по соседним (возможно нескольким) снимкам вычислить изменившиеся участки. По-пиксельно не получится, в реальной жизни оно будет даже на статичной картинке менятся, нужно блоками небольшими и ессно с некоторой точностью. 2) Вычислить соседние движущиеся блоки и ввести понятие "объект" - это "что-то движущееся" 3) Если объект по размерам вертикально-прямоугольный то это скорее всего человек и можно начинать следить за ним.
Берем ZoneMinder. http://www.zoneminder.com/ Это сервер видеонаблюдения такой. В смысле - софт. В настройках ZM указываем "область детекции" на все поле зрения камеры. Чувствительность настраиваем ессно... Пишем скрипт, который по появлению в базе данных MySQL новых записей о "событии" анализирует файл analyse.jpg (туда пишутся изменения картинки, результат детекции) и оценивет - насколько далеко "изменения" от центра. И доворачивает камеру. Скрипт "доворота" (управление движением) - готовый - или пишется для редких камер. Если взять обычную FosCam - проблем меньше, скрипты есть готовые. Времени нету прикрутить это к ZM - сам давно хочу... Вижу несколько проблем - Надо для разных положений камеры в режиме "патруль" доработать детекцию, чтобы "базовый" образ хранился для каждого положения.
Модель камеры какая? Есть доки по API управления положением? Есть ли возможность установить камеру в определенное положение? Добавлю: объем допиливания серьезно падает если использовать
zmtrack.pl � This script is used to manage the experimental motion tracking feature. It is responsible for detecting that an alarm is taking place and moving the camera to point to the alarmed location, and then subsequently returning it to a defined standby location. As well as moving the camera it also controls when motion detection is suspended and restored so that the action of the camera tracking does not trigger endless further alarms which are not justified.
Еще через минуту: А пожалуй попробую прикрутить на один из серверов...
Дым, идущий из всех устройств в помещении предвещает появление электрика.
Попробовал, изучаю скрипт на предмет "почему не работает". Через интерфейс ZM камера отлично крутится, теперь надо заставить отслеживать... Если получится - напишу инструкцию. UPD: похоже топикстартеру оно уже неинтересно. Все равно задача интересная, но пока абстрагируюсь от задачи "определить что движущийся объект - человек" и покопаюсь.
Добавлено спустя 2 часа 14 минут 26 секунд: Покурил доки от камер в наличии. Выяснил что в них не описана возможность задавать координаты произвольно. Попробую сэмулировать...
Дым, идущий из всех устройств в помещении предвещает появление электрика.
Yak-40 - подключение к интернету будет через домолинк. HarryStar - хотелось бы отработать алгоритм для начала на одном человеке. RootAdmin - спасибо за ссылку но с английским плоховато, напишешь инструкцию будем признательны.
В соседней теме писал. [url]post204964.html#p204964[/url] То есть посылку (длиной до 256) вставляем вместе с параметрами (номер порта, скорость) вставляем в POST запрос к камере. Это НЕ команды камере, это то, что камера может передать подключенному устройству. Пример: http://IP/comm_write.cgi?port=0&baud=13 ... in&pwd=*** где &baud=13 : скорость порта 9600 из таблицы &port=0 :первый порт устройства (может быть и 2, 4 не видел) &bytes=10 :количество байт в посылке, до 256 &data=1234abc%5E:! :посылка, байты кодируются url code, закодирована строка "1234abc^:!" (содержимое кавычек) как пример &user=admin&pwd=*** :логин-пароль, если стоит. (с правами пользователя на устройстве некоторые камеры не позволяют метод comm_write.cgi) Если строку вставить хоть в адресную браузера - камера выдаст в порт то, что передали. Вот как принять из порта - не знаю...
Продолжаю экспериментировать, так как камера у меня простая (на точках стоят и подороже, с более богатым API, но снять не получится для экспериментов) пишу скрипт, который должен преобразовывать координаты в "шаги" перемещения по горизонтали-вертикали. На входе - центр "области тревоги" в виде х-у координаты кадра, генерируется ZM. В простом случае камере передаются разница между этими координатами и центром кадра с соответствующим знаком. И она поворачивается. Я попробую груюо поворачивать камеру, подавая нужное количество "Шагов".
Последний раз редактировалось RootAdmin 23 апр 2011, 14:33, всего редактировалось 1 раз.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
Dead, благодарю. Эх, жаль, сам хотел сделать подобную тележку. Вообще - есть возможность экспериментировать, так как я на одной камере спалил сенсор - получил подопытного - и сейчас разбираю прошивку. Задача один - пропустить инициализацию самой камеры, а то без нее не грузится. ЗЫ. Порт на клонах на передачу точно работает - проверил тупо светодиодом. На работе почти нет средств разработки...
Дым, идущий из всех устройств в помещении предвещает появление электрика.
Камера проигрывается и управляется в Int.exp. может как то подойти к решению вопроса через html редактор (в технических вопросах не силен извиняйте если спросил глупость)
Ну не только в IE... Из php получить данные из порта возможно, далее обработать на веб-сервере камеры и вывести в удобном виде. Да хоть свою программу написать на сях. Как раз читаю про разборку фоскамовского формата прошивки.