Введение
Конденсационный алгоритм (Conditional Density Propagation) — это алгоритм компьютерного зрения. Его основное применение — обнаружение и отслеживание контуров движущихся объектов в зашумленной среде. Отслеживание объектов — один из наиболее фундаментальных и сложных аспектов компьютерного зрения и, как правило, является предварительным условием для распознавания объектов. Определение того, какие пиксели изображения формируют контур объекта, представляет собой непростую задачу. Конденсация — это вероятностный алгоритм, предназначенный для решения этой задачи. Детальное описание алгоритма приводится Изардом и Блейком в публикации в журнале International Journal of Computer Vision в 1998 году. Одной из наиболее интересных особенностей алгоритма является то, что он не обрабатывает каждый пиксель изображения. Вместо этого пиксели для обработки выбираются случайным образом, и обрабатывается лишь подмножество пикселей. Множественные гипотезы о движущемся объекте естественно поддерживаются благодаря вероятностной природе подхода. Оценочные функции в значительной степени основаны на предыдущих исследованиях в этой области и включают в себя множество стандартных статистических методов. Новизной данной работы является применение методов оценки на основе фильтра частиц. Создание алгоритма было обусловлено неспособностью фильтра Калмана эффективно отслеживать объекты в условиях значительных помех на фоне. Наличие помех приводит к формированию многомодальных распределений вероятностей состояния объекта, которые плохо моделируются фильтром Калмана. Конденсационный алгоритм в своей наиболее общей форме не требует каких-либо предположений о распределении вероятностей объекта или измерений.
Обзор алгоритма
Алгоритм конденсации направлен на решение задачи оценки конформации объекта, описываемого вектором в момент времени , на основе наблюдений за обнаруженными признаками на изображениях вплоть до текущего момента времени. Алгоритм выдает оценку плотности условной вероятности состояния , применяя нелинейный фильтр, основанный на факторизованной выборке, и может рассматриваться как развитие метода Монте-Карло, поскольку он моделирует совместное распределение объекта и наблюдателя. Условная плотность объекта в текущий момент времени оценивается как взвешенный, индексированный по времени набор образцов с весами . – параметр, определяющий количество выбранных наборов образцов. Реализация получается путем выборки с возвращением из множества с вероятностью, равной соответствующему элементу . Модель наблюдения не может быть напрямую оценена по данным, что требует внесения допущений для ее оценки. Исард (1998) предполагает, что помехи, которые могут сделать объект невидимым, являются пуассоновским случайным процессом с пространственной плотностью , а любое истинное измерение цели является несмещенным и нормально распределенным со стандартным отклонением . Базовый алгоритм конденсации используется для отслеживания одного объекта во времени. Возможно расширить алгоритм конденсации, используя одно распределение вероятности для описания вероятных состояний нескольких объектов, чтобы отслеживать несколько объектов в сцене одновременно. Поскольку помехи могут привести к разделению распределения вероятности объекта на несколько пиков, каждый пик представляет собой гипотезу о конфигурации объекта. Сглаживание – это статистический метод обусловливания распределения на основе как прошлых, так и будущих измерений после завершения отслеживания, чтобы уменьшить влияние множественных пиков. Сглаживание не может быть выполнено непосредственно в реальном времени, поскольку для этого требуется информация о будущих измерениях.
conditional probability density by applying a nonlinear filter based on factored sampling and can be thought of as a development of a Monte Carlo method. since it models the joint distribution of the object and the observer. The conditional density of the object at the current time is estimated as a weighted, time indexed sample set with weights N is a parameter determining the number of sample sets chosen. A realization of is obtained by sampling with replacement from the set with probability equal to the corresponding element of
The observation model cannot be directly estimated from the data, requiring assumptions to be made in order to estimate it. Isard 1998 assumes that the clutter which may make the object not visible is a Poisson random process with spatial density and that any true target measurement is unbiased and normally distributed with standard deviation
The basic condensation algorithm is used to track a single object in time. It is possible to extend the condensation algorithm using a single probability distribution to describe the likely states of multiple objects to track multiple objects in a scene at the same time. Since clutter can cause the object probability distribution to split into multiple peaks, each peak represents a hypothesis about the object configuration. Smoothing is a statistical technique of conditioning the distribution based on both past and future measurements once the tracking is complete in order to reduce the effects of multiple peaks. Smoothing cannot be directly done in real time since it requires information of future measurements.
Приложения
Алгоритм может использоваться для визуальной локализации мобильных роботов. Однако, в отличие от отслеживания положения объекта в сцене, отслеживается положение платформы камеры. Это позволяет глобально локализовать платформу камеры, используя визуальную карту окружающей среды. Расширения алгоритма конденсации также применялись для распознавания человеческих жестов в последовательностях изображений. Это применение алгоритма конденсации расширяет возможности взаимодействия человека и компьютера. Он использовался для распознавания простых жестов пользователя у интерактивной доски для управления такими действиями, как выбор областей доски для печати или сохранения. Другие расширения также использовались для отслеживания нескольких автомобилей в одной сцене. Алгоритм конденсации также применялся для распознавания лиц в видеопоследовательности.
Ресурсы
Реализацию алгоритма конденсации на языке C можно найти на веб-сайте Майкла Изарда. Реализацию на MATLAB можно найти в Mathworks File Exchange. Пример реализации с использованием библиотеки OpenCV можно найти на форумах OpenCV.