Comments 19
Спасибо за статью. Было очень приятно почитать и увидеть, что не перевелись еще те кто готовы выкладывать статьи с кучей математики внутри на хабр.
А где хотя бы простенькая реализация? Чтобы пощупать, так сказать…
Это похоже.
Существует ли простой пример, в котором каждый шаг итеративного подхода не натыкается на вырожденную или близкую к вырожденной матрицу, но сам итеративный процесс не является сходящимся?
Что будет делать алгоритм, если в окрестности точки оказался резкий перепад яркости? Тогда на нём производные dI/dx, dI/dy будут очень большими, и в методе наименьших квадратов эти точки просто задавят все остальные. Отследит ли алгоритм сдвиг этого перепада? Или просто скажет, что поток может идти только вдоль ребра?
Многое зависит от весовой функции g. Допустим, мы используем гауссиану. Тогда, когда в окрестность точки попадет резкий перепад, он действительно перетянет вектор смещения в свою сторону. В результате вместо такого же резкого перепада в смещениях мы получим «размытие», ширина которого в общем-то равна половине ширины локальной окрестности.
Если нам важно получить четкую границу, мы можем выбрать такую весовую функцию, которая зависит не только от позиции пикселя в окрестности, но и от значения его яркости. Тогда мы сможем дать пикселю тем меньший вес, чем больше его яркость отличается от яркости центрального пикселя. Это решит проблему с границей, но наверняка скажется на стабильности, особенно для зашумленных изображений.
Если нам важно получить четкую границу, мы можем выбрать такую весовую функцию, которая зависит не только от позиции пикселя в окрестности, но и от значения его яркости. Тогда мы сможем дать пикселю тем меньший вес, чем больше его яркость отличается от яркости центрального пикселя. Это решит проблему с границей, но наверняка скажется на стабильности, особенно для зашумленных изображений.
Спасибо, было очень интересно.
Подскажите подход к решению задачки: как на стерео потоке, (т.е. 2 камеры снимают одну и ту же картинку, расстояние между камерами известно) определить расстояние до объекта? Интересует прикладное решение, может библиотеки какие готовые есть? В общем куда копать?
Подскажите подход к решению задачки: как на стерео потоке, (т.е. 2 камеры снимают одну и ту же картинку, расстояние между камерами известно) определить расстояние до объекта? Интересует прикладное решение, может библиотеки какие готовые есть? В общем куда копать?
Для начала можно прочесть: habrahabr.ru/post/130300/
А потом, как уже посоветовали, использовать для этого OpenCV.
А потом, как уже посоветовали, использовать для этого OpenCV.
Отличная статья. Спасибо.
Маленький совет. Чтобы не заморачиваться с заливкой картинок формул на habrastorage, есть отличный стабильный онлайн сервис для TEX формул http://www.codecogs.com/latex/eqneditor.php
Маленький совет. Чтобы не заморачиваться с заливкой картинок формул на habrastorage, есть отличный стабильный онлайн сервис для TEX формул http://www.codecogs.com/latex/eqneditor.php
А если функция не такая гладкая? Если смещение может быть на 120 пикселей?
Придётся, видимо, применять общие методы сопоставления изображений. Кстати, какие сейчас популярны?
По квадратикам :-) По крайней мере, для сжатия видео до сих пор используется что-то такое, разве что полный перебор оптимизируют.
Я недавно искал решение для похожей задачи — автоматического сопоставления RGB каналов для удаления хроматических аберраций по одной фотографии. Удивительно мало на эту тему информации.
Я недавно искал решение для похожей задачи — автоматического сопоставления RGB каналов для удаления хроматических аберраций по одной фотографии. Удивительно мало на эту тему информации.
А не по уголкам? Был какой-то алгоритм, где ищут уголки, считают у них сигнатуры, а потом ищут наиболее адекватное соответствие между фотографиями (с сохранением метрики). Использовалось для сшивок панорамы.
RGB я тоже пытался сопоставлять — для получения инфракрасных трёхканальных снимков. Ничего лучше, чем вручную двигать channels в фотошопе, не придумалось.
RGB я тоже пытался сопоставлять — для получения инфракрасных трёхканальных снимков. Ничего лучше, чем вручную двигать channels в фотошопе, не придумалось.
Вы вероятно имеете в виду методы на основе feature points, вот описание того как эти особенности искать SIFT, SURF. Потом строят соответствия(просто ближайшие дескрипторы берут), затем каким нибудь RANSAC или как я описывал фильтруют соответствия и строят матрицу гомографии между изображениями.
Для больших смещений скорее всего действительно лучше подойдет сопоставление блоков
Хотя дифференциальный метод тоже можно приспособить. Для этого изображения нужно уменьшить, скажем в два раза, затем уменьшенные копии снова уменьшить, и так несколько раз. Если представить себе все эти копии одну над другой (чем меньше, тем выше), то получится нечто, напоминающее пирамиду. Поэтому этот способ еще называют Gaussian pyramid. Сначала ищем смещения для самых мелкий копий (они будут небольшими), и используем их, чтобы компенсировать смещение на следующем уровне. И так далее, пока не дойдем до оригинального размера.
Хотя дифференциальный метод тоже можно приспособить. Для этого изображения нужно уменьшить, скажем в два раза, затем уменьшенные копии снова уменьшить, и так несколько раз. Если представить себе все эти копии одну над другой (чем меньше, тем выше), то получится нечто, напоминающее пирамиду. Поэтому этот способ еще называют Gaussian pyramid. Сначала ищем смещения для самых мелкий копий (они будут небольшими), и используем их, чтобы компенсировать смещение на следующем уровне. И так далее, пока не дойдем до оригинального размера.
Sign up to leave a comment.
Вычисление оптического потока методом Лукаса-Канаде. Теория