mrgloom 242 Report post Posted November 10, 2018 Тут есть простой пример стабилизации видео http://nghiaho.com/?p=2093 Но не очень понятно за счет чего алгоритм не реагирует на движущийся объект, или все будет стабилизироватся относительно объекта, если он будет занимать большую часть кадра? Мой кейз это съемка с фронтальной телефонной камеры, когда лицо занимает большую часть кадра, при этом человек может идти, т.е. фон сзади будет перемещатся. Возможно для стабилизации видео есть что то получше уже готовое? Share this post Link to post Share on other sites
mrgloom 242 Report post Posted November 10, 2018 Оказывается в opencv есть целый модуль для видеостабилизации, но нет питон биндингов. https://docs.opencv.org/3.0-beta/modules/videostab/doc/videostab.html Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted November 10, 2018 У них алгоритм будет реагировать неправильно. Чтобы было правильно, надо делать сегментацию и искать движение не в целом по кадру, а по сегментам. В твоём случае всё намного проще: детектор лица, можно добавить детекцию кожи внутри найденного лица и всё. В OpenCV он всё больше не для реального времени, а для постобработки. Share this post Link to post Share on other sites
mrgloom 242 Report post Posted November 12, 2018 Что имеется ввиду? взять bbox и стабилизировать по нему? но bbox от кадра к кадру будет плавать в размерах и координатах, не думаю, что это хорошая идея. Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted November 13, 2018 Нет, стабилизировать по векторам движения, как обычно (блоки, оптический поток - пофиг). Но брать эти вектора только из правильных областей. Если у тебя это лицо, то на лице. Или ты используешь глобальные методы вычисления движения? Типа фазовой коррреляции или глобального Лукаса-Канаде ( https://github.com/Nuzhny007/image-align )? Share this post Link to post Share on other sites
mrgloom 242 Report post Posted November 13, 2018 В таком случае можно брать и лицевые точки, но тогда мы возвращаемся к проблеме, что они дрожат. Вот кстати похоже показана проблема движущихся объектов и слабовыраженного фона на 24 секунде. А вот этот эффект я не понял почему возникает Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted November 14, 2018 10 hours ago, mrgloom said: В таком случае можно брать и лицевые точки, но тогда мы возвращаемся к проблеме, что они дрожат. Дрожат - не страшно, потому что ты всё равно сглаживать будешь. В ссылке из первого поста используют moving average, но можно и экспоненциальное сглаживание, и Кальмана прикрутить. Дрожь это всё будет убирать. 10 hours ago, mrgloom said: Вот кстати похоже показана проблема движущихся объектов и слабовыраженного фона на 24 секунде. Да, это известная проблема. Поэтому надо либо сегментировать сразу, либо кластеризовать уже вектора и строить несколько "траекторий" для каждого кластера. Если один кластер станет больше того, по которому строится текущая траектория, то сразу на него не переключаться. 10 hours ago, mrgloom said: А вот этот эффект я не понял почему возникает Всё просто: в кадре два больших плана: передний и задний, которые движутся неравномерно. Видимо, строится гомография между кадрами, поэтому всё так глючит. Если бы строили только сдвиг или сдвиг и ресайз, то всё было бы нормально. В стабилизации произвольного видео надо уметь вовремя прекратить стабилизацию или понизить число степеней свободы - перейти на более простую модель: с гомографии или аффинного к сдвигу, например. Лучше совсем не стабилизировать, чем портить видео. Share this post Link to post Share on other sites