Previous Entry Share Next Entry
HoloLens
tree
palmas1
Оригинал взят у qvb в HoloLens
Недавно я начал экспериментировать с HoloLens, и решил написать небольшой обзор.

Во-первых дисклеймер. Мои эксперименты с HoloLens сугубо частные, на работе я занимаюсь совсем другими вещами. Я просто купил HoloLens лично для себя, в качестве интересного гаджета, и для самообразования.

Что такое HoloLens
HoloLens – очень интересный девайс. Это первая система реализующая довольно достоверную “дополненную реальность” – виртуальные обьекты помещенные в реальный мир, с которыми можно взаимодействовать.


С точки зрения юзера виртуальные обьекты выглядят 3-х мерными и абсолютно реальными – их можно обойти вокруг, рассмотреть с разных сторон, можно подойти ближе или отойти дальше – все выглядит абсолютно реально. Отсюда и название – HoloLens. Кроме того виртуальные обьекты можно цеплять к реальным физическим предметам – к столу, к стенам комнаты, к любым другим предметам, и виртуальные обьекты остаются “приклееными” там где юзер их оставил – можно оставить такие обьекты в комнате, потом вернуться на другой день и они все будут на своих местах.

С точки зрения юзера это все выглядит как чистая фантастика – как самая настоящая виртуальная реальность. HoloLens все еще в стадии инженерных дев китов – девайс работает, пригоден для разработки программ, и вполне реален, хотя есть некоторые шероховатости (главная – ограниченное поле зрения), да и цена пока что совсем не децкая ($3000), но до реальных коммерческих образцов уже явно недалеко.


HoloLens - Железо

Спецификации железа у HoloLens впечатляют – 6 (!) камер, в том числе 3-мерные инфракрасные (фактически – втроенный Кинект), стереомикрофоны и стереодинамики, всевозможные датчики (акселерометры и т.п.), Bluetooth, WiFi (ac), интеловский процессор с 2 гигабайтами памяти и 64 гигабайтами флэша, специальный “голографический” процессор и проекторы трехмерных изображений. Все это упаковано в довольно компактный носимый девайс в виде полу-очков/полу-шлема.


Батареи хватает на 2-3 часа работы, но можно пользоваться подключив к дополнительной батарее через обычный micro-USB кабель, так что особых проблем с этим нет.




HoloLens - как это работает
Основа HoloLens – это проекторы трехмерных изображений + система 3х мерного зрения, соединенные специальным "голографическим процессором".


Ключевая часть HoloLens – - это проекторы трехмерных изображений. Технически это реализовано как очки из специального материала и миниатюрные видеопроекторы (отдельный проектор на каждый глаз). Видеопроекторы позволяют проецировать цветные изображения поверх того что видит человек. Очки HoloLens вполне прозрачные - сами очки вообще прозрачные, внешний защитный козырек дымчатый - судя по всему это сделано чтобы спрятать камеры и прочую сложную внутренюю систему. Дымчатый козырек смотреть не мешает даже в полутемном помещении.

Поскольку видеопроекторов два (по одному на глаз), система генерирует 3-х мерные изображения путем создания соответствующей картинки для каждого глаза. В каком-то смысле это похоже на обычные очки виртуальной реальности, но HoloLens позволяет проецировать синтезируемое изображение поверх картинки реального мира чего обычные VR очки делать не могут.

Второй ключевой элемент HoloLens – это система 3-х мерного зрения и определения карты помещения (и предметов в нем) в реальном времени. 5 из 6 камер HoloLens именно этим и занимаются – они постоянно “смотрят” вокруг юзера снимая 3-х мерную карту окружающего. Фактически это Кинект, но миниатюрный и работающий “наоборот” – камеры отслеживают не игрока, а пространство вокруг игрока. Камеры инфракрасные и работают даже в темноте.

Информация с камер обрабатывается “голографическим процессором” который строит карту помещения и он же очень точно определяет движения головы юзера. Это и позволяет HoloLens очень точно привязывать проецируемые виртуальные обьекты к реальным предметам в комнате. Точность привязки виртуальных обьектов впечатляет – даже если нарочно быстро двигать головой не удается заметить ни малейшего “дрожания” виртуальных обьектов.

