Как мы оживляем презентацию
Наша компания занимается разработкой систем для съемок видео и проведения трансляций и вебинаров. Проект начался в обычной квартире со съемок образовательного проекта Skill Up. Это был некоммерческий проект, поэтому все надо было делать самостоятельно. Зачастую спикер должен был сам подготовиться, провести съемку и смонтировать ролик. Это начало во многом и определило направление развития и особенности нашей системы.
После непродолжительных поисков было решено собрать стеклянную доску и писать на ней маркерами.
И это было хорошее решение. Картинка выглядела естественной, так как преподаватели привыкли писать на доске, а во время написания они смотрели либо на зрителя, либо на то, что пишут.
Но люди пишут, а тем более рисуют, а тем более рисуют красиво не так уж и быстро. Было решено добавить немного картинок. И мы попробовали несколько способов:
- Показывали картинки и текст на телесуфлере. При этом спикер постоянно смотрит в камеру, а объекты просто накладываются при монтаже.
- Отображали полупрозрачные картинки поверх видео и проецировали на стену перед спикером. При этом спикер смотрит на элементы, о которых говорит. Однако направление его взгляда достаточно сильно расходится с ожиданиями зрителя.
- Отображали полупрозрачные картинки поверх видео, но теперь ставили метки на стекле там, где располагаются элементы. Теперь уже лектор смотрит, куда надо, но вот только метки надо ставить для каждого нового объекта и помнить, за что отвечает каждая метка.
- Водили руками в том месте, где ожидается появление объекта, а потом подставляли объекты при монтаже. Но этот вариант оказался крайне трудоемким, как с точки зрения постобработки, так и с точки зрения съемок.
Затем мы провели анализ рынка, который показал, что большинство использует либо «говорящую голову» вместе с презентацией, либо дорогостоящие способы (например, съемки с хромакеем). И мы начали разработку собственного программного продукта. При этом стремились к тому, чтобы спикер просто скачал нашу программу, сделал в ней презентацию, провел съемки в студии, а потом обрезал начало и конец хороших дублей встроенными средствами Windows или YouTube и получил готовое видео. Далее, убирая узкие места, мы смогли начать проводить и видеотрансляции без потери качества.
Рассмотрим как все устроено:
Видеокамера снимает лектора. Видео и звук приходят на локальный сервер, где происходит наложение презентации. Получившийся видеопоток сохраняется на диск и отправляется на вещательный сервер, к которому подключаются зрители. Этот же видеопоток выводится на экран, расположенный перед спикером. Благодаря этому экрану спикер видит себя и элементы, которые его окружают.
Картинка, проецируемая на экраны, искажается так, чтобы у зрителя возникала иллюзия, что спикер смотрит на эти элементы, расположенные на плоскости перед ним. Изображение на экранах выглядит так:
Когда спикер начинает перемещаться, видео на экранах должно искажаться так, чтобы глаза по-прежнему смотрели на объекты на слайде. Ниже показано, как искажается изображение, передаваемое на проекторы, при перемещении человека слева направо.
Видно, что изображения на левом и правом проекторах искажены по-разному. Это происходит из-за того, что проекторы расположены под разными углами и на различных расстояниях от экранов.
Система позволяет работать с экранами различной формы. Например, у нас есть студия, в которой проецирование происходит сразу на стены, что удобно для маленьких помещений:
Теперь появилась возможность смотреть на объект, показывать на его элементы руками и писать маркером во время съемок. Но хотелось добавить больше возможностей взаимодействия, и тут наш выбор пал на Kinect v2. Теперь у нас в распоряжении появились координаты головы, рук и информация о трех жестах: «кулак», «ладонь» и «лассо». Далее координаты из Kinect надо было преобразовать в координаты основной камеры. И тут на помощь пришли OpenCV и Хабр habrahabr.ru/post/272629. Большое спасибо автору за толковую статью. Хотелось бы поделиться опытом: используйте шахматную доску большого размера. Сейчас у нас используется доска 6×9 клеток и размером А0. Это увеличивает точность преобразования и существенно ускоряет сходимость алгоритма.
Сначала были добавлены простые возможности: рисовать или стирать с помощью руки, перемещать объекты, скрывать их или наоборот делать видимыми. Далее были созданы активные элементы: «карта», по которой можно перемещаться и изменять масштаб, «текст» с возможностью вертикальной перемотки и «браузер», которым можно пользоваться практически так же, как в обычном тач-интерфейсе.
И вот что получилось:
А можно добавить и стеклянную доску:
До появления активных элементов пользователи создавали презентации в Power Point и импортировали в Jalinga Studio с помощью встроенного механизма. Но эти изменения потребовали от нас создания полноценного встроенного редактора для создания презентаций.
Важной чертой системы является возможность самостоятельно управлять процессом съемки. С помощью джойстика и жестов рук спикер управляет всеми этапами процесса съемки или трансляции.
У спикера есть множество возможностей по управлению в процессе съемки: начинать и заканчивать запись видео, помечать удачные дубли и переходить к съемкам следующей сцены, рисовать, стирать, взаимодействовать с активными элементами, управлять обратной связью и т.д.
На том, как устроена программная часть, мы подробнее остановимся в следующих статьях. Пока только упомянем, что система не требует большого количества ресурсов, и в качестве сервера может использоваться компьютер со следующей комплектацией: i5–4460, DDR3 8 ГБ (2×4ГБ), GeForce GTX750Ti, AVerMedia Live Gamer HD.
Так, в общих чертах, мы постарались оживить уже привычные всем презентации. В ближайшее время мы планируем сосредоточится на новых способах взаимодействия с аудиторией при проведении трансляций и вебинаров. А пока будем рады комментариям и вопросам.