Как сделать отслеживание движения объекта с помощью видео? [закрытый]
может ли кто-нибудь направить меня в учебник или направлять меня, как отслеживать движение объекта, движущегося с 6 DOF. Я планирую использовать видеопоток движущейся игрушечной машины. Я хочу рассчитать смещение и угол поворота игрушечного автомобиля. Я наткнулся на некоторые исследовательские работы, но не смог найти библиотек для этой работы.
есть ли способ сделать это с помощью OpenCV или Matlab или другого свободно доступного программного обеспечения?
спасибо
6 ответов
отслеживание-классическая проблема компьютерного зрения, которой до сих пор посвящены исследования в области информатики; вы можете быстро получить представление о современном состоянии в этой области, проверив список статьи на CVPR 2010 (это ежегодная конференция по компьютерному видению), и вы увидите, что по-прежнему ведется активная работа по этой теме (поиск слова "отслеживание" в списке).
стандартный обрабатывая трубопровод а решение проблемы отслеживания работает следующим образом: изображение сначала анализируется для извлечения значимого дескрипторов, которые захватывают соответствующие углы и другие характерные особенности изображения. Эти дескрипторы позже подаются в он-лайн классификатором это обучено обнаруживать вероятные экземпляры вашего конкретного объекта интереса в каждом кадре. Дескриптор вашего объекта может быть известен априори (т. е. вычислен в автономном режиме) из предыдущих примеров того, как выглядит объект, но он обычно обновляется в каждом кадре тем, что система видит с течением времени, чтобы сделать обнаружение адаптивным к внешнему виду динамического объекта. Наконец, для того, чтобы выбрать из пула возможных кандидатов в каждом кадре (из тех, что были обнаружены), такие параметры, как положение и скорость объектов оценивается относительно предыдущих кадров с использованием последовательной статистической модели.
обширная литература компьютерного зрения на хорошем изображении дескрипторы, но некоторые из самых популярных из них просеять, серф или свинья. Для классификации, два из наиболее успешных методов являются поддержка векторных машин или классификация ансамблей (например,повышение или случайные леса), и для части оценки, большинство людей все еще используют Калмана фильтры (который является типом последовательных модель Маркова), фильтр частиц или вообще модели для оценки плотности.
конкретный случай, который вы описали, немного проще, чем более общая и сложная проблема отслеживания объектов с произвольной камерой и движением объекта в естественных наружных сценах, поэтому вы можете найти какой-то код онлайн, который может работать сразу в вашей настройке, но я сомневаюсь в этом. Как отметили другие, (и, насколько мне известно), нет готовые библиотека, которая работает сразу для всех видов объектов, фонов и движения пространства. Тем не менее, вы, вероятно, можете найти код для отдельных компонентов стандартного общего конвейера, описанного выше (классификаторы, банки фильтров/функций, модели оценки Маркова) в интернете.
мое предложение, если вы заинтересованы в создании хорошей системы (т. е. тот, который на самом деле работает), то посмотрите на веб-сайты авторов самых последних статей в top annual computer vision конференции, такие как CVPR, ICCV, ECCV и конференции SIGGRAPH. Они, как правило, имеют код онлайн для своей последней работы с некоторыми примерами видео, и это может помочь вам понять, как их методы работают в реальной обстановке.
Я сомневаюсь, что есть программа, готовая к использованию для этого... по крайней мере, вам придется получить пару методов или библиотек и использовать не так легко математику для этого. Люди делают свои тезисы об этом!
Это статья, которую я недавно прочитал:
http://cobweb.ecn.purdue.edu/RVL/Research/ModelBasedTracking/index.html
Если вы думаете, что это не то, что вы ищете, то перейдите ссылки только, чтобы получить больше идей ;)
может быть KLT Tracker (Kanade Лукас Томаси) может помочь вам. Он сообщает вам, где обнаруженные точки перемещаются между изображениями. Библиотеки OpenCV содержит версию КЛТ-трекер, но без аффинных проверить conistency (как государства домашнюю КЛТ).
Если вы хотите попробовать код, есть пример файла, который поставляется с OpenCV. В OpenCV 2.1 он находится в samples/c / blobtrack.cpp и в OpenCV 2.2 он находится в samples/c / blobtrack_sample.СРР. Оба с собой .exe-файлы, поэтому вы можете попробовать образцы сразу, если вам случится использовать Windows. Есть старинный сайт,Объект OpenCV Видеонаблюдения / Blob Tracker, документирование работы кода.
трекер в blobtrack.cpp делится на три этапы (скопированы с предыдущей ссылки):
- дискриминатор переднего плана/фона, который помечает каждый пиксель как передний план или фон.
- детектор blob, который группирует соседние пиксели "переднего плана"в капли, стиль заливки.
- трекер blob, который присваивает идентификационные номера Blob и отслеживает их движение кадр к кадру.
blobtrack.cpp фактически реализует несколько методов для каждого этапа, поэтому вы можете попробовать разные комбинации, чтобы увидеть, какой из них работает лучше всего.
что последний этап означает, что вы можете отслеживать несколько объектов одновременно. Я протестировал его на видео транспортных средств, движущихся по шоссе, снятых с помощью статической камеры, и он работает довольно хорошо, если немного медленно с лучшими методами.
кроме того, вы можете пройти долгий путь, используя простую технику под названием вычитание фона если фон вашего видео статический, то есть, если единственное, что меняется от рама к раме-сама игрушечная машинка. Но я думаю, что это поможет вам только в определении местоположения объекта, а не в оценке его позы.
примечание: Я не мог получить образец, который поставляется с OpenCV 2.2 для работы. Тот, который поставляется с OpenCV 2.1, отлично работал для меня.
посмотреть TLD (apparantly Matlab):
TLD-это удостоенный наград алгоритм в реальном времени для отслеживания неизвестных объектов в видеопотоках. Объект интереса определяется ограничивающим прямоугольником в одном кадре. TLD одновременно отслеживает объект, изучает его внешний вид и обнаруживает его всякий раз, когда он появляется в видео. Результатом является отслеживание в реальном времени, которое обычно улучшается с течением времени.
не использовал его лично, но демо-видео потрясающие.
Это программное обеспечение, которое вы ищетеhttp://www.cabrillo.edu/~dbrown / трекер/
эти статьи могут помочь вдохновить васhttp://www.wired.com/wiredscience/2010/10/physics-of-angry-birds/