Статья описывает процесс автоматизации монтажа видеороликов для социальных сетей, используя нейросети и библиотеку OpenCV. Авторы столкнулись со сложностями при работе с монтажёрами, поэтому решили самостоятельно разработать решение, позволяющее автоматически заменять фон и добавлять необходимые эффекты. Начали с использования масок OpenCV для удаления зелёного фона, однако столкнулись с проблемами из-за шума и световых отражений.
Для более качественного удаления фона была выбрана нейросеть Robust Video Matting (RVM), которая эффективно отделяет передний план от фона, учитывая временную последовательность кадров. RVM использует архитектуру кодера-декодера с рекуррентным декодером ConvGRU для сохранения информации о предыдущих кадрах. При этом, перед подачей видео в RVM, ролик обрабатывался OpenCV для удаления шума, увеличения насыщенности и подготовки фона. Затем была выполнена синхронизация FPS основного и фонового видео.
Также была реализована замена синего экрана телефона с помощью маски, а также эффект зума для привлечения внимания к элементам. Для поиска элементов на кадре, использовался поиск шаблонов OpenCV, но с предварительной обработкой кадра для уменьшения шумов. Для улучшения стабильности поиска, применялся не только поиск шаблона, но и поиск областей, похожих по цвету. Кроме того, для акцентирования внимания на найденных элементах был применен эффект зума с одновременным затемнением кадра. В финале добавлялись субтитры с помощью whisperx, звук с помощью модели silero и все это монтировалось с помощью FFMPEG.
Изображение носит иллюстративный характер
Для более качественного удаления фона была выбрана нейросеть Robust Video Matting (RVM), которая эффективно отделяет передний план от фона, учитывая временную последовательность кадров. RVM использует архитектуру кодера-декодера с рекуррентным декодером ConvGRU для сохранения информации о предыдущих кадрах. При этом, перед подачей видео в RVM, ролик обрабатывался OpenCV для удаления шума, увеличения насыщенности и подготовки фона. Затем была выполнена синхронизация FPS основного и фонового видео.
Также была реализована замена синего экрана телефона с помощью маски, а также эффект зума для привлечения внимания к элементам. Для поиска элементов на кадре, использовался поиск шаблонов OpenCV, но с предварительной обработкой кадра для уменьшения шумов. Для улучшения стабильности поиска, применялся не только поиск шаблона, но и поиск областей, похожих по цвету. Кроме того, для акцентирования внимания на найденных элементах был применен эффект зума с одновременным затемнением кадра. В финале добавлялись субтитры с помощью whisperx, звук с помощью модели silero и все это монтировалось с помощью FFMPEG.