В конце апреля корпорация Microsoft анонсировала вакансию главного разработчика ПО для некоего проекта в рамках своего подразделения Startup Business Group. Соискателю сулят возможность переопределить способы общения между людьми (посредством телекоммуникаций, естественно), создавая возможность в буквальном смысле «виртуально присутствовать» в конференц-зале, например, физически находясь на другом конце света. Подразумевается, что с помощью такого виртуального двойника участник встречи сможет оглядываться по сторонам, поворачиваться к коллегам и даже перешёптываться с ними.
Само собой напрашивалось предположение, что речь идёт о голографических «аватарах» для телеконференций (тем более что в тексте вакансии прямо указывалось, что разработанные функции в дальнейшем планируется интегрировать в Skype). Собственно, ровно в таком ключе СМИ и блоги информацию и подали. Что было не совсем правомерно.
Около года назад стало известно, что в Microsoft Research ведутся разработки проекта под названием Viewport. В описании проекта говорится, что Viewport должен будет представлять собой полностью распределённую систему иммерсивной (то есть формирующей у каждого участника эффект присутствия друг друга) конференц-связи. Образ каждого участника захватывается посредством системы, включающей три цветные камеры, три инфракрасных камеры, а также два инфракрасных лазерных проектора, идентичных тем, что используются в Kinect. Интересно, что использовать Kinect с его собственными камерами не получается, поскольку, как отмечается в описании, синхронизировать между собой три таких контролера невозможно, а вдобавок они склонны мешать друг другу.
Благодаря этим проекторам формируется точечный растр, с помощью которого затем в режиме реального времени реконструируется точная 3D-модель участника; для этого разработан специальный алгоритм, который позволяет в режиме реального времени представлять облик человека в виде разрежённого облака точек, причём для этого нужна лишь одна рабочая станция.
Один из ключевых новаторских аспектов в нашем подходе заключается в использовании разрежённого облака точек вместо многоракурсной стереосъёмки для реконструкции геометрии, что позволит значительно ускорить 3D-реконструкцию и рендеринг. Вдобавок мы представляем схему «виртуального рассаживания», при которой облака точек размещаются таким образом, чтобы сохранять то же расположение участников конференции относительно друг друга, какое имело бы место при встречах в реальности. Это достигается путём тонкой калибровки, вследствие которой строго поддерживается взаимное расположение взглядов участников.
Это облако точек, а также три цветовых видеопотока и три видеопотока, содержащих двоичные маски, полученные с помощью инфракрасных камер, передаются по сетям другим участникам виртуальной встречи — на их рабочие станции. На этапе приёма происходит разворачивание сжатых данных, при этом разрежённое облако точек интерполируется в плотное посредством алгоритма регрессии.
Двоичные маски используются для общего улучшения качества будущего изображения. Плотные облака точек затем преобразуются в треугольные меши. После этого запускается алгоритм размещения этих мешей в общем виртуальном пространстве. И три (или более) виртуальных двойника участников телеконференции внимательно смотрят друг на друга: положение глаз всех участников «виртуальной» конференции постоянно отслеживается, и виртуальное пространство, в котором происходит «встреча», рендерится для каждого из них с учётом перспективы, так что в точности воспроизводится и параллакс — изменение видимого положения «собеседников» относительно удалённого фона в зависимости от положения наблюдателя.
Не обойдена вниманием и аудиосоставляющая: разработчики проекта предполагают использовать алгоритмы пространственного позиционирования звука, так, чтобы усиливать иллюзию присутствия: голос каждого участника конференции должен будет исходить в точности из его виртуального рта.
В итоге каждому из участников конференции потребуются две рабочие станции, одна из которых занимается формированием «отправного сигнала» (то есть облака точек), а вторая — рендерингом. Разработчики проекта Viewport использовали машины, оборудованные сразу двумя шестиядерными серверными процессорами Xeon Six-Core X5690 с тактовой частотой 3,46 ГГц, оснащённые 24 гигабайтами памяти и видеокартами NVidia Geforce GTX 580. Топ-модели, в общем.
Подробное техническое описание проекта приводится в объёмном, изобилующем формулами документе, доступном здесь. Слово «голограмма» в нём не употребляется ни разу.
Может сложиться впечатление, что исследователи из Microsoft Research, сами того не желая, всем запудрили мозги. Но никакого обмана тут не было и в помине: журналисты ухватились за термин «голограммы», однако, к сожалению, речь тут идёт исключительно о конференциях в виртуальном пространстве, а не о встречах, где люди и высокодетализированные голограммы смогут сидеть за одним столом и в случае надобности перешёптываться друг с другом.
В связи с этим возникает вопрос осмысленности всей затеи. Microsoft, впрочем, далеко не единственная компания, которая работает в этом направлении: аналогичные прототипы уже представлены Hewlett-Packard (система Halo) и Cisco (Telepresence). Главным преимуществом своего Viewport Microsoft считает возможность точного позиционирования моделей так, чтобы сохранять взаимное расположение глаз собеседников: если им нужно смотреть друг на друга, то они смотрят друг на друга, а не в камеру, например.
Интересен и другой аспект: Viewport предполагает, что в режиме реального времени формируются точные и высокодетализированные 3D-копии собеседников. На приведённом выше скриншоте, конечно, видно, что «виртуальные» собеседники представлены трёхмерной графикой, причём не идеального качества. Но Viewport — это всё ещё прототип. Интереснее всего будет посмотреть, что произойдёт через пару лет и насколько удастся сделать этих «виртуальных двойников» жизнеподобными.
Специалисты по компьютерной графике много лет бились над проблемой «зловещей долины»; в последние годы наметилось её преодоление, хотя бы и частичное.
И уж во всяком случае о том, чтобы конструировать полностью жизнеподобных компьютерных двойников любого человека в режиме реального времени, и речи не шло.
Получение «фотореалистичного» (видеореалистичного) 3D-изображения живого человека так, чтобы его невозможно было отличить от живого, с использованием относительно минималистичного набора инструментов (две рабочие станции вместо крупной рендерфермы) и в реальном времени — это и впрямь окажется прорывом. При условии, что проект будет реализован до конца.