Я пытаюсь записать простую стандартную программу отслеживания для отслеживания некоторых точек на фильме.
По существу у меня есть серия 100 кадров длинные фильмы, показывая некоторые яркие пятна на темном фоне. У меня есть ~100-150 мест на кадр, и они отодвигаются курс фильма. Я хотел бы отследить их, таким образом, я ищу некоторых эффективных (но возможно не сверхуничтожаю для реализации), стандартная программа, чтобы сделать это.
Еще много infos:
Поскольку видео являются черно-белыми, я, хотя я должен полагаться на яркость. Например, я думал, что мог переместить регион и вычислить корреляцию области региона в предыдущем кадре с этим в различных положениях в следующем кадре. Я понимаю, что это - довольно наивное решение, но Вы думаете, что оно может работать? Кто-либо знает определенные алгоритмы, которые делают это? Это не должно быть сверхбыстрым, пока правильно, что я счастлив.
Спасибо
nico
Я бы предложил произведение Пирсона . Имея модель (которая может быть любым изображением шаблона), вы можете измерить корреляцию шаблона с любым участком кадра.
Результатом является коэффициент вероятности, который определяет корреляцию выборки с эталонной. Это особенно применимо к случаям 2D. Его преимущество заключается в том, что он не зависит от абсолютного значения выборки, поскольку результат зависит от ковариации, связанной со средним значением выборок.
Как только вы обнаружите высокую вероятность, вы можете отследить следующие друг за другом кадры в соседней точке исходной позиции и выбрать лучший коэффициент корреляции.
Однако размер и поворот шаблона имеют значение, но, насколько я понимаю, это не так. Вы можете настроить обнаружение с любой формой, поскольку изображение шаблона может представлять любую конфигурацию.
Вот реализация однопроходного алгоритма , которую я использовал и которая работает правильно.
Мне кажется, работа по обнаружению капель - это работа.
Это должна быть хорошо продуманная тема, и я подозреваю, что 100% точного решения не будет.
Некоторые ссылки, которые могут быть полезны:
Изучение моделей активности с использованием отслеживания в реальном времени . Статья двух парней из Массачусетского технологического института.
Фильтр Калмана . Особенно часть компьютерного зрения.
Отслеживание движения . Я считаю, что это студенческий проект, в котором также есть код и образцы видео.
Конечно, это может быть излишним для вас, но надеюсь, что это поможет вам получить другие зацепки.
Боюсь, что отслеживание BLOB-объектов - непростая задача, если вы не хотите делать это хорошо.
Начните с обнаружения blob, как говорит genpfault.
Теперь у вас есть пятна на каждом кадре, и вам нужно связать их. Если капли перемещаются независимо, вы можете использовать какой-то алгоритм соответствия, чтобы связать их. См., Например, http://server.cs.ucf.edu/~vision/papers/01359751.pdf .
Теперь у вас могут быть столкновения. Вы можете использовать смесь гауссианцев, чтобы попытаться разделить их, сдаться и позволить трекам пересечься, использовать любую другую информацию до и после, чтобы разрешить столкновения (например, если A и B сталкиваются, а A ярче до и будет ярче после , вы можете отслеживать A; если A и B движутся по предсказуемым траекториям, вы также можете использовать это).
Или вы можете сотрудничать с лабораторией, которая все время занимается такими вещами.
Простота - это хорошо. Я бы начал делать что-то вроде:
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 может быть таким же простым, как отслеживание минимального / максимального положения чего-либо ярче, чем тот же порог.
Это, конечно, будет иметь проблемы с точками, которые пересекаются или пересекаются. Но по какой-то причине я все время думаю, что вы отслеживаете звезды с помощью какого-то неизвестного движения камеры, и в этом случае это должно быть нормально.