При просмотре фильма или эпизода телесериала мы наблюдаем за разворачивающимся перед нами целостным нарративом, часто не задумываясь о внутренней структуре того, благодаря чему всё это становится возможным. Однако фильмы и сериалы — это не неделимые единицы, они состоят из более мелких компонентов: изображений, кадров, сцен, последовательностей и действий.

Для выполнения таких задач, как создание обзоров видео и обнаружение важных моментов, сохранение видео на основе содержимого, оценка качества дубляжа и монтаж видео, требуется понимание этих элементов и их взаимосвязи. В Netflix такие задачи выполняются сотни раз в день командами по всему миру, поэтому вложение средств в алгоритмический инструментарий понимания контента может дать богатые плоды.

Сегментация мелких элементов, таких как границы изображений и кадров — это достаточно тривиальная задача, которую вполне можно решать при помощи информации на основе пикселей. Однако сегментация более высокого уровня 1 требует более тонкого понимания контента, например, нарративных или эмоциональных арок. Кроме того, некоторые признаки лучше всего извлекать не из видео, а из других аспектов, например, из сценария или из дорожки звука и диалогов.

В частности, определение границ сцен — это задача выявления переходов между сценами, где под сценой понимается непрерывная последовательность кадров, происходящая в одно время и в одном месте (часто с относительно постоянным списком персонажей), и имеющая единое действие или тему.

В этом посте мы опишем две дополняющие друг друга методики определения границ сцен в аудиовизуальном контенте. В первой методике, которую можно считать разновидностью слабого обучения, применяются вспомогательные данные в виде сценария, сопоставимого с таймингом текстов (субтитров и описаний звука), и заголовкам сцен сценария присваиваются временные метки.

Второй методикой мы демонстрируем, что относительно простая модель обучения с учителем (двунаправленная LSTM или GRU), использующая обогащённые предварительно обученные эмбеддинги на уровне кадров, способна в наших внутренних бенчмарках превосходить самые современные технологии.

Сцена состоит из последовательности кадров.
Сцена состоит из последовательности кадров.

Использование информации сценария

Сценарии — это планы фильма или сериала. Они форматируются определенным образом, каждая сцена начинается с заголовка сцены, задающего такие атрибуты, как __cpLocation и время суток. Такое согласованное форматирование позволяет парсить сценарии в структурированный формат. Однако: а) в сценарий на лету вносятся изменения (со стороны режиссёра или актёров), б) постпродакшн и монтаж редко отражаются в сценарии, то есть их не переписывают в соответствии с изменениями.

Элементы сценария первого эпизода первого сезона «Ведьмака»
Элементы сценария первого эпизода первого сезона «Ведьмака»

Для того, чтобы иметь возможность использовать этот сильно зашумленной источник данных, нам нужно сопоставить текст с временными метками (например, субтитры и описания звуков) с текстом сценария (строками диалогов и действиями), учитывая при этом следующее: а) происходящие на лету изменения, которые могут приводить к семантически схожим, но не идентичным парам строк и б) возможные изменения после съёмок, которые более существенны (изменение порядка, удаление или вставка целых сцен).

Для решения первой проблемы мы используем для описания текста в обоих источниках предварительно обученные эмбеддинги на уровне предложений, например, из модели эмбеддингов, оптимизированной под выявление перефразирований.

Для решения второй проблемы мы используем методику динамической трансформации временной шкалы (DTW) измеряющую схожесть двух последовательностей, которые могут варьироваться по времени или скорости. Хотя DTW требуется соблюдение условия монотонности в сопоставлениях 3, которое на практике часто нарушается, эта методика достаточно надёжна, чтобы адаптироваться к локальным несовпадениям, а подавляющее большинство важных событий (например, смены сцен) остаются хорошо согласованными.

В результате применения DTW заголовки сцен получают временные метки, которые могут указывать на возможные границы сцен в видео. Это сопоставление можно также использовать, например, для обогащения аудиовизуальных моделей машинного обучения информацией из сценариев (допустим, эмбеддингами на уровне сцен) или для передачи присвоенных аудиовизуальному контенту меток с целью обучения моделей прогнозирования сценариев.

Сопоставление сценария и видео при помощи текста с временными метками, первый эпизод первого сезона «Ведьмака».
Сопоставление сценария и видео при помощи текста с временными метками, первый эпизод первого сезона «Ведьмака».