Эта же система позволяет создавать активные виртуальные обьекты – программы которые не только двигаются, но и “видят” окружающее и могут правильно взаимодействовать с окружающим (например – виртуальный мяч может катится по столу и потом упасть на пол достигнув края стола). Это производит совершенно ошеломляющее впечатление на юзера, создавая эффекты вроде открывающегося портала в стене откуда вылезают монстры и т.п.

Остальные части системы вполне обычны и похожи на начинку смартфона – мобильный процессор, память, флэш,акселерометры и прочие датчики, WiFi/Bluetooth и т.п.


Вот приблизительно так оно и выглядит.

Голография

В разных статьях ревьюверы спорили использует ли HoloLens голографию. Как работают видеопроекторы я не знаю, может быть они и используют голографию для проецирования изображения в глаз (а может и нет), но “голографическая” сущность HoloLens в другом – создаваемые программы для HoloLens являются 3х мерными исскуственными созданиями сущестующими в реальном 3х мерном мире.
Микрософт называет их “голограммами”, хотя ИМХО эти обьекты гораздо больше чем голограммы – они скорее являются виртуальными роботами способными передвигаться в пространстве дополненной виртуальной реальности “понимая” реальное пространство вокруг них, и которые могут интерактивно общаться с юзером (посредством изображения, звука и т.п.).


Программирование для HoloLens

Программы для HoloLens могут быть как обычные, плоские (HoloLens может использовать почти любые обычные программы из Win10 Store), так и специальные, сделанные для HoloLens - Микрософт называет их голограммами.


Программирование для HoloLens интересно и необычно, поскольку нужно создавать программы для дополненной реальности. Хотя технически программирование для HoloLens довольно просто, и есть хорошие тулзы.

3-х мерная программа для HoloLens как и обычные GUI программы состоит из двух основных частей - визуализации и из бизнес-логики программы. Поскольку 3-х мерные программы "живут" в 3-х мерном мире, визуализация должна быть 3-х мерной. Создание таких визуализаций практически аналогично созданию визуальных обьектов в играх - создается 3-х мерный обьект, на него накладываются текстуры, к обьекту добавляются куски кода для создания движения и т.п.
Проще всего это делать с помощью игрового движка. HoloLens поддерживает специальную Beta-версию Unity, и желаемые 3-х мерные обьекты можно создавать используя средства Unity - что сильно облегчает дело. Кроме того - использование Unity позволяет напрямую использовать всевозможные текстуры, дизайны и готовые 3х мерные обьекты из Unity Store - там есть огромный выбор практически на любой вкус.

Вторая часть программы для HoloLens - это логика программы. Эта часть гораздо сложней и абсолютно новая. Главная новизна тут - то что программа может использовать 3х мерную карту помещения, и собственно для оптимальных результатов программа должна использовать эту 3х мерную карту. Например - если мы создаем виртуальный мяч который должен катиться по столу, то мы должны проанализировать карту помещения, поместить виртуальный мяч на подходящую плоскую поверхность, и потом правильно отрабатывать физические законы реального мира - мяч должен катится, если достигает края стола - упасть на поверхность расположенную ниже, мяч должен правильно реагировать на препятствия и т.п.

Во многом это похоже на программирование ботов и неписей для игр, только игровой мир тут является реальным миром.

Плюс к этому есть и всякие другие сенсоры и девайсы которые может использовать программа - например программа может интерпретировать картинку которую видит юзер (есть отдельная камера для этого), программа может реагировать на голосовые команды (в HoloLens встроен довольно качественный интерпретатор речи на основе Кортаны), программа может общаться с юзером голосом и т.п.
В общем - программа для HoloLens - это может быть некий аналог неписи (NPC - Non-Player Character), только действющий в реальном мире.

