Интерпретация сцены

Интерпретация сцены позволяет разработчикам смешанной реальности использовать структурированное высокоуровневое представление среды, чтобы сделать разработку приложений, учитывающих среду, интуитивно понятной. Понимание сцены делает это, объединяя возможности существующих сред выполнения смешанной реальности, таких как высокоточное, но менее структурированное пространственное сопоставление и новые среды выполнения на основе ИИ. Объединяя эти технологии, осмысление сцены создает представления трехмерных сред, похожих на те, которые вы могли использовать в таких платформах, как Unity или ARKit/ARCore. Точка входа осмысления сцены начинается с наблюдателя сцены, который вызывается приложением для вычисления новой сцены. На сегодняшний день технология может создавать 3 уникальные, но связанные категории объектов:

  • Упрощенные сетки в водной среде, которые определяют структуру плоской комнаты без беспорядка
  • Области плоскости для размещения, которые мы называем Quads
  • snapshot сетки пространственного сопоставления, которая выравнивается с данными Quads/Watertight, которые мы отображаем

Сетка пространственного сопоставления, помеченные плоскостные поверхности, водонепроницаемая сетка

Этот документ предназначен для предоставления обзора сценария и уточнения связей, которые используются для понимания сцены и пространственного сопоставления. Если вы хотите увидеть осмысление сцен в действии, проверка нашу демонстрацию видео Проектирование голограмм — пространственное распознавание:

Это видео было записано из приложения Designing Holograms для HoloLens 2. Скачайте его и насладитесь всеми его возможностями здесь.

Разработка с использованием осмысления сцен

В этой статье рассматриваются только среда выполнения и основные понятия о сценах. Если вам нужна документация по разработке с помощью службы "Распознавание сцен", вас могут заинтересовать следующие статьи:

Обзор пакета SDK для распознавания сцен

Вы можете скачать пример приложения Для распознавания сцены с сайта GitHub:

Пример осмысления сцены

Если у вас нет устройства и вы хотите получить доступ к примерам сцен, чтобы опробовать сведения о сценах, в папке примера ресурса есть сцены:

Пример сцены для распознавания сцен

SDK

Если вам нужны конкретные сведения о разработке с помощью службы "Распознавание сцены", см. обзорную документацию по пакету SDK для осмысления сцены .

Образец

Поддержка устройств

Компонент HoloLens (1-го поколения) HoloLens 2 Иммерсивные гарнитуры
Интерпретация сцены ✔️

Основные сценарии использования

Иллюстрации распространенных сценариев использования пространственного сопоставления: размещение, загораживание, физика и навигация
Распространенные сценарии использования пространственного сопоставления: размещение, загораживание, физика и навигация.


Многие из основных сценариев для экологически безопасных приложений можно решить с помощью пространственного сопоставления и распознавания сцен. Эти основные сценарии включают размещение, окклюзию, физику и т. д. Основное различие между пониманием сцены и пространственным сопоставлением заключается в компромиссе от максимальной точности и задержки к структуре и простоте. Если приложению требуется наименьшая возможная задержка и треугольники сетки, доступ к которым требуется только вам, используйте пространственное сопоставление напрямую. Если вы выполняете обработку более высокого уровня, можно рассмотреть возможность переключения на модель осмысления сцены, так как она должна предоставить вам надмножество функциональных возможностей. У вас всегда будет доступ к наиболее полным и точным данным пространственного сопоставления, так как понимание сцены предоставляет snapshot сетки пространственного сопоставления как часть ее представления.

В следующих разделах рассматривается основные сценарии пространственного сопоставления в контексте нового пакета SDK для распознавания сцен.

Размещение

Понимание сцен предоставляет новые конструкции, предназначенные для упрощения сценариев размещения. Сцена может вычислить примитивы, называемые SceneQuads, которые описывают плоские поверхности, на которых можно разместить голограммы. SceneQuads были разработаны с учетом размещения и описания двухD-поверхности и предоставляют API для размещения на этой поверхности. Ранее при использовании сетки треугольников для размещения приходилось сканировать все области квадроцикла и выполнять заполнение отверстий или постобработку, чтобы определить подходящие расположения для размещения объектов. Это не всегда необходимо для quads, так как среда выполнения осмысления сцены определяет, какие области четырех квадроциклов не были проверены, и делает недействительными области, которые не являются частью поверхности.

