Разработка модуля автоматизации видеомонтажа в прямом эфире (командный проект)
Компания | 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://www.hse.ru/staff/dkorolev (там есть ссылки на соцсети)
+7 903 610 3290 (месенджеры по вкусу)
d.korolev@gmail.com