Другой совершенно новый класс программ - это программы которые добавляют какие-то изображения и информацию к предметам реального мира. Например - если мы хотим показать расположение проводки в стене, то программа должна будет создать картинку этой проводки как полу-прозрачное изображение, и привязать эту картинку к реальной стене. Это на самом деле довольно просто сделать - можно просто создать плоскую картинку проводки, привязать картинку к якорю на реальной стене в нужных координатах, и HoloLens сделает остальное - будет масштабировать и изменять картинку при движении юзера и т.п.
При желании можно так же сделать и 3х мерную картинку проводки, по той же схеме.

Или например программа может выполнять распознавание образов и узнавание лиц используя камеры HoloLens, может вытягивать информацию об обьектах из сети (из того же Фейсбука например), и показывать информацию об обьектах и людях вокруг создавая плавающие "bubbles" привязанные к реальным обьектам/людям. Приблизительно как в SciFi фильмах.


Что умеет HoloLens
Основа возможностей HoloLens – создание дополненной реальности. И это может быть использовано для всяких разных вещей.


Например:

  • Показывать покупателям как будут выглядеть всякие опции, обивка, цвета в покупаемой машине и т.п. (это на самом деле огромный и очень выгодный рынок)

  • Показывать заказчикам как будет выглядеть дизайн помещений

  • Как рабочий инструмент архитекта/дизайнера/конструктора

  • Как рабочий инструмент монтажника/ремонтника/и т.п., показывая документацию, гайды и т.п. во время работы - это уже используют на МКС, туда отправили несколько штук HoloLens.

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

  • Виртуальные совещания. Мирософт это тоже показывал в демо видео – система может создавать аватар-образ удаленного собеседника и помещать его в дополненную реальность вокруг. Это намного лучше и эффективней чем обычная видео-конференция, тем более что все участники могут видеть то же самое, и могут вместе работать.


  • Истинные 3х мерные фильмы. Сегодняшние 3D фильмы ведь на самом деле таковыми не являются - они просто добавляют ощущение обьема и некоторую глубину изображения. Истинные 3х мерные фильмы - это когда можно гулять "внутри" фильма, можно смотреть сцены с любой точки, можно подойти и рассмотреть что-либо внутри и т.п. Это создает полноценный эффект присутствия. Микрософт кстати дает несколько демо-роликов и программ которые именно это и показывают.




Scott Kelly with HoloLens at the International Space Station

Но имхо еще более интересная возможная область применения – в качестве “бадди-компа”, усиливающего возможности и способности человека. Это огромная и многообещающая область, HoloLens в каком-то смысле – это примитивный прообраз того что будет в ближайшем будущем.
Это сейчас HoloLens довольно большой по размерам девайс с ограниченными возможностями и со временем работы на батарее всего в несколько часов. В ближайшие годы наверняка появятся девайсы аналогичные HoloLens, но размером с обычные очки, и с гораздо бОльшими возможностями. Несколько примеров для иллюстрации чем HoloLens может стать:


  • HoloLens может показывать контекстную информацию о людях и предметах в зоне видимости (просто распознавая лица и изображения, и вытягивая информацию из сети)

  • Подсказки в реальном времени – например GPS навигатор который будет показывать дорогу прямо поверх реальной картинки, и который заодно будет обращать внимание водителя на возможные помехи движению и т.п.

  • HoloLens в будущем сможет давать ночное зрение – просто инфракрасная камера, с изображением накладываемым поверх обычной картинки. Собственно это уже можно технически реализовать, просто добавив в HoloLens FLIR камеру.

  • И инфракрасным зрением дело не ограничивается – например можно показывать карту электромагнитных полей (что даст изображение скрытой электропроводки), или например ультразвуковое зрение (можно видеть структуры внутри стен) и тому подобное.

  • Аналогично он же может давать сверх-зрение – возможность увеличить интересующие детали прямо в реальном времени

  • Возможность мгновенной видеосвязи в дополненной реальности – можно в любой момент связаться с удаленным абонентом и при этом оба будут видеть ту же картинку. В каком-то смысле это становится близко к исскуственной телепатии.


Понятно что это только начало.


.


?

Log in

No account? Create an account