Во многих ресурсах говорится, что существует два типа алгоритмов оптического потока. А Лукас-Канаде техника разреженная, а значения разреженный и плотный не могу найти? Может ли кто-нибудь сказать мне, в чем разница между плотным и разреженным оптическим потоком?
В чем разница между разреженным и плотным оптическим потоком?
Ответы (6)
Короткое объяснение: разреженные методы должны обрабатывать только некоторые пиксели всего изображения, а плотные методы обрабатывают все пиксели. Плотные методы медленнее, но могут быть более точными, но, по моему опыту, точности Лукаса-Канаде может быть достаточно для приложений в реальном времени. Примером алгоритма плотного оптического потока (самого популярного) является оптический поток Ганнера Фарнебака.
Чтобы получить общее представление о качестве потока, посмотрите на страницу тестов, например. KITTI или Миддлберри набор данных
Разреженный оптический поток дает вам векторы потока некоторых «интересных особенностей» в изображении.
Плотный оптический поток пытается дать вам поток по всему изображению — вплоть до вектора потока на пиксель.
Прежде всего, Лукас-Канаде НЕ является методом разреженного оптического потока. Причина, по которой многие в это верят, кроется в широко распространенном непонимании. Это заблуждение стало общепринятой истиной, так как самая первая реализация Lucas-Kanade в OpenCV была помечена как SPARSE и остается таковой по сей день. Аргументы, почему Лукас-Канаде следует называть разреженным, применимы к любому алгоритму плотного потока. Если вы настаиваете на разреженности Лукаса-Канаде, то все потоковые алгоритмы разрежены и нет смысла их различать.
Разреженный поток аналогичен точечному отслеживанию, плотный поток состоит из векторов по видео, указывающих оценки движения фиксированных позиций.
Вы можете прочитать больше обо всем этом в это руководство, которое я написал, где я также показываю, что Lucas-Kanade так же плотен, как и любой другой алгоритм (хотя и не так точен).
Разреженный оптический поток — метод Лукаса-Канаде вычисляет оптический поток для разреженного набора признаков (например, углы, обнаруженные с помощью алгоритма Ши-Томаси). Плотный оптический поток — алгоритм Гуннера Фарнебака вычисляет оптический поток для всех точек в кадре. Это объясняется в «Двухкадровой оценке движения на основе полиномиального расширения» Ганнера Фарнебака в 2003 году.
Пример реализации можно найти в документации opencv здесь
Разреженный оптический поток работает с функциями (краями, углами и т. д.). Плотный оптический поток рассчитан на работу со всеми пикселями. Преимущество первого заключается в том, что он, как правило, быстрее, а второй может давать оценки для большего количества пикселей, чем первый.
Разреженный оптический поток дает вам векторы скорости для некоторых интересных (угловых) точек, эти точки извлекаются заранее с использованием таких алгоритмов, как Ши-Томаши, Харрис и т. д. Извлеченные точки передаются в вашу [функцию оптического потока] вместе с текущим изображением и следующим. изображение. Любая хорошая функция оптического потока должна проверять оптический поток в прямом направлении, используя вышеуказанные угловые точки, а также обратный путь для перекрестной проверки, следует ли он тем же точкам.
С другой стороны, плотный оптический поток можно указать отсюда: http://www.cs.toronto.edu/~fleet/courses/cifarSchool09/flowChapter05.pdf