SceneQuads с отключенным выводом, который захватывает области размещения для сканированных регионов.
Изображение No 1 . SceneQuads с отключенным выводом и записью областей размещения для отсканированных регионов.

Квадроциклы с включенным выводом, размещение больше не ограничивается отсканированными областями.
Изображение No 2 . Квадроциклы с включенным выводом, размещение больше не ограничивается отсканированными областями.


Если приложение планирует размещать двухмерные или трехмерные голограммы в жестких структурах среды, простота и удобство SceneQuads для размещения предпочтительнее вычисления этих сведений из сетки пространственного сопоставления . Дополнительные сведения по этой теме см. в справочнике по пакету SDK для осмысления сцены.

Примечание Для устаревшего кода размещения, который зависит от сетки пространственного сопоставления, сетку пространственного сопоставления можно вычислить вместе с SceneQuads, задав параметр EnableWorldMesh. Если API распознавания сцен не удовлетворяет требованиям к задержке приложения, рекомендуется продолжать использовать API пространственного сопоставления.

Загораживание

Загораживание пространственного сопоставления остается наименее скрытым способом записи состояния среды в режиме реального времени. Хотя это может быть полезно для обеспечения окклюзии в очень динамических сценах, вы можете рассмотреть понимание сцены для окклюзии по ряду причин. Если вы используете сетку пространственного сопоставления, созданную службой "Распознавание сцен", вы можете запросить данные из пространственного сопоставления, которые не будут храниться в локальном кэше и недоступны из API восприятия. Использование пространственного сопоставления для окклюзии наряду с водонепроницаемыми сетками обеспечит дополнительную ценность, в частности завершение незасканированной структуры помещения.

Если ваши требования могут допускать увеличение задержки при распознавании сцены, разработчикам приложений следует рассмотреть возможность использования сетки "Понимание сцены" и сетки пространственного сопоставления в унисон с плоских представлений. Это обеспечит "лучший из обоих миров" сценарий, где упрощенная водонепроницаемая окклюзии состоит в браке с более тонкой непланарной геометрией, обеспечивая наиболее реалистичные карты окклюзии.

Физика

Понимание сцены создает водонепроницаемые сетки, которые разлагают пространство с семантикой, в частности для устранения многих ограничений физики, которые накладывают сетки пространственного сопоставления. Водонепроницаемые структуры обеспечивают постоянное попадание физических лучей, а семантическая декомпозиция позволяет упростить создание сеток навигации в помещении. Как описано в разделе о окклюзии, создание сцены с помощью EnableSceneObjectMeshes и EnableWorldMesh приведет к созданию наиболее физически полной сетки. Свойство watertight сетки среды предотвращает неудачные тесты попадания на поверхности. Данные сетки гарантируют, что физика взаимодействует со всеми объектами в сцене, а не только со структурой помещения.

Планарные сетки, разлагаемые семантического класса, являются идеальными конструкциями для навигации и планирования путей, устраняя многие проблемы, описанные в обзоре навигации по пространственному сопоставлению . Объекты SceneMesh, вычисляемые в сцене, де-компонуются по типу поверхности, гарантируя, что создание сетки навигации ограничено поверхностями, по которым можно пройти. Благодаря простоте напольных структур динамическое поколение навигационной сетки в трехмерных двигателях, таких как Unity, возможно в зависимости от требований к режиму реального времени.

Для создания точных сеток навигации в настоящее время по-прежнему требуется постобработка, а именно приложения должны по-прежнему проецировать occluders на пол, чтобы навигация не проходила через беспорядок, таблицы и т. д. Самый точный способ сделать это — проецировать данные сетки мира, которые предоставляются, если сцена вычисляется с флагом EnableWorldMesh.

Визуализация

Хотя визуализацию пространственного сопоставления можно использовать для обратной связи среды в режиме реального времени, существует множество сценариев, в которых простота плоских и водонепроницаемых объектов обеспечивает более высокую производительность или визуальное качество. Методы проекции тени и заземления, описанные с помощью пространственного сопоставления, могут быть более приятной, если они проецируются на плоскости, предоставляемые Quads или плоской водонепроницаемой сеткой. Это особенно верно для сред и сценариев, в которых тщательное предварительное сканирование не является оптимальным, так как сцена будет выводить, а полные среды и плоские предположения позволят свести к минимуму артефакты.

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

См. также: