Разработка модуля автоматизации видеомонтажа в прямом эфире (командный проект)

Материал из Wiki - Факультет компьютерных наук
Версия от 18:59, 14 сентября 2017; Dkorolev (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Компания On-Air.Pro
Учебный семестр Осень 2017
Учебный курс 3-й курс
Максимальное количество студентов, выбравших проект: 3-10



Что это за проект?

Если вы снимаете какое-нибудь событие (конференцию, защиты выпускных работ или другое разговорное событие) на одну камеру, то запись, монтаж и трансляция особой проблемы не представляют -- просто нечего монтировать, разве что подрезать. Транслировать такое событие тоже просто. Стоит добавить к этой одной камере хотя бы захват экрана презентации, начинаются сложности. А если камер несколько, выступающий общается с залом, из президиума что-то комментируют -- здесь обычно нужен режиссер. На входе у режиссера несколько потоков, он выбирает, какой из потоков пойдет в запись/трансляцию в каждый момент времени. Критерии выбора потока зависят от а) его содержательности и актуальности для зрителя в данный момент и б) от технической и эстетической готовности. Содержательность -- это значит, что показывают обычно либо говорящего, либо то, о чём он говорит (презентацию), либо и то и другое сразу (картинка в картинке). Техническая пригодность -- значит, камера в фокусе, не дрожит и готова передавать поток без помех. Эстетическая готовность -- камера наведена на объект съёмки с соблюдением требуемой композиции кадра и в допустимых пределах экспозиции и цветопередачи.

Переключение источников видеопотоков может быть автоматизировано и это реализовано в конференц-системах, где камеры поворачиваются на говорящего в микрофон на определенном месте. Но такие системы имеют простой алгоритм, основанный на предварительной настройке позиций камер на оснащённые места с индивидуальными микрофонами. В нашем случае нет возможности использовать дополнительные датчики и заранее настраивать камеры на определенные точки, задачу автоматизации режиссуры нужно решать для абстрактного случая "разговорного события". Если общие правила монтажа и съёмки довольно легко описываются (например, длительность кадров в пределах 5-20 секунд, переходы по крупности плана -- через один, съёмка по правилу третей, при этом поворот головы к центру кадра, и т.д.), то выбор источников для включения и конкретных моментов для переходов -- это задача творческая и для ее решения могут привлекаться как обычные формальные методы (изменение содержания слайда, детекция говорящего человека на крупном плане и т.д.), так и нейросеть.

Чему научатся студенты? Что самое интересное в проекте?

  • Распознавание движений и мимики человека
  • Практика в OpenCV
  • Составление формальных критериев для съёмки и монтажа
  • Амбициозная задача -- лишить режиссеров работы, где это возможно! Пусть кино снимают, а здесь и машина управится.

Организация работы (Как студенты будут работать в команде?)

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

Далее организуется slack и трекер (обычно trello), где ведется рабочее общение и трекинг задач. Встречи -- по договоренности (на первых порах это понадобится точно) на Кочновском, альтернативный и более частый вариант -- аудио/видеосвязь. Удобно, т.к. можно собираться по актуальному вопросу безотлагательно и в любое время в любом составе.

Компоненеты (Из каких частей состоит проект?)

На вхоже видеопотоки RTSP, на выходе -- решения авторежиссера, отправленные в указанном формате (например, через API видеомикшера). Сервис авторежиссера должен иметь REST API для управления (корректировки правил, указания источников и т.д.).

Веб-интерфейс в данном случае не обязателен.

Распознаватель получает из потоков необходимую для принятия режиссерских решений информацию.

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

Какие будут использоваться технологии?

  • Распознавание образов (OpenCV)
  • Возможно: нейросети

Какие начальные требования?

  • Программирование C++ или Python, желательно OpenCV

Темы вводных занятий

1. Архитектура проекта. API, внешние связи и зависимости.

2. Специфические технологии и используемые инструменты.

3. Доступные ресурсы, организация доступа.

4. Разделение ролей

Критерии оценки

Про работу и оценки почитайте здесь: https://d.pr/143bq

Постарайтесь отнестись к этому с пониманием. Очень часто бодрое начало длится 3-4 недели и потом наступает тишина. Очень хочется, чтобы проекты доводились до запуска, а вы получали опыт успешной разработки и, возможно, работу в этих проектах уже в другом статусе. Но пока это для вас учебная работа, поэтому будем придерживаться описанных по ссылке правил и критериев. Спасибо!

Похожие проекты

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

Этот проект на Ярмарке проектов ВШЭ: https://pf.hse.ru/208035106.html

Контактная информация

Денис Королев,

https://www.hse.ru/staff/dkorolev (там есть ссылки на соцсети)

+7 903 610 3290 (месенджеры по вкусу)

d.korolev@gmail.com