Автоматический алгоритм отслеживания

Я пытаюсь записать простую стандартную программу отслеживания для отслеживания некоторых точек на фильме.

По существу у меня есть серия 100 кадров длинные фильмы, показывая некоторые яркие пятна на темном фоне. У меня есть ~100-150 мест на кадр, и они отодвигаются курс фильма. Я хотел бы отследить их, таким образом, я ищу некоторых эффективных (но возможно не сверхуничтожаю для реализации), стандартная программа, чтобы сделать это.

Еще много infos:

  • пятна - некоторые (es. 5x5) пиксели в размере
  • перемещение не является большим. Место обычно не перемещает больше чем 5-10 пикселей от своего исходного положения. Перемещения являются обычно гладкими.
  • "форма" этих пятен обычно фиксируется, они не растут или уменьшаются, НО они становятся менее яркими, в то время как фильм прогрессирует.
  • пятна не перемещаются в конкретное направление. Они могут переместить право и затем оставленный и затем право снова
  • пользователь выберет регион вокруг каждого пятна, и затем этот регион будет прослежен, таким образом, я не должен буду автоматически находить точки.

Поскольку видео являются черно-белыми, я, хотя я должен полагаться на яркость. Например, я думал, что мог переместить регион и вычислить корреляцию области региона в предыдущем кадре с этим в различных положениях в следующем кадре. Я понимаю, что это - довольно наивное решение, но Вы думаете, что оно может работать? Кто-либо знает определенные алгоритмы, которые делают это? Это не должно быть сверхбыстрым, пока правильно, что я счастлив.

Спасибо

nico

7
задан nico 27 May 2010 в 16:00
поделиться

5 ответов

Я бы предложил произведение Пирсона . Имея модель (которая может быть любым изображением шаблона), вы можете измерить корреляцию шаблона с любым участком кадра.

Результатом является коэффициент вероятности, который определяет корреляцию выборки с эталонной. Это особенно применимо к случаям 2D. Его преимущество заключается в том, что он не зависит от абсолютного значения выборки, поскольку результат зависит от ковариации, связанной со средним значением выборок.

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

Однако размер и поворот шаблона имеют значение, но, насколько я понимаю, это не так. Вы можете настроить обнаружение с любой формой, поскольку изображение шаблона может представлять любую конфигурацию.

Вот реализация однопроходного алгоритма , которую я использовал и которая работает правильно.

2
ответ дан 6 December 2019 в 21:10
поделиться

Мне кажется, работа по обнаружению капель - это работа.

4
ответ дан 6 December 2019 в 21:10
поделиться

Это должна быть хорошо продуманная тема, и я подозреваю, что 100% точного решения не будет.

Некоторые ссылки, которые могут быть полезны:

Изучение моделей активности с использованием отслеживания в реальном времени . Статья двух парней из Массачусетского технологического института.

Фильтр Калмана . Особенно часть компьютерного зрения.

Отслеживание движения . Я считаю, что это студенческий проект, в котором также есть код и образцы видео.

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

1
ответ дан 6 December 2019 в 21:10
поделиться

Боюсь, что отслеживание BLOB-объектов - непростая задача, если вы не хотите делать это хорошо.

Начните с обнаружения blob, как говорит genpfault.

Теперь у вас есть пятна на каждом кадре, и вам нужно связать их. Если капли перемещаются независимо, вы можете использовать какой-то алгоритм соответствия, чтобы связать их. См., Например, http://server.cs.ucf.edu/~vision/papers/01359751.pdf .

Теперь у вас могут быть столкновения. Вы можете использовать смесь гауссианцев, чтобы попытаться разделить их, сдаться и позволить трекам пересечься, использовать любую другую информацию до и после, чтобы разрешить столкновения (например, если A и B сталкиваются, а A ярче до и будет ярче после , вы можете отслеживать A; если A и B движутся по предсказуемым траекториям, вы также можете использовать это).

Или вы можете сотрудничать с лабораторией, которая все время занимается такими вещами.

1
ответ дан 6 December 2019 в 21:10
поделиться

Простота - это хорошо. Я бы начал делать что-то вроде:

1) over a small rectangle, that surrounds a spot:
2) apply a weighted average of all the pixel coordinates in the area
3) call the averaged X and Y values the objects position
4) while scanning these pixels, do something to approximate the bounding box size
5) repeat next frame with a slightly enlarged bounding box so you don't clip spot that moves

Вес для среднего должен упасть до нуля для пикселей ниже некоторого порога. Номер 4 может быть таким же простым, как отслеживание минимального / максимального положения чего-либо ярче, чем тот же порог.

Это, конечно, будет иметь проблемы с точками, которые пересекаются или пересекаются. Но по какой-то причине я все время думаю, что вы отслеживаете звезды с помощью какого-то неизвестного движения камеры, и в этом случае это должно быть нормально.

1
ответ дан 6 December 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: