Фильтры Калмана для отслеживания нескольких объектов в видео

Из того, что я понял, алгоритмы отслеживания предсказывают, где данный объект будет находиться в следующем кадре (после того, как обнаружение объекта уже выполнено). Затем объект снова распознается в следующем кадре. Что не ясно, так это то, как трекер узнает, как связать объект во 2-м кадре с тем же, что и в 1-м кадре, особенно когда в кадре несколько объектов.

В нескольких местах я видел, что матрица затрат создается с использованием евклидова расстояния между предсказанием и всеми обнаружениями, и проблема оформляется как проблема назначения (венгерский алгоритм).

Правильно ли мое понимание отслеживания? Существуют ли другие способы установить, что объект в одном кадре совпадает с объектом в следующем кадре?

1 ответ

Решение

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

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

Самое простое, что вы можете сделать, это принять во внимание ковариацию ошибок фильтра Калмана, а не просто использовать евклидово расстояние. См. Уравнение расстояния в документации для объекта vision.KalmanFilter в MATLAB. Также см. Пример отслеживания нескольких объектов на основе движения.

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

Другие вопросы по тегам