Команда исследователей из компании Google представила новую разработку — алгоритм автоматического кадрирования видео. Исходный материал редактируется машиной, пользователю нужно лишь задать основные параметры, вроде соотношения сторон в кадре.
Ну а ПО все делает самостоятельно, отслеживая важные объекты на видео и обрезая кадры таким образом, что все важное оставалось в финальном варианте видео.
Результаты своей работы команда выложила на GitHub, это open source фреймворк, который получил название AutoFlip. На GitHub также опубликованы код и инструкции по запуску программы.
Разработчики занялись проектом потому, что большинство видео снимается в горизонтальном формате. Так повелось изначально — подавляющая часть видеооборудования устроена так, что ширина кадра больше, чем высота. Но сейчас, когда смартфоны распространены повсеместно, горизонтальное видео не всегда удобно. Порой приходится адаптировать видео сразу под несколько платформ.
Если кадрировать горизонтальное видео, обрезая его, то многие важные моменты вне финального кадра просто пропадают. Для того, чтобы избежать этого, разработчики решили научить алгоритм отслеживать важные объекты и обрезать кадр по ним. В итоге все, что нужно, остается в кадре и ничего не теряется.
К слову, представители Google не первые, кто занялся этой проблемой. Не так давно над схожей идеей работали представители компании Adobe. Они создали продукт, который тоже отлично работает, но в нем есть разного рода ограничения, да и доступ к нему может получить не каждый пользователь. В Google решили проблему по-своему, предоставив наработки всем желающим.
Для того, чтобы приступить к работе, нужно, как и указывалось выше, задать исходные параметры обрезки — соотношения сторон, а также количество объектов, которые должны оставаться в кадре. После того, как выполнены исходные настройки, алгоритм начинает работу, рамечая исходный файл. Один из важнейших критериев оценки смены сцены — гистограмма насыщенности. Если она меняется, значит, сцена изменилась.
По словам разработчиков, каждая сцена обрабатывается отдельно. Делается это потому, что в разных сценах объекты в кадре расположены по-разному, иногда одни объекты пропадают, другие — появляются. Чтобы финальный вариант видео не потерял ничего важного, алгоритм размечает объекты в кадре, обрезая его таким образом, чтобы они оставались в поле зрения.
Вариантов обрезки несколько — от статичной обрезки с движением зоны кадрирования от одной стороны к другой, к динамическому кадрированию в соответствии с перемещениями объектов в кадре. Если же в исходной задаче указано, что все объекты в кадре должны быть сохранены, то алгоритм в состоянии расширить зону кадрирования, добавляя место по бокам кадра для заполнения возникающих пустот.
Согласно объяснению разработчиков, алгоритм доступен на GitHub, он реализован в виде MediaPipe-конвейера. К слову, последний умеет работать в веб-браузере, так что при желании алгоритмы компьютерного зрения могут быть запущены в браузере на компьютере или смартфоне. Разработчики уже заявили, что останавливаться на достигнутом не собираются, его будут совершенствовать. К проекту могут присоединиться как индивидуальные разработчики, так и целые компании.
Области применения алгоритма — отслеживание лица диктора в кадре или, например, героя в мультфильме.
В будущем алгоритму добавят функцию дорисовывания граничных областей кадра, а также удаление текста или рисунков. Оба варианта уже существуют в качестве самостоятельных алгоритмов, так что интегрировать их в решение с кадрированием не проблема.
ivanrt
Наверно я слишком консервативен, но когда вырезается имя из титров у меня возникает ощущения дискомфорта. Что ещё алгоритм выбросит как не важное. Бесспорно вещь полезная для видосов с кошечками, но надеюсь мы не скоро увидим адаптации фильмов к экранам на лету.
Caster-Troy
Тоже насторожила вырезка титров.
С другой стороны, при критичной необходимости обрезать кадр, лучше пусть вырежут титр, чем он будет главенствующим в кадре, а лицо порежет границей.
Следующий шаг — автоматически считывать титр, цвет, шрифт и дописывать его в уже кадрированной зоне.