Перейти к содержимому
Compvision.ru
mrgloom

Стабилизация видео при движущихся объектах

Recommended Posts

Тут есть простой пример стабилизации видео

http://nghiaho.com/?p=2093

Но не очень понятно за счет чего алгоритм не реагирует на движущийся объект, или все будет стабилизироватся относительно объекта, если он будет занимать большую часть кадра?

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

 

Возможно для стабилизации видео есть что то получше уже готовое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Оказывается в opencv есть целый модуль для видеостабилизации, но нет питон биндингов.

https://docs.opencv.org/3.0-beta/modules/videostab/doc/videostab.html

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У них алгоритм будет реагировать неправильно. Чтобы было правильно, надо делать сегментацию и искать движение не в целом по кадру, а по сегментам. В твоём случае всё намного проще: детектор лица, можно добавить детекцию кожи внутри найденного лица и всё.

В OpenCV он всё больше не для реального времени, а для постобработки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что имеется ввиду? взять bbox и стабилизировать по нему? но bbox от кадра к кадру будет плавать в размерах и координатах, не думаю, что это хорошая идея.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нет, стабилизировать по векторам движения, как обычно (блоки, оптический поток - пофиг). Но брать эти вектора только из правильных областей. Если у тебя это лицо, то на лице. Или ты используешь глобальные методы вычисления движения? Типа фазовой коррреляции или глобального Лукаса-Канаде ( https://github.com/Nuzhny007/image-align )?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В таком случае можно брать и лицевые точки, но тогда мы возвращаемся к проблеме, что они дрожат.

 

Вот кстати похоже показана проблема движущихся объектов и слабовыраженного фона на 24 секунде.

 

А вот этот эффект я не понял почему возникает

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 hours ago, mrgloom said:

В таком случае можно брать и лицевые точки, но тогда мы возвращаемся к проблеме, что они дрожат.

Дрожат - не страшно, потому что ты всё равно сглаживать будешь. В ссылке из первого поста используют moving average, но можно и экспоненциальное сглаживание, и Кальмана прикрутить. Дрожь это всё будет убирать.

10 hours ago, mrgloom said:

Вот кстати похоже показана проблема движущихся объектов и слабовыраженного фона на 24 секунде.

Да, это известная проблема. Поэтому надо либо сегментировать сразу, либо кластеризовать уже вектора и строить несколько "траекторий" для каждого кластера. Если один кластер станет больше того, по которому строится текущая траектория, то сразу на него не переключаться.

10 hours ago, mrgloom said:

А вот этот эффект я не понял почему возникает

Всё просто: в кадре два больших плана: передний и задний, которые движутся неравномерно. Видимо, строится гомография между кадрами, поэтому всё так глючит. Если бы строили только сдвиг или сдвиг и ресайз, то всё было бы нормально. В стабилизации произвольного видео надо уметь вовремя прекратить стабилизацию или понизить число степеней свободы - перейти на более простую модель: с гомографии или аффинного к сдвигу, например. Лучше совсем не стабилизировать, чем портить видео.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×