Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм распознавания направления движения 
:(
    Опции темы
MoebiusCat
Дата 14.6.2011, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 5.1.2011

Репутация: нет
Всего: нет



Я недавно занимаюсь обработкой видео (алгоритмы на Матлабе), и в качестве упражнения я решила написать алгоритм, который убирает дрожание камеры/следит за каким-то движущимся объектом.

Я написала функцию, которая получает последовательность кадров и координаты "неподвижной" области, а потом распознаёт её в каждом кадре (регистрация) и сдвигает всё на нужное расстояние. Это работает, но есть существенные недостатки:
  •  Справляется только с движением вправо-влево и вверх-вниз, но не в глубину (зум)
  •  Не справляется с поворотами
  •  "Неподвижные" координаты надо указывать вручную
  •  Тяжёлый - нужно обходить всю картинку с регистрацией
Кроме того, мне сказали, что есть быстрый и полностью автоматический алгоритм, указывающий вектор движения для каждого блока, скажем, 8 на 8. Я могу придумать только такую реализацию: разделить на блоки и отслеживать каждый из них, как я сделала в своеё функции, но это о-очень медленно... Полагаю, что надо вычесть n-ный кадр из n+1-го, а потом сделать что-то умное, но мне самой не догадаться...   smile 

Это сообщение отредактировал(а) MoebiusCat - 14.6.2011, 22:07
PM MAIL   Вверх
VictorTsaregorodtsev
Дата 14.6.2011, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.7.2006

Репутация: 3
Всего: 8



>"Неподвижные" координаты надо указывать вручную

Если мне не изменяет память (всё же по текущему проекту обработки видео найдено-прочитано полторы сотни статей), от этого не избавиться никак. Комп не может сам отделить фон от объекта интереса и может вместо отслеживания объекта отслеживать фон, вернее, изменение границ фоновой области при движении объекта.

>в глубину (зум)
>с поворотами

Дофига подобных работ (алгоритмов). Из известных уже десяток лет см., например, статью Comaniciu, Ramesh, Meer "Real-time tracking of non-rigid objects using mean shift". Из недавних - статьи by Zdenek Kalal (у него и проги были как раз на матлабе, см. тут).
PM MAIL WWW   Вверх
MoebiusCat
Дата 17.6.2011, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 5.1.2011

Репутация: нет
Всего: нет



Цитата

Дофига подобных работ (алгоритмов). Из известных уже десяток лет см., например, статью Comaniciu, Ramesh, Meer "Real-time tracking of non-rigid objects using mean shift". Из недавних - статьи by Zdenek Kalal (у него и проги были как раз на матлабе, см. тут).

Большое спасибо, читаю. Да, я знаю, что дофига, но я пока не нашла правильные места в интернете, где надо искать статьи.


Цитата

Если мне не изменяет память (всё же по текущему проекту обработки видео найдено-прочитано полторы сотни статей), от этого не избавиться никак. Комп не может сам отделить фон от объекта интереса и может вместо отслеживания объекта отслеживать фон, вернее, изменение границ фоновой области при движении объекта.

Мне на днях рассказали про один метод, который называется optical flow. Он позволяет увидеть направление движения для каждого блока. Я слышада об этом методе раньше, но только понаслышке (только то, что он делает, но не как он это делает) , кроме того, я не знала, как он называется. 

Этот метод работает так: просто-напросто вычисляем производные "трёхмерной функции" право-лево - верх-низ - время. И всё! Как я не догадалась! Я думала о чём-то подобном, правда, относительно другого вопроса: я хотела интерполировать отсутствующие кадры, но не очень знала, как это сделать.

Кстати, если подумать, этот метод также может дать ответ на вопрос, что фон и что объект: можно посмотреть на множества блоков, "едущих" в одинаковых направлениях, а потом в каждом из таких множеств выделить компоненты связности, они и будут объектами (я беру очень упрощённую модель: двухмерные объекты, нет поворотов, объекты не "шевелятся", то есть все точки каждого объекта едут в одном направлении). Точнее, это, конечно, не сможет указать, какой именно из "объектов" есть фон (например, кто является фоном в фильме, где камера следит за едущим автомобилем, занимающим почти весь кадр?), но в некоторых случаях, по моему, это можно понять (с помощь всяких дополнительных признаков). 

PM MAIL   Вверх
x128
Дата 18.6.2011, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 29.9.2009

Репутация: нет
Всего: 7



PM MAIL WWW   Вверх
VictorTsaregorodtsev
Дата 19.6.2011, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.7.2006

Репутация: 3
Всего: 8



Цитата(MoebiusCat @  17.6.2011,  23:50 Найти цитируемый пост)
может дать ответ на вопрос, что фон и что объект

Ну, простые задачи решаются без проблем. Вернее, можно ставить решать задачу выделения из картинки фона и объектов на нём без предварительной съемки собственно эталонного фона. Если камера неподвижна и с постоянным фокусом, и если скорость изменения собственно фона (из-за изменения освещенности и т.д.) гораздо меньше, чем скорость движения объектов по нему - то фон можно поймать без проблем на всём кадре (естественно, требуется время, за которое объекты сдвинутся на новые позиции, т.е. "раскроют" ранее закрытые области фона). 
См, например, статьи Mickael Pic, Luc Berthouze and Takio Kurita "Adaptive background estimation", Fatih Porikli "Multiplicative Background-Foreground Estimation Under Uncontrolled Illumination using Intrinsic Images".

А вот если камера поворотная/зумирующая и картинка сложная (как пример - слежение за игроком в амерофутбол в указанной статье Comaniciu, Ramesh, Meer "Real-time tracking of non-rigid objects..." - то тут без явного указания координат куска, за которым надо следить, не обойтись. Ведь силуэт игрока может быть первоначально "склеен" с силуэтом другого - и как делить этот суммарный силуэт при "разбегании" игроков? Размножать отслеживаемые объекты? А если ещё и фон существенно переменный во времени и/или пространстве (а не однородный, как зелёное футбольное поле) - то вообще швах с автоделением на объекты и фон.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.