Команды Daydream Labs, Google Research и YouTube объединились для решения социальной проблемы: в шлемах виртуальной реальности наши лица наполовину закрыты корпусами устройств, что лишает возможности видеть глаза пользователей, снижает доверие между людьми, негативно отражается на качестве взаимодействия. Это особенно ярко проявляется в трансляциях ВР-игр через смешанную реальность — способе показать и настоящего игрока, и его виртуальное окружение с помощью зелёного экрана, камеры и системы трекинга.
Чтобы зрители могли видеть лицо пользователя, специалисты отдела Google VR применили технологии машинного обучения, компьютерного зрения и передовой визуализации с модифицированным шлемом Vive.
Запись 3D-модели лица
Первым шагом стало построение динамической трёхмерной модели лица пользователя с его мимическими движениями, такими, как моргание, подмигивание и взгляды в разные стороны. Процедура создания модели наиболее понятна владельцам Xbox c Kinect, которые хоть раз заводили 3D-аватар. Такие аватары смогут делать смартфоны с Tango и, вероятно, новые iPhone.
Процесс записи модели включает начальный этап, в котором пользователь сидит перед камерой с датчиком глубины и следит глазами за маркером, перемещающимся по экрану. Калибровка проводится однократно и сейчас занимает меньше минуты. Создаётся база данных текстур и форм для разных положений глаз и век — в дальнейшем она позволит генерировать их сочетания, делая модель естественной и живой.
Совмещение модели, окулографии и картинки с внешней камеры
Далее инженеры использовали Vive с модификацией от SMI, которая позволяет отслеживать движения глаз. Сегодня серийные шлемы, за исключением FOVE 0, на такое не способны, но мы ожидаем появления этой функции в большинстве устройств на рынке в течение нескольких ближайших лет. Данные с модуля SMI позволяют системе в реальном времени решать, какое сочетание графических элементов для отображения лица использовать в определённый момент.
Внешняя камера синхронизирована с картинкой в шлеме. Пользователь вырезается из кадра и вставляется в картинку с компьютера. Здесь важна точность калибровки систем координат камеры и шлема, которая производится вручную в несколько этапов. Процесс был оптимизирован добавлением контрастного маркера на переднюю панель шлема. Затем на полученное изображение накладывается модель лица. Чтобы «снять» шлем, нужно точно выравнивать модель лица по положению видимой его части в потоковом режиме.
Компоновка и визуализация
Само по себе изображение с окулографических камер недостаточно детальное для прямой трансляции — эти камеры предназначены не для съёмки красивого видео, а для быстрой фиксации движений. Потоковое сочетание этих данных с динамической моделью лица и их наложение на картинку с внешней камеры даёт итоговую модель пользователя без шлема (или, если точнее, с прозрачным шлемом). Для более плавной передачи движений может применяться вставка кадров, а чтобы избежать критической ошибки в разнице между освещённостью 3D-модели и видимой части лица, применяется коррекция света и растушёвка.
Но почему шлем не снимается совсем? Дело в эффекте «зловещей долины», который проявляется в неприязни и отвращении к куклам, роботам или другим моделям, очень похожим на людей, но отличающимся какой-либо деталью. Это работает при мелких несоответствиях реальности и вызывает чувства дискомфорта и страха. Дело в том, что процесс наложения модели на лицо точен лишь до определённого предела, а границы шлема помогают скрыть ошибки.
Первоначально решение планировалось применять только для записи и стриминга игр, но со временем инженеры увидели потенциал технологии для социальной виртуальной реальности. Google заверяет, что это лишь начало работы над проектом.
Не пропускайте важнейшие новости о дополненной, смешанной и виртуальной реальности — подписывайтесь на Голографику в ВК, Twitter и Facebook!
Далее: Valve добавила в SteamVR возможность транслировать игры в прямом эфире
По материалам Google Research (1 и 2)