Преобразование видео в мультфильм на Python и CV2
Рассказываем, как превратить видео с мультик при помощи Python и CV2, разбив видео на изображения и объединив обратно после преобразования.
1К открытий5К показов
Если вы последние несколько месяцев следили за разработками в области нейросетей, то наверняка сталкивались с такими проектами.
Однако, не все могут позволить себе тратить время на обработку каждого кадра видео, а также не всегда у компьютеров есть достаточно мощности для использования stable diffusion и подобных алгоритмов. В этом случае можно попробовать другой подход – создание мультфильма из видео. Привожу готовый код на github, который будет объяснен по ходу статьи.
Инструкция по использованию кода находится в конце статьи, и вы можете запускать .exe файл без установки Python и библиотек для полноценного использования кода. Возьмем для примера видео с YouTube, чтобы вы могли понять, что происходит.
Основные этапы обозначаются следующим образом: необходимо превратить каждое изображение из видео в изображение типа “мультик”, затем соединить фото в видео и сделать его воспроизводимым.
Вначале необходимо импортировать необходимые библиотеки:
Далее необходимо создать функции:
В статье вы найдете объяснение их работы (итог – преобразование картинки в стиль мультфильма) – это главный ресурс, который использовался для создания итоговой программы.
То же самое можно сказать про код сохранения и обработки:
Важно указать на то, что присутствует в этом коде, но не упоминается в статье выше. Строка 26 отвечает за сохранение изображения, а строки 8, 9 и 12 отвечают за извлечение изображений из видео.
Это — первая часть программы.
Второй файл отвечает за создание видео из фотографий и удаление этих фотографий. Кроме того, добавлена функция для создания видео с начала до определенной фотографии.
Как обычно, импорт библиотек:
Приём данных от пользователя:
Далее — составление массива с фото и удаление этих фотографий, чтобы избежать ненужных файлов:
Если вы хотите использовать полученные изображения, сотрите 8 и 9 строки.
Сборка видео из массива:
Собственно, конвертация и сохранение:
Вот и всё!
Примеры
Теперь проведём небольшое исследование модели, и получим видео:
Соответственно 10, 90 и 150 цветов. Заметно, что чем больше цветов, тем лучше качество, но и время генерации увеличивается пропорционально
Использование файлов .exe
Теперь рассмотрим использование файлов .exe из Яндекс диска. Скачиваем файлы, помещаем в отдельную папку. В эту же папку помещаем видео для превращения, переименовываем в vid.mp4, запускаем cartooner.exe, следуем инструкции. После окончания выполнения программы запускаем videoizer.exe и снова следуем инструкции. После выполнения программы вы получите: видео в формате avi, видео в формате mp4, возможно, несколько фотографий. Видео result.mp4 и есть результат работы программы. Помните, что при повторной генерации видео результата заместится новым.
Удачных компиляций!
1К открытий5К показов