Получение векторов движения из необработанного видео - PullRequest
2 голосов
/ 12 апреля 2011

Я хотел бы знать, есть ли какой-нибудь хороший (и свободно доступный) текст о том, как получить векторы движения макроблоков в необработанном видеопотоке.Это часто используется в сжатии видео, хотя я не использую его для кодирования видео.

Код, который делает это, доступен в кодеках OSS, но понимание метода путем чтения кода довольно сложно.

Моя настоящая цель - определить движение камеры в пространстве 2D-проекции, предполагая, что камера меняет только свою ориентацию (НЕ положение).Я хотел бы разделить кадры на макроблоки, получить их векторы движения и получить движение камеры путем усреднения этих векторов.

Я думаю, OpenCV мог бы помочь с этой проблемой, но он недоступен намоя целевая платформа.

Ответы [ 4 ]

3 голосов
/ 12 апреля 2011

Обычный способ простой перебор: Сравнить блок макросъемки к каждому макроблоку от опорного кадра и использовать тот, который дает наименьшую остаточную ошибку. Код становится сложным в первую очередь потому, что обычно это самая медленная часть сжатия на основе mv, поэтому они много работают над его оптимизацией, часто за счет чего-либо, даже приближающегося к читабельности.

Специально для сжатия в реальном времени некоторые уменьшают рабочую нагрузку немного (например, ограничивая поиск исходной позицией +/- некоторая максимальная дельта). Зачастую это может значительно увеличить скорость сжатия в обмен на довольно небольшую потерю сжатия.

0 голосов
/ 14 апреля 2011

Для большинства низкоуровневых алгоритмов этого типа вы ищете термин оптический поток , и один из самых простых алгоритмов этого класса - алгоритм Лукаса Канаде .

Это - довольно хорошая обзорная презентация, которая должна дать вам множество идей для алгоритма, который делает то, что вам нужно

0 голосов
/ 13 апреля 2011

Похоже, вы делаете очень ограниченный SLAM проект?

Много материалов для чтения в Бристольский университет , Имперский колледж , Оксфордский университет например, вы можете найти их подходы к поиску и сопоставлению объектов-кандидатов от кадра к системе интересов - гораздо более надежные, чем простые суммы абсолютных разностей.

0 голосов
/ 12 апреля 2011

Если вы предполагаете только движение камеры, я подозреваю, что есть кое-что возможное с анализом БПФ последовательных изображений.Для частот, амплитуды которых не сильно изменились, информация о фазе будет указывать движение камеры.Не уверен, поможет ли это с вращением камеры, но боковое и вертикальное движение, вероятно, могут быть вычислены.Будут трудности из-за появления новой информации на одном краю и исчезновения на другом, и я не уверен, насколько это повредит.Это умозрительное мышление в ответ на ваш вопрос, поэтому у меня нет никаких доказательств или ссылок: -)

...