Перейти к содержимому
Compvision.ru

Recommended Posts

Здравствуйте форумчане!

 

Скажите пожалуйста как сделать автотрекинг объекта (чтоб камера поворачивалась за выделенным объектом). Первый наметки сделал осталось прикрутить зуум. Не знаю пока как прикрутить зуум. Чтобы приближался к объекту. Жду вашего совета! В первой версии реализовано пока так. Есть две зоны которые находяться слева и справа. Вычисляется угол направления самого крупного объекта, потом если он зашел человек допустим в левую зону с углом направления от 225 до 315 - то поворот налево. Реализованы пока только поворот налево, направо. И работает по принципу: отследил-повернул-отследил-повернул.

Вот интересные видео: Q79exothQy0eqGpEScw20S8cMWk.gifhttps://www.youtube.com/watch?v=iU6D5WLdXMo

                                           https://www.youtube.com/watch?v=vQKGhIPiqs8 

Хочу сделать что-то подобное!

Безымянный.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Занимался подобным. В приведённых тобой видео работает следующая схема:

1. Камера находится в обзорном положении, неподвижна, включён детектор движения (например, на основании вычитания фона или анализа оптического потока).

2. Объект сдетектирован, происходит переключение в режим сопровождения. Берётся алгоритм типа particle filter, TLD, KCF (их много), который старается удержать объект.

3. Камера заранее откалибрована, т.е. ей известно на какой угол и с какой скоростью надо повернуться, чтобы при заданном зуме центр изображения сдвинулся, скажем, на 2 метра.

4. Как только объект теряется камерой (сел в машину, например), трекинг прекращается и камера возвращается в положение 1.

 

Есть ещё алгоритм (в старых камерах Bosch видел), когда камера не выделяет конкретный объект, а детектирует только вектор некоторого движения в кадре и сдвигается в направлении него. Что там внутри: оптический поток или банальные motion templates я не знаю. Но такое ощущение, что кроме этого у них ничего нет.

 

Описанный мной алгорим довольно общий, в каждом конкретном случае могут быть свои оптимизации, связанные с возможностью камер. Какие-то умеют повернуться на заданный гол с заданной скоростью, какие-то просто работают по координатам и сопровождать приходится вручную. У некоторых повороты инерциальные, т.е. сначала начинают вращаться медленно, но быстро ускоряются. И так далее. В каждом конкретном случае приходится придумывать своё решение.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я уже и не надеялся что кто-то откликнуться! Спасибо!

По поводу алгоритмов particle filter, TLD, KCF - большое спасибо, попробую реализовать.

А как правильно откалибровать камеру? Координаты платформы х,y BIk-Inform 404 я легко найду с помощью xml запроса. А вот зуум из протокола Onvif пытался найти (функция GetStatus-PTZ), но панасоник - преобразователь из аналогового сигнала в цифровой, выдает 0, при любом зууме. И еще вопрос как измерить скорость человека и сопоставить со скоростью поворотной платформы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Если ты используешь камеру и платформу от Бик (или только платформу?), то у них и спроси, как получить зум. Ребята нормальные, должны ответить. Если ты сопровождать будешь той камерой, которая у тебя на аватаре, то она должна уметь отдавать зум нормально (хотя это ещё от объектива зависит).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А где можно почитать про калибровку? что-то я не нахожу, Зарание спасибо.

на работе собираем из деталий сборный тепловизор с камерой. Bik-Inform - платформа, аналоговый тепловизор Dali, видеосервер (Панасоник WJ-GXE100) преобразователь из аналогового сигнала в цифру, и камеру IPшную. От Bik я могу узнать только x,y - координаты. Видеосерверы заказали Axis может с ними будет возвращать значения зуума.

Да то что у меня на аватарке - это и есть устройство поворотное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

О, я вчера на выставке видел стенд и Бика, и Dali. Конторы известные. Если тепловизор никак зум не даёт получить, то я так сразу и не скажу, как быть.

