![](https://habrastorage.org/getpro/habr/post_images/bc1/dab/d68/bc1dabd68c41b2ee9bbf6eafca34e528.png)
Команда исследователей из компании Google представила новую разработку — алгоритм автоматического кадрирования видео. Исходный материал редактируется машиной, пользователю нужно лишь задать основные параметры, вроде соотношения сторон в кадре.
Ну а ПО все делает самостоятельно, отслеживая важные объекты на видео и обрезая кадры таким образом, что все важное оставалось в финальном варианте видео.
Результаты своей работы команда выложила на GitHub, это open source фреймворк, который получил название AutoFlip. На GitHub также опубликованы код и инструкции по запуску программы.
Разработчики занялись проектом потому, что большинство видео снимается в горизонтальном формате. Так повелось изначально — подавляющая часть видеооборудования устроена так, что ширина кадра больше, чем высота. Но сейчас, когда смартфоны распространены повсеместно, горизонтальное видео не всегда удобно. Порой приходится адаптировать видео сразу под несколько платформ.
![](https://habrastorage.org/getpro/habr/post_images/d41/dc2/cbb/d41dc2cbb811e943c9f762f988419b76.gif)
Если кадрировать горизонтальное видео, обрезая его, то многие важные моменты вне финального кадра просто пропадают. Для того, чтобы избежать этого, разработчики решили научить алгоритм отслеживать важные объекты и обрезать кадр по ним. В итоге все, что нужно, остается в кадре и ничего не теряется.
К слову, представители Google не первые, кто занялся этой проблемой. Не так давно над схожей идеей работали представители компании Adobe. Они создали продукт, который тоже отлично работает, но в нем есть разного рода ограничения, да и доступ к нему может получить не каждый пользователь. В Google решили проблему по-своему, предоставив наработки всем желающим.
![](https://habrastorage.org/getpro/habr/post_images/195/7c9/f20/1957c9f20ea40f762c5eeaa91072ecbc.gif)
Для того, чтобы приступить к работе, нужно, как и указывалось выше, задать исходные параметры обрезки — соотношения сторон, а также количество объектов, которые должны оставаться в кадре. После того, как выполнены исходные настройки, алгоритм начинает работу, рамечая исходный файл. Один из важнейших критериев оценки смены сцены — гистограмма насыщенности. Если она меняется, значит, сцена изменилась.
По словам разработчиков, каждая сцена обрабатывается отдельно. Делается это потому, что в разных сценах объекты в кадре расположены по-разному, иногда одни объекты пропадают, другие — появляются. Чтобы финальный вариант видео не потерял ничего важного, алгоритм размечает объекты в кадре, обрезая его таким образом, чтобы они оставались в поле зрения.
![](https://habrastorage.org/getpro/habr/post_images/673/390/3af/6733903af8355e82649ce6c3ef003e77.gif)
Вариантов обрезки несколько — от статичной обрезки с движением зоны кадрирования от одной стороны к другой, к динамическому кадрированию в соответствии с перемещениями объектов в кадре. Если же в исходной задаче указано, что все объекты в кадре должны быть сохранены, то алгоритм в состоянии расширить зону кадрирования, добавляя место по бокам кадра для заполнения возникающих пустот.
Согласно объяснению разработчиков, алгоритм доступен на GitHub, он реализован в виде MediaPipe-конвейера. К слову, последний умеет работать в веб-браузере, так что при желании алгоритмы компьютерного зрения могут быть запущены в браузере на компьютере или смартфоне. Разработчики уже заявили, что останавливаться на достигнутом не собираются, его будут совершенствовать. К проекту могут присоединиться как индивидуальные разработчики, так и целые компании.
Области применения алгоритма — отслеживание лица диктора в кадре или, например, героя в мультфильме.
![](https://habrastorage.org/getpro/habr/post_images/070/5f0/601/0705f060184636b46db8edd739a06861.gif)
В будущем алгоритму добавят функцию дорисовывания граничных областей кадра, а также удаление текста или рисунков. Оба варианта уже существуют в качестве самостоятельных алгоритмов, так что интегрировать их в решение с кадрированием не проблема.
![](https://habrastorage.org/webt/qq/g0/i7/qqg0i7eriq4febfjqqehire4fnw.png)
![](https://habrastorage.org/webt/bv/1y/yw/bv1yywjgl2_cbtzvvtk4rup2jz8.png)
ivanrt
Наверно я слишком консервативен, но когда вырезается имя из титров у меня возникает ощущения дискомфорта. Что ещё алгоритм выбросит как не важное. Бесспорно вещь полезная для видосов с кошечками, но надеюсь мы не скоро увидим адаптации фильмов к экранам на лету.
Caster-Troy
Тоже насторожила вырезка титров.
С другой стороны, при критичной необходимости обрезать кадр, лучше пусть вырежут титр, чем он будет главенствующим в кадре, а лицо порежет границей.
Следующий шаг — автоматически считывать титр, цвет, шрифт и дописывать его в уже кадрированной зоне.