Мультимодальная последовательная модель

Описанный выше метод — отличное начало решения задачи определения смены сцен, потому что он сочетает в себе простые в использовании предварительно обученные эмбеддинги с хорошо известной техникой динамического программирования. Однако он предполагает наличие высококачественных сценариев.

В качестве дополнительного подхода (который, на самом деле, использует как один из параметров вышеупомянутые сопоставления) можно обучить модель для работы с последовательностями, обученную на аннотированных данных смены сцен. Эта информация, фиксируемая в некоторых из процессов Netflix, является нашим основным источником данных; также существуют публичные датасеты.

С точки зрения архитектуры модель относительно проста — двунаправленная GRU (biGRU), на каждом этапе потребляющая описания кадров и прогнозирующая, находится ли кадр в конце сцены 4. Обогащённость модели достигается благодаря предварительно обученным мультимодальным эмбеддингам кадров; это предпочтительный в наших условиях вариант архитектуры, учитывая сложность получения размеченных данных смены сцен и относительно большой масштаб, с которым мы можем предварительно обучать различные модели эмбеддингов для кадров.

Для эмбеддингов видео мы используем свою собственную модель, предварительно обученную на видеоклипах, сопоставленных с текстом (с тем самым «текстом с временными метками», о котором говорилось выше). Для эмбеддингов звука мы сначала выполняем разделение источника, чтобы отделить звук переднего плана (речь) от фонового (музыки, звуковых эффектов, шума), выполняем эмбеддинг каждого сигнала по отдельности при помощи wav2vec2, а затем конкатенируем результаты.

Мы сравнили способы слияния и на ранних, и на поздних этапах; в первом случае эмбеддинги аудио и видео конкатенируются и подаются в единую biGRU, а во втором модальность каждого элемента входных данных кодируется собственной biGRU, после чего скрытые состояния конкатенируются перед слоем выхода.

  • Наши результаты соответствуют результатам самых современных методов, а иногда и превосходят их (судя по бенчмаркам на основании только модальности видео и наших проверочных данных). Мы проверяем свои результаты при помощи F-1 score для положительной метки, а также выполняем релаксирование результатов проверки, чтобы оценить ошибку на n F-1, то есть, проверяем, прогнозирует ли модель смену сцен в n кадрах эталонных данных. В нашем случае это более реалистичный показатель из-за системы human-in-the-loop, в которой развернуты эти модели.

  • Добавление аудиопризнаков улучшает результаты на 10–15%. Основной причиной колебаний точности является то, на каких этапах (ранних или поздних) применяется слияние.

  • Позднее слияние стабильно на 3–7% лучше раннего. Этот результат кажется логичным — временные зависимости между кадрами, вероятно, специфичны для модальности и должны кодироваться отдельно.

Заключение

Мы разработали две взаимодополняющих методики для определения границ сцен, использующие разнообразные доступные модальности: сценарии, аудио и видео. Следующими логическими этапами могут стать: a) комбинирование этих методик и применение признаков сценариев в обобщенной модели, б) обобщение результатов между множественными задачами референса на уровне кадров, например, классификацией типов кадров и выявления запоминающихся моментов, потому что мы предполагаем, что этот процесс может быть полезен для обучения моделей понимания видео общего назначения для контента большей длительности.

Кроме того, контент большей длительности содержит более сложную структуру нарратива, и мы рассматриваем эту работу как первую в серии проектов, нацеленных на улучшение интеграции понимания нарратива в наши мультимодальные модели машинного обучения.

Примечания

  1. Иногда её называют распознаванием границ (boundary detection), чтобы не путать с методиками сегментации изображений.

  2. Дескриптивные строки (не относящиеся к диалогам), описывающие характерные аспекты сцены.

  3. Для двух источников X и Y, если а) кадр a в источнике X сопоставлен с кадром b в источнике Y, б) кадр c в источнике X сопоставлен с кадром d в источнике Y, и в) кадр c идёт после кадра a в X, тогда г) кадр d должен идти после кадра b в Y.

  4. Мы экспериментировали с добавлением поверх слоя Conditional Random Field (CRF), чтобы обеспечить концепцию глобальной согласованности, но обнаружили, что это не существенно улучшает результаты.

Комментарии (0)