Внутренняя калибровка позволяет узнать параметры камеры: фокусное расстояние, дисторсия и т.д. Позволяет оценивать размер объекта в мире по его размеру в пикселях. Производится по шахматной доске или по доске с кругами. В openCV есть пример.

Внешняя калибровка помогает оценить положение камеры в пространстве.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ладно, понял, спасибо за советы, может от дали узнаем как получать зуум. А про калибровку где можно почитать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, либо от Dali, либо от производителя объектива. Короче, смотреть надо.

Про калибровку - можно в документации по OpenCV, можно в Гугле поискать. Вот тут хоть и не самая новая статья, но хорошая.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На Интреполитехе и наши там были с тепловизором. Спасибо за статью - почитаем. Как получиться - отпишушь. Сейчас устройства нет пока, чтобы проверить все мысли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Он ещё продолжается: сегодня, завтра. Потом действо на полигон перейдёт.

А "наши" - это кто, если не секрет? Я многих знаю, кого лично, кого так, просто слышал, в этой отрасли уже довольно давно.

Может разговаривал на выставке с "вашими", но точно могу сказать, что обошёл все стенды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, видел. Я же около 8 лет работал в Стилсофте - ваши конкуренты. Но уже N лет как уволился и переехал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да Стилсофт нам конкурент! А у Стилсофта автотрекинг как работает если не секрет? Ты писал?  А ты если не секрет где работаешь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Секрет. А вообще зависит от камеры: на такой как у тебя один алгоритм, на скоростных поворотках - другой. Если камера чего-то не умеет, приходится как-то дополнительно калибровать, или вычислять, или менять алгоритмы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поправьте мне, если не так,  в Opencv 3.1 должно быть реализованы алгоритмы "KCF", "TLD" судя по этому http://docs.opencv.org/3.1.0/d2/d0a/tutorial_introduction_to_tracker.html, но я не нахожу файл " <opencv2/tracking.hpp>. Может найдутся знатоки которые подскажут что не так я делаю. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подключи репозиторий opencv_contrib

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так даже папки (файла) с таким названием нет. Может это в другой версии Opencv.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот же! Как это подключить к OpenCV написано по ссылке.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Неа, я под Убунтой сижу. Но тут С++ программистом и не надо быть: просто скачать оба репозитория, сконфигурировать CMake по инструкции, запустить студию и скомпилировать. Всё.

С другой стороны не очень понятно, что ты будешь делать с тем, что кто-то скомпилирует. Ты сейчас Emgu CV используешь? Там же не появится трекинг только потому, что он будет скомпилирован в С++.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да я пользуюсь Emgu.CV! Для меня С++ страшная вещь. Но чуть-чуть понимаю . Не знаю что и делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тебе надо научиться делать на С++ dll и экспортировать из них функции в C#. Ты же знаешь, что такое маршалинг и все дела?

P.S. Компьютерное зрение сейчас - это С++ и Питон. Можно Матлаб. Но никак не C#.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ладно че нибудь придумаем, или прийдется ждать новой версии EMGU и OPENCV

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Помогите(HELP) кто-нибудь может компильнуть Contrib  (Windows 7, x86, x64). Проект OPENCV 3.1 у меня даже не компилица - ругается.
 Это одна из многочисленных ошибок

error C1083: Не удается открыть файл включение: opencl_kernels_calib3d.hpp: No such file or directory    c:\Opencv\3.1\opencv\sources\modules\calib3d\src\stereobm.cpp    51    1    opencv_calib3d

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
On 11/7/2016 at 10:40 AM, Король said:

Помогите(HELP) кто-нибудь может компильнуть Contrib  (Windows 7, x86, x64). Проект OPENCV 3.1 у меня даже не компилица - ругается.
 Это одна из многочисленных ошибок

error C1083: Не удается открыть файл включение: opencl_kernels_calib3d.hpp: No such file or directory    c:\Opencv\3.1\opencv\sources\modules\calib3d\src\stereobm.cpp    51    1    opencv_calib3d

 

Так а без OpenCL попробовать собрать не вариант? в строчке cmake'а прописать ченить типа -DWITH_OPENCL=OFF...

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×