Содержание
Apple ARKit — CNews
Разделы
Индексная книга CNews*
Все категории 108043 ▼
ИКТ 8798
Организации 6842
Ведомства 1343
Ассоциации 707
Технологии 3047
Системы 18994
Персоны 42773
География 1713
Статьи 1284
Пресса 914
ИАА 597
НИИ, ВУЗы и библиотеки 1729
Мероприятия 824
по дате
/
упоминаниям в текстах
12.12.2022 | В Москве протестируют AR-экскурсию по Никольской улице 1
| |
18.08.2022 | «Сбер» и Шереметьево дополнили AR-навигацией мобильное приложение аэропорта 1
| |
31. 03.2022 | Сергей Костин и Айжаркын Бурканова — Практически все бизнес-процессы переводятся на мобильные платформы 1
| |
20.01.2021 | Abbyy FineScanner AI позволит найти документ в галерее смартфона и подготовить его к печати 1
| |
17.11.2020 | Как работают умные линейки и рулетки в современных смартфонах? 1
| |
07. 06.2018 | Apple запретила частным лицам писать приложения VPN для iPhone и iPad 1
| |
05.06.2018 | Новая iOS 12 «удвоит производительность» старых iPhone и iPad 1
| |
02.02.2018 | Смартфон для VR. Выбор ZOOM 1
| |
16. 10.2017 | Самые быстрые: топ-10 наиболее производительных смартфонов 1
| |
25.09.2017 | Abbyy добавила в мобильные приложения возможности iOS 11 1
| |
20.09.2017 | Вышла новая ОС для iPhone и iPad: Новый дизайн, функции и баги 1
| |
04. 07.2017 | В новом iPhone вместо сенсора отпечатка появится сканер лица и глаз 1
| |
27.06.2017 | Apple допустила до тестирования iOS 11 всех желающих 1
| |
07.06.2017 | Новая iOS 11 удаляет с iPhone приложения, чтобы расчистить память 1
|
Публикаций — 14, упоминаний — 14
Apple ARKit упоминается на CNews совместно со следующими персонами и организациями:
- «>ИКТ
- Организации
- Ведомства
- Технологии
- Системы
- Персоны
- География
- Статьи
- Пресса
- ИАА Конкурсы и награды»>Мероприятия
AR — Augmented Reality — Дополненная реальность — Расширенная реальность 1253 |
Smartphone — Смартфон — Коммуникатор 21269 |
ОС — Операционная система — OS — Operating system 21855 |
MLOps — MLOps — Machine learning operations — Машинное обучение — AutoML — Автоматизированная подготовка данных 3257 |
VR — Virtual Reality — Виртуальная реальность — Искусственная реальность 2283 |
CPU — Central processing unit — ЦПУ — Центральный микропроцессор — Центральное процессорное устройство 19169 |
Interface — Интерфейс — Комплекс средств для взаимодействия двух систем друг с другом 17265 |
IAM — Identity and Access Management — Authentication Management Systems — Identity management, IDM — Управление учётными данными, идентификацией и доступом — Customer Identity and Access Management, CIAM — Управление идентификационными данными 9000 |
WWW — World Wide Web — Web — Всемирная паутина — Internet — Интернет 79001 |
Нейросеть — Neural Network — Искусственная нейронная сеть — Artificial Neural Network — Нейросетевые технологии — Neural network technologies 1452 |
Искусственный интеллект (ИИ) — Artificial intelligence (AI) — Artificial General Intelligence (AGI) 8043 |
Цифровая трансформация — Digital Transformation — Digital IQ — Цифровизация — Цифровое предприятие — Диджитализация — Цифровые технологии в бизнесе — Цифровое пространство — Цифровая зрелость 38618 |
Gadget — Гаджет — Девайс — небольшое устройство, предназначенное для облегчения и усовершенствования жизни человека — цифровые товары 6301 |
Оцифровка — Digitization 3729 |
Аккумулятор электрический — Power Bank — химический источник тока многоразового действия, который может быть вновь заряжен после разряда 8413 |
Чип — Микрочип — Чип-имплантат- Интегральная микросхема 6015 |
Instant Messenger — Мессенджер — IM-системы для обмена мгновенными текстовыми, аудио и видео сообщениями 4353 |
MedTech — Medical (MedTech, HealthTech) technology — МедТех — Цифровизация здравоохранения — Цифровые медицинский инструменты — Медицинские информационные продукты — e-Health — Электронное здоровье — Медицинская информатика — Digital Health — Цифровая мед 3102 |
Соцсеть — Социальная сеть — Social Networks 8844 |
API — Application Programming Interface — Программный интерфейс приложения 2934 |
Дисплей — Монитор — Display — Monitor 11754 |
Браузер — Веб-обозреватель — Web-browser 8202 |
Мобильное приложение — Mobile app — Мобильные решения — Мобильные сервисы 7777 |
СЭД — Система электронного документооборота — ЭДО — Электронный документооборот — СЭДД — система электронного документооборота и делопроизводства — Безбумажное делопроизводство — Безбумажный офис — Автоматизация канцелярии — Electronic document management 10738 |
Удаленная работа сотрудников (удалёнка) — Мониторинг удаленно работающего персонала — Дистанционная работа — Remote work 10873 |
EMM — Enterprise Mobility Management — MDM — Mobile Device Management — Управление корпоративными устройствами и приложениями — BYOD — Bring Your Own Device — Корпоративная мобильность — Защищенная мобильность — «мобилизация» 13560 |
RAM — Random Access Memory — Память с произвольным доступом — Оперативное запоминающее устройство (ОЗУ) 8424 |
Голосовой роботизированный помощник — Voice assistant — Интеллектуальные помощники 2147 |
Видеоконтент — видеоролик — видеозапись — видеоизображение — видеоблог — video content — video blog 12497 |
ИТ-экосистема — ИТ-ландшафт — ИТ-архитектура — Информационная инфраструктура — ИТ-инфраструктура — ИКТ-инфраструктура — Информационно-телекоммуникационная инфраструктура, ИТКИ — Программно-аппаратный комплекс, ПАК 52947 |
AMOLED — Active Matrix Organic Light-Emitting Diode — Активная матрица на органических светодиодах — POLED 1068 |
Мобильная связь — Мобильный телефон — Сотовая связь — 5G/4G/3G/2G — поколения мобильной телефонии 24838 |
File Manager — Файловый менеджер 182 |
Standalone — Коробочное решение — Коробочный программный продукт — «из коробки» — готовое решение 3226 |
Мобильные системы — Мобильные технологии — Мобильные, портативные, компактные устройства, миниатюризация — Mobile, portable devices, systems 12584 |
Cloud Computing — Cloud Solutions — Облачные технологии — Облачные вычисления — Облачная инфраструктура — Облачная трансформация 17023 |
Спутниковая связь — Satellite Communication — Спутниковые технологии — Satellite Technologies — Космическая система связи — Space Communication System 6310 |
GPU — Graphics processing unit — Графический процессор — Видеокарта, видеоадаптер, видеоплата, графический адаптер, графическая плата, графическая карта, графический ускоритель — vGPU — Виртуальный графический ускоритель 2863 |
UX/UI — User Experience / User Interface design — Клиентский опыт и дизайн интерфейса 3487 |
PC game — ПК игры — компьютерные игры — Игровая индустрия — Игры и развлекательные приложения для геймеров 15975 |
MARKET.
CNEWS
Apple представляет ARKit 2 — AppTractor
Сегодня компания Apple представила ARKit 2 — платформу, на которой разработчики смогут создавать единые пространства дополненной реальности и постоянные объекты с привязкой к конкретным местам, а также задействовать распознавание объектов и отслеживание изображений. Теперь приложения дополненной реальности станут ещё более динамичными. Компания Apple также впервые представила приложение Measure для iOS, которое будет задействовать дополненную реальность для быстрой оценки размеров реальных объектов, и новый открытый формат файлов .usdz для iOS 12, созданный для ещё более тесной интеграции дополненной реальности в iOS и доступа к AR-объектам из любых приложений Apple.
С момента выпуска комплекта ARKit прошлой осенью компания Apple активно расширяла возможности дополненной реальности, доступные разработчикам. Новый комплект стал уже третьим выпуском ARKit. Он даёт разработчикам инструменты для создания приложений, помогающих пользователям iOS по-новому взглянуть на мир, работать эффективнее и увлекательнее.
ARKit 2
Единые пространства дополненной реальности в ARKit 2 делают дополненную реальность на iPhone и iPad ещё более увлекательной. Пользователи теперь смогут совместно играть или работать над проектами, например планировать ремонт в квартире. Разработчики смогут также добавлять режим зрителя: друзья и близкие смогут наблюдать за игрой в дополненной реальности с другого устройства iOS.
Постоянные объекты изменят принципы взаимодействия с AR-приложениями: пользователи смогут оставлять виртуальные объекты в реальном мире, а затем возвращаться к ним. Например, можно оставить на столе наполовину собранный пазл, и все его детали останутся на прежних местах. Или можно работать над художественным проектом в течение нескольких недель, не начиная каждый раз заново.
В ARKit 2 также расширена поддержка распознавания и отслеживания изображений. Это позволяет распознавать 3D-объекты, например игрушки и скульптуры, а также автоматически накладывать тени и блики от реальных объектов на объекты дополненной реальности. AR-пространство становится ещё более реалистичным смешением виртуального и реального миров.
Measure
Measure — это новое приложение в iOS 12, которое задействует дополненную реальность для быстрого измерения реальных объектов, заменяя собой обычную рулетку. Это приложение автоматически определяет размеры таких предметов, как фоторамки, плакаты и таблички. Оно может показывать длину диагонали, вычислять площадь, делать фотоснимки и отправлять полученные измерения другим пользователям прямо с iPhone или iPad.
Quick Look для AR и формат .usdz
В iOS 12 можно будет легко задействовать дополненную реальность во всей системе iOS. Совместно с Pixar компания Apple разработала новый формат файлов .usdz, оптимизированный для таких приложений, как Сообщения, Safari, Почта, Файлы и News, без ущерба для графики и анимации. Используя формат .usdz и приложение Quick Look for AR, пользователи смогут размещать 3D-объекты в реальном пространстве и проверять, как они будут смотреться в помещении.
ARKit 2 и формат .usdz входят в состав предварительной версии iOS 12 для разработчиков, которая уже сегодня доступна участникам программы Apple Developer Program. Поддержка ARKit 2 и .usdz появится этой осенью в составе бесплатного обновления ПО для iPhone 6s и новее, всех моделей iPad Pro, iPad 5-го поколения и iPad 6-го поколения.
Если вы нашли опечатку — выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать [email protected].
Исследуйте ARKit 5 — WWDC21 — Видео
Скачать
Здравствуйте. Я Дэвид, инженер из команды ARKit.
Сегодня мы с Кристофером поделимся широким спектром улучшений в ARKit 5. Мы рады обсудить изменения, которые появятся в iOS 15.
В этом году мы сделали много обновлений по всем направлениям, и мы обсуждать несколько функций. Прежде чем мы это сделаем, мы хотим продемонстрировать опыт, который вы все создали с помощью LiDAR.
Мы видели множество приложений с поддержкой LiDAR, использующих API реконструкции сцены и глубины: производительность, эффекты фотофильтров, развлечения и даже игры, в которые вы можете играть в своей гостиной. Мы очень рады видеть творческий подход и изобретательность, проявленные сообществом ARKit. Пока вы создаете эти приложения, мы усердно работаем над тем, чтобы предоставить вам лучший в мире AR-фреймворк и раздвинуть границы возможного. Давайте рассмотрим изменения, которые появятся в ARKit 5. Во-первых, мы поделимся некоторыми обновлениями и рекомендациями по якорям местоположения, которые позволяют использовать AR в реальных местах на открытом воздухе. Далее мы рассмотрим коды клипов приложений, которые являются отличным способом обнаружения клипов приложений, а также позволяют размещать контент в AR. Мы расскажем о некоторых улучшениях в отслеживании лица с помощью сверхширокой фронтальной камеры на новом iPad Pro. И мы закончим некоторыми улучшениями захвата движения ARKit. Мы начнем с привязок местоположения, где мы работали над расширением поддержки регионов и обеспечением некоторых улучшений качества жизни.
Мы также порекомендуем некоторые рекомендации по созданию приложений.
В прошлом году были введены привязки местоположения, позволяющие размещать контент дополненной реальности на определенной широте и долготе. Их цель — разрешить создание дополненной реальности, привязанной к географическому местоположению.
Давайте рассмотрим пример. Это опыт New Nature из приложения ScavengAR, созданный с использованием API привязки местоположения. ScavengAR размещает AR-контент в реальных местах и позволяет создавать виртуальные публичные арт-инсталляции и мероприятия. Это хороший пример того, как якоря местоположения могут стимулировать отдых на свежем воздухе, когда мир снова открывается. Приложение «Карты» также представляет новую функцию дополненной реальности, которая использует API в iOS 15. Давайте посмотрим. В этом году Карты добавляют пошаговые маршруты ходьбы, отображаемые в AR, с использованием API привязки местоположения.
Они включают несколько рекомендуемых нами методов. Мы рассмотрим их позже, чтобы показать, как вы можете создавать отличные приложения.
Теперь, когда мы рассмотрели несколько примеров, давайте вспомним, как можно использовать привязки местоположения для их создания, начиная с шагов, необходимых для настройки GeoTrackingConfiguration. Во-первых, убедитесь, что функция поддерживается на устройстве. Для определения местоположения требуется чип A12 или новее, а также поддержка сотовой связи и GPS. Затем перед запуском убедитесь, что функция доступна в этом месте. Разрешения на доступ к камере и местоположению должны быть одобрены владельцем устройства.
При необходимости ARKit запросит разрешения.
Прошлогодняя презентация, посвященная ARKit 4, и пример проекта «Отслеживание географических местоположений в дополненной реальности» более подробно освещают все эти темы и использование API.
Настоятельно рекомендуем ознакомиться с обоими этими источниками.
В этом примере кода показано, как выполнять проверки из предыдущего слайда. Он запрашивает поддержку устройства, а затем проверяет, доступна ли функция в текущем местоположении, прежде чем пытаться запустить GeoTrackingConfiguration. Затем GeoAnchors можно добавить в ARSession, как и другие типы привязок. Они задаются координатами широты-долготы и, при необходимости, высотой. Важно следить за статусом GeoTrackingConfiguration, чтобы увидеть, локализована ли функция и какие проблемы могут остаться нерешенными.
Образец для разработчиков содержит пример реализации метода для получения обновлений состояния.
Проверка доступности вблизи местоположения устройства важна для запуска приложения с геотрекингом. Мы постоянно работаем над тем, чтобы поддерживать больше регионов. Якоря местоположения были ограничены пятью городскими районами для их первоначального выпуска, и с тех пор поддержка расширилась до более чем 25 городов в США. Мы также прилагаем все усилия, чтобы добавить якоря местоположения в города по всему миру. Впервые мы рады объявить о выходе на рынок за пределами США.
Ведущие локации прибывают в Лондон.
Со временем мы продолжим работу над добавлением новых регионов.
Если вы не живете в поддерживаемой городской зоне, вы также можете начать экспериментировать с якорями местоположения, используя запись и воспроизведение, которые мы рассмотрим позже в этом сеансе.
Список поддерживаемых регионов см. в онлайн-документации для ARGeoTrackingConfiguration в любое время.
По мере того, как якоря местоположения становятся доступными в большем количестве регионов, мы осознаем необходимость иметь общий визуальный язык, чтобы направлять людей. Чтобы упростить процесс адаптации, мы добавляем новую цель .geoTracking для использования с ARCoachingOverlayView.
Подобно существующему оверлею для отслеживания мира, он отображает анимацию, чтобы помочь людям получить хороший опыт.
Поскольку обучающие оверлеи используются во многих различных приложениях дополненной реальности, включая Карты, люди уже в некоторой степени знакомы с ними и знают, как на них реагировать. Мы рекомендуем вам включить обучающую накладку, чтобы упростить процесс обучения этой функции.
Даже при использовании обучающих оверлеев рекомендуется следить за обновлениями статуса .geoTracking, которые содержат более подробную информацию о состоянии отслеживания.
Вот как выглядит оверлей .geoTracking. Пользовательский интерфейс показывает инструкцию направить устройство от земли, а затем на фасады зданий.
Через несколько секунд отслеживание завершается успешно, и ваше приложение может размещать контент с геоотслеживанием. Код для отображения этой анимации очень похож на код, используемый для других оверлеев для обучения. Что уникально, так это введение цели .geoTracking для оверлея.
Обязательно установите эту цель для отображения правильного руководства. Мы видели, как наложение коучинга может создать единый процесс адаптации. Теперь мы рассмотрим некоторые другие передовые методы, которые помогут вам создавать приложения дополненной реальности с географическим отслеживанием. Наша первая рекомендация — использовать запись и воспроизведение для ускорения разработки.
Сеансы ARKit можно записывать на устройствах с помощью Reality Composer, который доступен в App Store. Это особенно полезно для якорей местоположения, поэтому вам не нужно так часто выходить на улицу для тестирования. Это также позволяет сотрудничать с удаленно расположенными создателями. Записи можно воспроизвести на устройстве с помощью Xcode.
Во избежание проблем с совместимостью рекомендуется использовать одно и то же устройство и версию iOS.
Это также работает для других типов приложений ARKit. Воспроизведение не является специфичным для якорей местоположения.
Давайте рассмотрим процесс захвата записи.
Для записи откройте Reality Composer и коснитесь, чтобы увидеть дополнительные параметры в правом верхнем углу. Затем откройте панель «Разработчик» и выберите «Запись сеанса AR».
Убедитесь, что службы определения местоположения включены. Нажмите красную кнопку, чтобы начать и остановить запись. Чтобы воспроизвести запись, подключите устройство к компьютеру, на котором запущен Xcode. Нажмите «Редактировать схему» и установите параметр «Данные воспроизведения ARKit» для конфигурации запуска.
Затем запустите приложение. Хотя запись и воспроизведение могут помочь ускорить разработку, есть и другие методы, которые мы рекомендуем для размещения контента. Вот видео, демонстрирующее это. Обратите внимание, что контент дополненной реальности большой и хорошо видимый, а информация передается без необходимости наложения структуры в окружающей среде. В качестве компромисса между временем разработки и точностью размещения рассмотрите возможность создания контента, который парит в воздухе, а не пытается плотно перекрыть объекты реального мира. У нас есть несколько других рекомендаций по размещению контента.
Чтобы получить координаты широты и долготы для размещения объектов, используйте приложение Apple Maps и скопируйте координаты с точностью не менее шести цифр. Шаги для этого были показаны в видеоролике, посвященном ARKit 4, поэтому, пожалуйста, обратитесь к нему за более подробной информацией. При создании приложения также важно отрегулировать высоту контента относительно привязки к местоположению, если это необходимо для обеспечения хорошего опыта. Если приложению требуется более точное размещение контента, добавьте геопривязку, когда устройство находится в пределах 50 метров от его местоположения.
Если ARKit размещает якорь с точной высотой, он обновит поле источника высоты якоря, чтобы указать это. Класс CLLocation имеет метод, который можно использовать для вычисления расстояний в метрах между двумя точками. Это можно использовать для проверки того, что кто-то находится рядом с местом, прежде чем добавлять привязку. На этом мы завершаем нашу сессию по якорям местоположения. Есть больше способов разместить AR-контент в ваших приложениях с помощью ARKit 5. Позвольте мне передать их Кристоферу, который расскажет вам больше. Спасибо, Дэвид. Привет, меня зовут Кристофер, и я инженер в команде ARKit.
Я рад рассказать вам о других замечательных новых функциях в ARKit 5. Позвольте мне начать с кодов App Clip в ARKit. Вы, наверное, помните, что мы представили App Clips на WWDC в прошлом году. Клип приложения — это небольшой фрагмент приложения, который проводит людей через один контекстный рабочий процесс вашего приложения без необходимости установки всего приложения. Благодаря небольшому размеру файла клип приложения экономит время загрузки и мгновенно перенаправляет людей непосредственно к определенной части приложения, которая в данный момент очень актуальна для их контекста. Мы также представили коды клипов приложений, которые позволяют людям визуально находить и запускать клипы приложений. Никаких поездок в App Store не требуется. Вот как выглядят коды App Clip.
Они могут быть разных форм и цветов. Как разработчик, вы можете создать внешний вид, который лучше всего подходит для вашего сценария. Вы также решаете, какие данные кодировать в коде клипа приложения и какой клип приложения связан с каким кодом. Все коды App Clip содержат визуальный сканируемый шаблон, а некоторые, такие как красный, синий и оранжевый коды, показанные здесь, также содержат тег NFC для удобства пользователя. Люди могут отсканировать код своей камерой или поднести телефон к встроенной метке NFC, чтобы запустить соответствующий клип приложения. И теперь вы также можете распознавать и отслеживать коды App Clip в своих приложениях AR.
Позже в этом сеансе мы рассмотрим, как это делается. Но сначала давайте взглянем на этот клип приложения, разработанный Primer, где они используют код клипа приложения для запуска опыта AR. Primer сотрудничает с Cle Tile, чтобы показать людям, как их образцы будут выглядеть в AR, с помощью кодов клипов приложений. Просто поместите свой iPhone и iPad на код клипа приложения, чтобы вызвать опыт дополненной реальности. Теперь люди могут просмотреть образец плитки на своей стене, не загружая приложение.
Круто, правда? Таким образом, начиная с iOS и iPad 14.3, вы можете обнаруживать и отслеживать коды клипов приложений в приложениях дополненной реальности.
Обратите внимание, что для отслеживания App Clip Code требуются устройства с процессором A12 Bionic или более поздней версии, например iPhone XS. Давайте подробнее рассмотрим, как использовать коды App Clip в ARKit. В iOS 14.3 мы представили новый тип ARAnchor — ARAppClipCodeAnchor. У этой привязки есть три новых свойства: URL-адрес, встроенный в код клипа приложения, состояние декодирования URL-адреса и радиус кода клипа приложения в метрах. Позволь мне объяснить. Каждый код клипа приложения содержит URL-адрес, который декодируется для отображения правильного содержимого. Декодирование URL не происходит мгновенно. ARKit может быстро обнаружить наличие кода клипа приложения.
Но декодирование URL-адреса ARKit может занять немного больше времени, в зависимости от расстояния пользователя до кода и других факторов, таких как освещение.
Вот почему привязка кода клипа приложения содержит свойство состояния .decoding и может находиться в одном из трех состояний.
Начальное состояние .decoding указывает, что ARKit все еще декодирует URL. Как только ARKit успешно декодирует URL-адрес, состояние изменится на .decoded. Если декодирование URL-адреса невозможно, вместо этого состояние изменится на .failed.
Это может произойти, например, когда кто-то сканирует код клипа приложения, который не связан с клипом приложения.
Чтобы использовать отслеживание кода клипа приложения, сначала проверьте, поддерживается ли оно на устройстве. Помните, что отслеживание App Clip Code поддерживается только на устройствах с процессором A12 Bionic или более поздней версии.
Затем установите для свойства appClipCodeTrackingEnabled в вашей конфигурации значение true и запустите сеанс.
Чтобы прочитать URL-адрес кода клипа приложения, проследите, чтобы сеансы AR обновили обратный вызов привязки, и проверьте состояние декодирования всех обнаруженных якорей кода клипа приложения.
Пока ARKit декодирует код клипа приложения, вы можете захотеть отобразить визуализацию-заполнитель поверх кода клипа приложения, чтобы дать пользователю мгновенную информацию о том, что код клипа приложения обнаружен, но его еще нужно расшифровать. Как упоминалось ранее, декодирование кодов клипов приложений также может привести к сбою. Например, когда кто-то указывает телефоном на код клипа приложения, который не принадлежит вашему клипу приложения. Мы рекомендуем вам также оставить отзыв в этом случае. После декодирования кода клипа приложения вы, наконец, можете получить доступ к его URL-адресу и начать отображать правильный контент для этого кода клипа приложения.
Например, в случае клипа приложения Primer, который вы видели ранее, URL-адрес содержит информацию о том, какой образец плитки отображать. После декодирования кода клипа приложения возникает вопрос, где следует отображать контент, связанный с этим кодом? Один из вариантов — отобразить его непосредственно поверх привязки кода клипа приложения.
Однако, в зависимости от вашего варианта использования, сам код клипа приложения может быть не лучшим местом для отображения содержимого.
Так, например, вы можете расположить контент рядом с кодом клипа приложения с фиксированным относительным положением.
Это хорошо работает, когда код клипа приложения напечатан на объекте, например, на кофеварке, и вы хотите отобразить виртуальные инструкции о том, как им управлять, поверх кнопок машины.
Или вы можете комбинировать отслеживание App Clip Code с другими технологиями отслеживания, поддерживаемыми ARKit. Например, отслеживание изображений. Давайте посмотрим на реализацию этого. Видео и код, которые вы видите дальше, основаны на примере кода «Взаимодействие с кодами клипов приложений в AR», который вы можете загрузить на сайте developer.apple.com. То, что вы видите сейчас, — это запись AR-опыта образца. Во-первых, я запускаю приложение «Камера» и сканирую упаковку семян подсолнечника. Может быть, я делаю покупки в магазине для садоводов, пытаясь решить, какие семена растений купить. iOS распознает код клипа приложения на упаковке и запускает соответствующий клип приложения Seed Shop. Здесь я сканирую код App Clip во второй раз, и затем на упаковке семян появляется выращенный подсолнух. Обратите внимание, что клип приложения использует отслеживание изображения всего пакета семян и помещает на него подсолнух. Этот подход имеет смысл в этом случае использования, поскольку внимание человека, скорее всего, будет направлено на весь исходный пакет, а не на меньший код клипа приложения в правом верхнем углу.
Но что, если кто-то захочет увидеть растение, растущее в его саду? Вот как это может выглядеть. Здесь мы видим, что когда код сканируется в первый раз, он вызывает загрузку клипа приложения.
Затем, когда тот же код снова сканируется из клипа приложения, он связывает код с коробкой с семенами подсолнуха, а затем при нажатии на газон появляется подсолнух.
Если бы вместо этого клип приложения увидел код на коробке с семенами розы, он бы породил розу на лужайке.
Обратите внимание, что клипы приложений должны содержать только один рабочий процесс.
Но клип приложения может предложить кнопку для загрузки полного приложения Seed Shop, чтобы познакомиться с другими растениями, которые они могут предварительно просмотреть в своем пространстве. Помните, что отслеживание кода App Clip также работает в родительском приложении App Clip. Давайте посмотрим на код, который нам нужен для размещения подсолнухов на лужайке. Во-первых, вы добавляете tapGestureRecognizer в представление для обнаружения нажатий на экран. Когда человек нажимает на экран, вы можете направить луч в мир и получить обратно результирующее положение на горизонтальной плоскости перед его устройством. В нашем сценарии это будет лужайка человека.
Затем вы берете последний URL-адрес кода клипа приложения, который был декодирован, и добавляете новый ARAnchor на газон.
Наконец, вы загружаете 3D-модель подсолнуха и отображаете ее на лужайке.
Теперь давайте поговорим о некоторых передовых методах работы с кодами App Clip в ARKit. Клипы приложений можно использовать в разных средах и для разных вариантов использования. Подумайте, можете ли вы создавать коды клипов приложений NFC.
Мы рекомендуем коды NFC App Clip для сред, в которых люди могут физически получить доступ к коду. При использовании кода клипа приложения NFC используйте соответствующий текст призыва к действию, который побуждает людей нажимать на метку или, в качестве альтернативы, предлагает явную возможность сканирования кода.
И последнее, но не менее важное: вам необходимо убедиться, что ваши коды клипов приложений напечатаны в соответствующем размере для среды пользователя. Например, меню ресторана может быть напечатано на бумаге формата А4, и людям будет удобно сканировать 2,5-сантиметровый код App Clip в этом меню с расстояния до 50 сантиметров. Афиша фильма, однако, обычно намного больше и может иметь достаточно места для 12-сантиметрового кода клипа приложения, который люди смогут сканировать своим телефоном с расстояния до 2,5 метров.
Для получения дополнительной информации о рекомендуемых размерах кода ознакомьтесь с нашими рекомендациями по человеческому интерфейсу для кодов клипов приложений.
Вот как вы используете коды App Clip в ARKit. Если вы хотите глубже погрузиться в клипы приложений и коды клипов приложений, обязательно ознакомьтесь с сеансами «Что нового в клипах приложений» и «Создавайте легкие и быстрые клипы приложений». Теперь давайте перейдем к отслеживанию лица.
Отслеживание лиц позволяет обнаруживать лица на фронтальной камере, накладывать виртуальный контент и анимировать выражения лиц в режиме реального времени.
С момента запуска iPhone X в ARKit появилось множество отличных приложений, использующих преимущества отслеживания лиц. От отслеживания нескольких лиц до запуска отслеживания лиц в случае одновременного использования передней и задней камеры — этот API за последние годы получил ряд улучшений.
В прошлом году мы представили функцию отслеживания лиц на устройствах без датчика TrueDepth, если они оснащены процессором A12 Bionic или более поздней версии.
Ранее в этом году мы выпустили новый iPad Pro, оснащенный фронтальной камерой со сверхшироким полем зрения для отслеживания лица в дополненной реальности. Давайте взглянем. Здесь вы видите обычное поле зрения фронтальной камеры. И это новое сверхширокое поле зрения на новом iPad Pro. Это действительно имеет значение, не так ли? Имейте в виду, что ваши существующие приложения будут продолжать использовать обычную камеру для отслеживания лица. Если вы хотите расширить возможности своего пользователя до сверхширокого поля зрения на новом iPad Pro, вам необходимо проверить, какие форматы видео доступны, и выбрать новый сверхширокий формат. Вы можете сделать это, перебрав все поддерживаемые форматы видео и проверив параметр встроенной в ультраширокую камеру. Затем вы устанавливаете этот формат в конфигурации AR и запускаете сеанс. Следует отметить, что сверхширокая камера нового iPad Pro имеет гораздо большее поле зрения, чем датчик TrueDepth.
Поэтому вы не получите захваченный буфер DepthData в ARFrame при использовании сверхширокого формата видео.
И последнее, но не менее важное: давайте поговорим о захвате движения. С момента своего запуска в 2019 году технология захвата движения позволила надежно интегрировать реальных людей в сцены дополненной реальности, например анимировать виртуальных персонажей, а также использовать их в 2D- и 3D-моделировании.
В iOS 15 захват движения стал еще лучше. На устройствах с процессором Apple A14 Bionic, таких как iPhone 12, захват движения теперь поддерживает более широкий диапазон поз тела. И это не требует никаких изменений кода вообще. Все приложения для захвата движения на iOS 15 выиграют от этого.
В частности, повороты стали более точными, чем когда-либо, что помогает отслеживать спортивные действия с гораздо большей точностью. Еще одно большое улучшение заключается в том, что камера вашего устройства теперь может отслеживать суставы тела с гораздо большего расстояния.
Также значительно увеличился диапазон отслеживания движений конечностей. Давайте посмотрим на пример. Вот один из моих коллег, Эйлер, отслеживает свои тренировки с помощью приложения Driven2win. Результаты на iOS 15 точнее, чем когда-либо. Напомним, что ARKit 5 содержит множество новых функций и улучшений.
Якоря локаций доступны в новых городах и имеют новый обучающий слой.
Отслеживание кода клипа приложения помогает легко находить и использовать AR в клипе приложения, а также точно позиционировать ваш виртуальный контент. Отслеживание лиц работает с новым сверхшироким полем зрения на новом iPad Pro, а захват движения повышает точность и увеличивает диапазон движения. Я так рад видеть все удивительные впечатления, которые вы создадите с ARKit 5.
[музыка]
Исследуйте ARKit 4 — WWDC20 — Видео
Скачать
♪ Голос за кадром: Привет и добро пожаловать на WWDC.
Куинтон: Привет, меня зовут Куинтон, я инженер в команде ARKit.
Сегодня мы с Правином покажем вам некоторые новые функции ARKit с iOS 14.
Итак, давайте сразу приступим к изучению ARKit 4. платформа, iOS.
ARKit предоставляет вам инструменты для создания приложений дополненной реальности, которые изменят то, как ваши пользователи видят мир.
Некоторые из этих инструментов включают в себя отслеживание движения устройства, захват сцен с камеры и расширенную обработку сцен, которые помогают упростить задачу создания реалистичного и захватывающего опыта дополненной реальности.
Посмотрим, что будет дальше с ARKit.
Итак, сначала мы рассмотрим API привязки местоположения.
Якоря местоположения переносят ваш опыт дополненной реальности в глобальный масштаб, позволяя вам размещать виртуальный контент по отношению к земному шару.
Затем мы увидим, что новый датчик LiDAR привнесет в ARKit с геометрией сцены.
Геометрия сцены предоставляет приложениям сетку окружающей среды, которую можно использовать для всего, от окклюзии до освещения.
Далее мы рассмотрим технологию, обеспечивающую геометрию сцены, API глубины.
Мы открываем этот API, чтобы дать приложениям доступ к плотной карте глубины, чтобы открыть новые возможности с использованием датчика LiDAR.
Кроме того, датчик LiDAR улучшает размещение объектов.
Мы рассмотрим некоторые передовые методы, чтобы убедиться, что ваши приложения в полной мере используют новейшие методы размещения объектов.
И мы завершим некоторыми улучшениями FaceTracking.
Начнем с якорей местоположения.
Прежде чем мы зайдем слишком далеко, давайте посмотрим, как мы дошли до этой точки.
ARKit запустился на iOS с лучшим отслеживанием.
Нет QR-кодов. Нет необходимости во внешнем оборудовании.
Просто начните работу с дополненной реальностью, разместив контент вокруг себя.
Затем мы добавили многопользовательский режим.
Затем вашим содержимым AR можно поделиться с другом, используя отдельное устройство, чтобы сделать впечатления социальными.
А в прошлом году мы привлекли людей в ARKit.
Опыт дополненной реальности теперь знает о людях на месте происшествия.
Захват движения возможен только с одним устройством iOS, а окклюзия людей делает контент AR еще более захватывающим, поскольку люди могут идти прямо перед виртуальным объектом.
Сочетание всех этих функций создает потрясающие впечатления.
Но что дальше? Итак, теперь мы выносим AR на улицу с якорями местоположения.
Якоря местоположения позволяют размещать контент дополненной реальности по отношению к земному шару.
Это означает, что теперь вы можете размещать виртуальные объекты и создавать дополненную реальность, указав широту, долготу и высоту.
ARKit возьмет ваши географические координаты, а также картографические данные высокого разрешения из Apple Maps, чтобы разместить ваши впечатления от дополненной реальности в определенном месте мира.
Весь этот процесс называется визуальной локализацией, и он будет точно определять местоположение вашего устройства по отношению к окружающей среде более точно, чем это можно было сделать раньше с помощью только GPS.
Все это возможно благодаря передовым методам машинного обучения, работающим прямо на вашем устройстве.
В облаке нет обработки и изображения не отправляются обратно в Apple.
ARKit также позаботится об объединении локальной системы координат с географической системой координат, чтобы вы могли работать в одной единой системе, независимо от того, как вы хотите создавать свои впечатления от дополненной реальности.
Чтобы получить доступ к этим функциям, мы добавили новую конфигурацию, ARGeoTrackingConfiguration и ARGeoAnchors, которые вы будете использовать для размещения в контенте так же, как и другие привязки ARKit.
Давайте посмотрим на некоторые якоря местоположения в действии.
У нас есть видео перед зданием Ферри в Сан-Франциско.
Вы можете увидеть большую виртуальную скульптуру.
На самом деле это сопутствующая скульптура, созданная KAWS и просматриваемая в приложении для острого искусства.
Поскольку оно было размещено с привязкой к местоположению, каждый, кто использует приложение в Ferry Building, может наслаждаться виртуальным искусством в одном и том же месте и одним и тем же способом.
Давайте посмотрим, что находится под капотом в ARKit, чтобы все это работало.
Таким образом, при использовании геотрекинга мы загружаем все подробные данные карты из Apple Maps вокруг вашего текущего местоположения.
Часть этих данных представляет собой карту локализации, содержащую характерные точки окрестностей, видимые с улицы.
Затем, используя карту локализации, ваше текущее местоположение и изображения с вашего устройства, мы можем использовать расширенное машинное обучение для визуальной локализации и определения положения вашего устройства.
Все это происходит под капотом в ARKit, чтобы дать вам точную, глобальную позу, не беспокоясь об этой сложности.
API привязки местоположения можно разбить на три основные части.
ARGeoTrackingConfiguration — это конфигурация, которую вы будете использовать, чтобы воспользоваться всеми преимуществами новых функций привязки местоположения.
Эта конфигурация содержит подмножество функций отслеживания мира, совместимых с отслеживанием местоположения.
Затем, как только вы запустите сеанс AR с конфигурацией геотрекинга, вы сможете создавать ARGeoAnchors, как и любые другие привязки ARKit.
Кроме того, при использовании геотрекинга появился новый статус отслеживания, который важно отслеживать.
Содержится в ARGeoTrackingStatus и обеспечивает ценную обратную связь для улучшения опыта геотрекинга.
Таким образом, создание приложения с привязкой к местоположению можно разбить на несколько шагов.
Первый — проверка наличия геотрекинга.
ARGeoTrackingConfiguration имеет несколько методов, которые позволяют нам проверять предварительные условия, используя остальную часть API привязки местоположения.
Затем можно добавить якоря местоположения, как только вы узнаете, что есть полная поддержка гео-отслеживания.
И после добавления якорей мы можем использовать механизм рендеринга для размещения виртуального контента.
Затем нам нужно позаботиться о переходах с геотрекингом.
После запуска геоотслеживание будет проходить через несколько состояний, которые могут потребовать некоторого вмешательства пользователя для обеспечения наилучшего качества геоотслеживания.
Итак, давайте создадим простое приложение, чтобы увидеть, как эти шаги выглядят на практике.
В нашем приложении мы начнем с того, что поможем нашим пользователям найти легендарное здание Ferry Building в Сан-Франциско, штат Калифорния.
Как видите, мы разместили знак, чтобы здание было легко найти.
Чтобы запустить приложение, давайте сначала начнем с проверки доступности.
Как и в случае со многими другими функциями ARKit, нам необходимо убедиться, что текущее устройство поддерживается, прежде чем пытаться запустить опыт.
Якоря местоположения доступны на устройствах с бионическим чипом A12 и новее, а также GPS.
Метод класса ARGeoTrackingConfigurations isSupported следует использовать для проверки наличия поддержки.
Для геотрекинга нам также необходимо проверить, поддерживается ли текущее местоположение.
Нам нужно найти место, где есть все необходимые данные карт для локализации.
Конфигурация геотрекинга имеет способ проверки поддержки вашего текущего местоположения, а также произвольной широты и долготы.
Кроме того, после запуска сеанса геотрекинга ARKit запросит у пользователя разрешение как для камеры, так и для местоположения.
ARKit всегда запрашивал разрешение камеры, но для геоотслеживания требуется разрешение местоположения.
Давайте посмотрим, как это выглядит в коде.
В ARGeoTrackingConfiguration есть все методы класса, которые нам нужно проверить перед началом сеанса дополненной реальности.
Сначала мы проверим, поддерживается ли текущее устройство с помощью «isSupported», а затем мы проверим, доступно ли наше текущее местоположение для геотрекинга, с помощью «checkAvailability». Если эта проверка не пройдена, мы получим сообщение об ошибке с дополнительной информацией для отображения пользователю.
Например, если пользователь не предоставил разрешения на определение местоположения приложения.
Затем, как только мы узнаем, что наше текущее устройство и местоположение поддерживаются, мы можем начать сеанс.
Поскольку мы используем RealityKit, нам понадобится наш ARView, а затем мы обновим конфигурацию.
По умолчанию ARView использует конфигурацию отслеживания мира, поэтому при запуске сеанса нам нужно передать GeoTrackingConfiguration.
Следующий шаг — добавление привязки к местоположению.
Для этого мы будем использовать новый подкласс ARAnchor ARGeoAnchor.
geoAnchors во многом похожи на существующие привязки ARKit.
Однако, поскольку geoAnchors работают с глобальными координатами, мы не можем создать их с помощью одних преобразований.
Нам нужно указать их географические координаты с широтой, долготой и высотой.
Наиболее распространенным способом создания геоякорей будет указание только широты и долготы, что позволяет ARKit заполнять высоту на основе картографических данных уровня земли.
Давайте теперь добавим привязку местоположения к нашему приложению достопримечательности.
Итак, для нашего приложения нам нужно начать с определения местоположения паромного здания.
Один из способов узнать широту и долготу — через приложение «Карты».
Когда мы помещаем маркер в приложение карты, теперь мы получаем точность до шести знаков после запятой.
Важно использовать шесть или более цифр, чтобы получить точное место для размещения содержимого.
Когда у нас есть широта и долгота, мы можем сделать геоякорь.
Нам не нужно указывать высоту, потому что мы позволим ARKit использовать данные карты для определения высоты уровня земли.
Затем мы добавим geoAnchor в нашу сессию.
А поскольку мы используем RealityKit для рендеринга нашего виртуального контента и уже создали геоякорь, мы можем продолжить и прикрепить якорь к объекту, чтобы отметить паромное здание.
Давайте запустим наше приложение и посмотрим, как оно выглядит.
Мы начнем возле Ферри Билдинг в Сан-Франциско, глядя в сторону Маркет-стрит.
Когда мы поворачиваемся вокруг, мы видим несколько пальм, растущих вдоль города.
И скоро появится паромное здание.
Наш знак выглядит так, будто он стоит на земле, чего и следовало ожидать, но текст повернут.
Так как мы хотим, чтобы паромное здание было легко найти на расстоянии, нам бы очень хотелось, чтобы вывеска парила в воздухе на несколько метров и была обращена в сторону города.
Так как же нам это сделать? Что ж, чтобы расположить этот контент, нам нужно сначала посмотреть на систему координат geoAnchor.
geoAnchors привязаны к сторонам света.
Их оси устанавливаются при создании якоря, и эта ориентация останется неизменной до конца сеанса.
Ось X geoAnchors всегда направлена на восток, а ось Z всегда направлена на юг для любой географической координаты.
Поскольку мы используем правостороннюю систему координат, положительное значение y направлено вверх от земли.
geoAnchors, как и все другие привязки ARKit, неизменяемы.
Это означает, что нам нужно использовать наш движок рендеринга, чтобы вращать или перемещать наши виртуальные объекты из источника geoAnchors.
Давайте почистим наш знак, который мы разместили перед паромным зданием.
Итак, вот код RealityKit, чтобы начать обновление нашего знака.
После получения signEntity и добавления его к объекту geoAnchor мы хотим повернуть знак в сторону города.
Для этого повернем его чуть менее чем на 90 градусов по часовой стрелке и поднимем положение знака на 35 метров.
Обе эти операции относятся к ранее созданному объекту geoAnchor.
Давайте посмотрим, как это выглядит в приложении.
Теперь, когда мы поворачиваемся и добираемся до нашего паромного здания, наша вывеска висит высоко в воздухе, и мы можем видеть ее издалека.
В такой ориентации текст намного легче читать.
Выглядит великолепно, но нам не хватает важной информации о состоянии гео-отслеживания, которую мы можем использовать, чтобы направить пользователя к наилучшему опыту гео-отслеживания.
При использовании GeoTrackingConfiguration появляется новый объект GeoTrackingStatus, доступный в обозревателе ARFrame и ARsession.
ARGeoTrackingStatus инкапсулирует всю текущую информацию о состоянии геотрекинга, аналогичную информации об отслеживании мира, доступной на ARCamera.
В статусе геотрекинга есть состояние.
Это состояние указывает, насколько далеко зашло географическое отслеживание во время локализации.
Существует также свойство, предоставляющее дополнительные сведения о текущем состоянии локализации, называемое Причина состояния геоотслеживания, и точность, обеспечиваемая после локализации геоотслеживания.
Давайте подробнее рассмотрим состояние геотрекинга.
Когда начинается сеанс дополненной реальности, geoTrackingState запускается при инициализации.
На данный момент геотрекинг ожидает инициализации глобального трекинга.
После инициализации состояние отслеживания может сразу стать недоступным, если геоотслеживание не поддерживается в текущем местоположении.
Если вы используете метод класса checkAvailability в geoTrackingConfiguration, вы должны редко переходить в состояние.
Когда геотрекинг переходит к локализации, ARKit получает изображения, а также данные карт и пытается вычислить и то, и другое.
Однако как во время инициализации, так и во время локализации могут быть обнаружены проблемы, препятствующие локализации.
Об этих проблемах сообщается через geoTrackingStateReason.
Эта причина должна использоваться для информирования пользователя о том, как помочь в локализации геотрекинга.
Некоторые возможные причины включают в себя устройство, направленное слишком низко, что затем сообщит пользователю о необходимости поднять устройство, или geoDataNotLoaded, и мы сообщим пользователю, что требуется сетевое подключение.
По всем возможным причинам загляните в ARGeoTrackingTypes.h.
В целом мы хотим поощрять пользователей направлять свои устройства на здания и другие стационарные сооружения, которые видны с улицы.
Автостоянки, открытые поля и другие динамически изменяющиеся среды имеют меньшую вероятность локализации.
После устранения любых причин geoTrackingStateReasons геоотслеживание должно стать локализованным.
Именно с этого момента вы должны начать знакомство с дополненной реальностью.
Если вы поместите объекты до локализации, объекты могут перейти в непредусмотренные места.
Кроме того, после локализации предоставляется ARGeoTrackingAccuracy, чтобы помочь вам определить, какие функции следует включить.
Также важно всегда отслеживать состояние геотрекинга, поскольку геотрекинг может вернуться к локализации или даже к инициализации, например, когда трекинг потерян или данные карты недоступны.
Давайте посмотрим, как мы можем добавить это состояние отслеживания, чтобы улучшить наш пример приложения.
Теперь мы можем видеть, что все это время мы на самом деле занимались локализацией, глядя на Маркет-стрит и окружающие здания.
Когда мы перемещаемся, мы можем видеть по состоянию отслеживания, что мы локализуем, а затем точность увеличивается до высокой.
Я думаю, наше приложение почти готово, по крайней мере, для Ferry Building.
Итак, мы добавили на сайт developer.apple.com более обширный пример проекта привязки к местоположению, который я рекомендую вам проверить после этого выступления.
Для получения дополнительной информации об используемых функциях RealityKit ознакомьтесь с прошлогодним докладом, посвященным RealityKit и Reality Composer.
В нашем примере приложения мы увидели, как создавать привязки местоположения, напрямую указывая координаты.
Мы уже знали географические координаты здания Ферри.
Однако эти координаты могли быть получены из любого источника, например, из нашего пакета приложений, нашего веб-сервера или любой базы данных.
Другой способ создания привязки к местоположению — взаимодействие с пользователем.
В будущем мы могли бы расширить наше приложение, позволив пользователям касаться экрана, чтобы сохранять свои точки интереса.
getGeoLocation(for point) в ARSession позволяет нам получить географические координаты из любой точки мира в координатном пространстве ARKit.
Например, это могло произойти из радиопередачи или местоположения на плоскости.
Якоря местоположения доступны для вас сегодня с iOS14, и мы начинаем с поддержки в районе залива Сан-Франциско, Нью-Йорке, Лос-Анджелесе, Чикаго и Майами, а летом появится больше городов.
Поддерживаются все iPhone и iPad с бионическим чипом A12 или новее, а также GPS.
Кроме того, для любых приложений, которым требуются исключительно привязки к местоположению, вы можете использовать ключи возможностей устройства, чтобы ограничить ваше приложение в App Store только совместимым оборудованием.
В дополнение к ключу GPS вам потребуется использовать новый ключ для устройств с бионическим чипом A12 или новее, который доступен в iOS14.
Таким образом, с привязкой к местоположению вы теперь можете перенести свои впечатления от дополненной реальности в глобальный масштаб.
Мы рассмотрели, как ARGeoTrackingConfiguration является отправной точкой для добавления привязок к местоположению в ваше приложение.
Мы увидели, как добавить ARGeoAnchors в вашу ARScene и как расположить контент относительно этих привязок.
Мы также увидели, как можно использовать ARGeoTrackingStatus, чтобы направить пользователя к лучшим возможностям геотрекинга.
А теперь вот Praveen, чтобы рассказать вам больше о геометрии сцены.
Правин Гауда: Всем привет.
Я Правин Гауда. Я инженер в команде ARKit.
Сегодня я познакомлю вас с некоторыми API-интерфейсами, доступными в iOS14, которые помогут использовать возможности сканера LiDAR в ваших приложениях.
В ARKit 3.5 мы представили API геометрии сцены на основе сканера LiDAR на новом iPad Pro.
Прежде чем мы перейдем к геометрии сцены, давайте посмотрим, как работает сканер LiDAR.
LiDAR излучает свет в окружающую среду, а затем собирает свет, отраженный от поверхностей сцены.
Глубина оценивается путем измерения времени, которое потребовалось свету, чтобы пройти от LiDAR до окружающей среды и отразиться обратно в сканер.
И весь этот процесс выполняется миллионы раз каждую секунду.
Сканер LiDAR используется тем же API геометрии для создания топологической карты окружающей среды.
Это может быть дополнительно объединено с семантической классификацией, которая позволяет приложениям распознавать и классифицировать физические объекты.
Это дает возможность создавать более богатые возможности дополненной реальности, когда приложения теперь могут загружать виртуальные объекты в реальный мир или использовать физику для обеспечения реалистичного взаимодействия между виртуальными и физическими объектами.
Или использовать виртуальное освещение на реальных поверхностях и во многих других случаях использования, которые мы должны были представить.
Давайте взглянем на геометрию сцены в действии.
Вот гостиная, и как только API геометрии сцены включено, вся видимая комната становится сеткой.
Треугольники различаются по размеру, чтобы показать оптимальную детализацию каждой поверхности.
Цветная сетка появляется после включения семантической классификации.
Каждый цвет соответствует определенной классификации, например, синий для сидений и зеленый для пола.
Как мы видели, функция геометрии сцены построена с использованием данных о глубине, собранных со сканера LiDAR.
В iOS14 у нас есть новый API глубины ARKit, который обеспечивает доступ к тем же данным глубины.
API предоставляет плотное изображение глубины, где пиксель изображения соответствует глубине в метрах от камеры.
Здесь мы видим отладочную визуализацию этой глубины, где есть градиент от синего к красному, где синий представляет области ближе к камере, а красный — далекие.
Данные о глубине будут доступны с частотой 60 Гц, связанные с каждым кадром AR.
Функция геометрии сцены построена на основе этого API, где данные глубины по нескольким кадрам объединяются и обрабатываются для построения 3D-сетки.
Этот API работает на основе сканера LiDAR и доступен на устройствах с LiDAR.
Вот иллюстрация создания карты глубины.
Цветное RGB-изображение с широкоугольной камеры и оценки глубины со сканера LiDAR объединяются вместе с использованием передовых алгоритмов машинного обучения для создания плотной карты глубины, доступной через API.
Эта операция выполняется 60 раз в секунду с картой глубины, доступной для каждого кадра AR.
Чтобы получить доступ к данным о глубине, каждый кадр AR будет иметь новое свойство, называемое sceneDepth.
Предоставляет объект типа ARDepthData.
ARDepthData — контейнер для двух буферов.
Один из них — карта глубины, а другой — карта доверия.
Карта глубины представляет собой буфер пикселей CV, но каждый пиксель представляет глубину в метрах, и эта глубина соответствует расстоянию от плоскости камеры до точки в мире.
Следует отметить, что карта глубины имеет меньшее разрешение по сравнению с захваченным изображением в кадре AR, которое по-прежнему имеет то же соотношение сторон.
Другой буфер объекта ARDepthData — это trustMap.
Поскольку измерение глубины с помощью LiDAR основано на свете, который отражается от объектов, на точность карты глубины может влиять природа окружающей среды.
Сложные поверхности, такие как сильно отражающие или сильно поглощающие, могут снизить точность определения глубины.
Эта точность выражается через значение, которое мы называем достоверностью.
Для каждого пикселя глубины существует соответствующее значение достоверности типа ARConfidenceLevel, и это значение может быть низким, средним или высоким и поможет отфильтровать глубину в соответствии с требованиями вашего приложения.
Давайте посмотрим, как мы можем использовать API глубины.
Я начинаю с создания ARSession и ARTrackingConfiguration.
Существует новая семантика кадра, называемая sceneDepth, которая позволяет вам включить API глубины.
Как всегда, я проверяю, поддерживается ли frameSemantic на устройстве, используя метод supportsFrameSemantics в классе конфигурации.
Затем мы можем установить для frameSemantic значение sceneDepth и запустить настройку.
После этого я могу получить доступ к данным о глубине из свойства sceneDepth в ARFrame, используя метод делегата кадра didUpdate.
Кроме того, если у вас есть приложение дополненной реальности, в котором используется функция перекрытия людей, а затем выполняется поиск по параметру personSegmentationWithDepth frameSemantic, то вы автоматически получаете sceneDepth на устройствах, поддерживающих sceneDepth frameSemantic, без дополнительных затрат энергии для вашего приложения.
Вот демонстрация приложения, которое мы создали с помощью API глубины.
Глубина из карты глубины не проецируется в 3D для формирования облака точек.
Облако точек окрашивается с использованием захваченного изображения в ARFrame.
Накапливая данные о глубине по нескольким кадрам дополненной реальности, вы получаете плотное трехмерное облако точек, подобное тому, которое мы видим здесь.
Я также могу фильтровать облака точек на основе уровня достоверности.
Это облако точек, образованное всеми пикселями глубины, включая пиксели с низкой достоверностью.
А вот и облако точек при глубине фильтрации уверенно средней или большой.
И это облако точек, которое мы получаем, используя только ту глубину, которая имеет высокую достоверность.
Это дает нам четкое представление о том, как физические свойства поверхностей могут влиять на уровень достоверности их глубины.
Ваше приложение и его устойчивость к неточностям глубины определяют, как вы будете фильтровать глубину на основе уровня достоверности.
Давайте подробнее рассмотрим, как мы создали это приложение.
Для каждого ARFrame, к которому мы обращаемся, свойство sceneDepth с объектами данных ARDepth предоставляет нам глубину и карту доверия.
Ключевой частью приложения является металлический вершинный шейдер под названием unproject.
Как следует из названия, он перепроецирует данные о глубине из карты глубины в трехмерное пространство, используя параметры ARCamera, такие как преобразование камеры, ее встроенные функции и матрицу проекции.
Шейдер также использует захваченное изображение для выборки цвета для каждого пикселя глубины.
На выходе мы получаем трехмерное облако точек, которое затем визуализируется с помощью Metal.
Подводя итог, у нас есть новый API глубины в ARKit 4, который дает очень точное представление о мире.
Существует семантика кадра, называемая sceneDepth, которая позволяет вам включить эту функцию.
После включения данные о глубине будут доступны с частотой 60 Гц для каждого кадра AR.
Данные о глубине будут иметь карты глубины и карты доверия, а API поддерживается на устройствах со сканером LiDAR.
Одной из фундаментальных задач во многих приложениях дополненной реальности является размещение объектов, и в ARKit 3 мы представили API raycasting, чтобы упростить размещение объектов.
В ARKit 4 сканер LiDAR привносит несколько замечательных инструментов для рейкастинга.
Raycasting оптимизирован для размещения объектов и упрощает точное размещение виртуальных объектов в приложении дополненной реальности.
Размещение объектов в ARKit 4 стало более точным и быстрым благодаря сканеру LiDAR.
Ваши приложения, которые уже используют raycasting, автоматически получат преимущества на устройстве с поддержкой LiDAR.
Raycasting также использует глубину сцены или геометрию сцены, когда они доступны, для мгновенного размещения объектов в AR.
Это прекрасно работает даже в невыразительных офисах, таких как белые стены.
В iOS14 рекомендуется использовать API raycast вместо проверки попадания для размещения объекта.
Прежде чем начать raycasting, вам необходимо создать запрос raycast.
Запрос raycast описывает направление и поведение луча, используемого для raycasting.
Он состоит из цели raycast, которая описывает тип поверхности, с которой может пересекаться луч.
Существующие самолеты соответствуют самолетам, обнаруженным ARKit, с учетом формы и размера самолета.
Бесконечные плоскости — это те же плоскости, но без учета формы и размера.
Оценочные плоскости А представляют собой плоскости произвольной ориентации, образованные из характерных точек вокруг поверхности.
Выравнивание raycasttarget определяет выравнивание поверхностей, с которыми может пересекаться луч.
Это может быть горизонтальное, вертикальное или любое другое.
Существует два типа рейкастов.
Существуют однократные рейкасты, которые возвращают однократный результат.
А затем отслеживаемые рейкасты, которые постоянно обновляют результаты по мере развития понимания мира ARKit.
Чтобы получить новейшее размещение объектов функций, мы рекомендуем перейти на API raycasting, поскольку мы устарели от проверки попадания.
Код, который мы видим вверху, извлечен из примера приложения, которое использует проверку попадания для размещения объектов.
Выполняет тест с тремя различными вариантами проверки попадания.
За этим обычно следуют специальные эвристики, чтобы отфильтровать эти результаты и выяснить, куда поместить объект.
Все это можно заменить несколькими строками кода рейкастинга, подобного тому, что мы видим ниже, и ARKit сделает тяжелую работу под капотом, чтобы убедиться, что ваши виртуальные объекты всегда остаются в нужном месте.
Raycasting упрощает точное размещение виртуальных объектов в ваших приложениях ARKit.
Перейдем к FaceTracking.
FaceTracking позволяет обнаруживать лица в дополненной реальности на передней камере, накладывать на них виртуальный контент и анимировать выражения лиц в режиме реального времени.
Поддерживается на всех устройствах с камерой TrueDepth.
Теперь с ARKit 4 поддержка FaceTracking распространяется на устройства без камеры TrueDepth, если они оснащены бионическим процессором Apple A12 или более поздней версии.
Сюда входят устройства без камеры TrueDepth, такие как новый iPhone SE.
Элементы FaceTracking, такие как привязки лиц, геометрия лица и блендшейпы, будут доступны на всех поддерживаемых устройствах, но данные о глубине захвата будут ограничены устройствами с камерой TrueDepth.