Руководства для конкретных платформ
Android (Котлин/Java)
Android НДК (С)
Единство (Фонд АР)
Нереальный движок
API-интерфейсы дополненных изображений в ARCore позволяют создавать приложения AR, которые могут обнаруживать и дополнять 2D-изображения в среде пользователя, например плакаты или упаковку продуктов.
Вы предоставляете набор эталонных изображений. ARCore использует алгоритм компьютерного зрения для извлечения функций из информации в оттенках серого в каждом изображении и сохраняет представление этих функций в одной или нескольких базах данных дополненных изображений.
Во время выполнения ARCore ищет эти функции на плоских поверхностях в среде пользователя. Это позволяет ARCore обнаруживать эти изображения в мире и оценивать их положение, ориентацию и размер, если они не предоставлены.
Возможности
ARCore может отслеживать до 20 изображений одновременно. ARCore не будет одновременно обнаруживать или отслеживать несколько экземпляров одного и того же изображения.
Каждая база данных дополненных изображений может хранить информацию до 1000 эталонных изображений. Количество баз данных не ограничено, но в любой момент времени может быть активна только одна база данных.
Изображения можно добавлять в базу данных дополненных изображений во время выполнения, вплоть до ограничения в 1000 изображений на базу данных. Загрузить ранее созданные базы данных можно с помощью сетевого подключения.
При добавлении изображения можно указать физический размер изображения для обнаружения. Это улучшит производительность обнаружения изображений.
Если физический размер не указан, ARCore оценивает размер и со временем уточняет эту оценку.
Если указан физический размер, ARCore использует предоставленный размер и оценивает положение и ориентацию изображения, игнорируя любые несоответствия между видимым или фактическим размером и предоставленным физическим размером.
ARCore может реагировать и отслеживать изображения, которые:
Изображения, которые зафиксированы на месте, например, репродукция на стене или журнал на столе.
Движущиеся изображения, такие как реклама на проезжающем автобусе или изображение на плоском объекте, который держит пользователь, когда он двигает руками.
Как только ARCore начинает отслеживать изображение, он предоставляет оценки положения и ориентации изображения для каждого кадра. ARCore постоянно уточняет эти оценки по мере сбора новых данных.
После обнаружения изображения ARCore продолжает «отслеживать» положение и ориентацию изображения, даже если изображение временно выходит за пределы поля зрения камеры из-за того, что пользователь переместил свое устройство. Когда это происходит, ARCore предполагает, что положение и ориентация изображения статичны и что само изображение не перемещается в окружающей среде.
Все отслеживание происходит на устройстве. Для обнаружения и отслеживания изображений не требуется подключение к Интернету.
Требования
Изображения должны :
Заполните не менее 25 % кадра камеры для первоначального обнаружения.
Быть ровным (например, не мятым и не обхватывающим бутылку).
Будьте в зоне видимости камеры. Их не следует частично закрывать, рассматривать под сильно наклоненным углом или просматривать, когда камера движется слишком быстро из-за размытия изображения при движении.
Вопросы использования ЦП и производительности
В зависимости от того, какие функции ARCore уже включены, включение дополненных изображений может увеличить загрузку процессора ARCore. Рассмотрите возможность отключения любых неиспользуемых функций в то время, когда они не требуются для работы с дополненной реальностью. Это сделает дополнительные циклы ЦП доступными для вашего приложения, а также улучшит тепловые характеристики и время автономной работы.
Дополнительную информацию см. в разделе «Соображения производительности» .
Лучшие практики
Советы по выбору эталонных изображений
- Разрешение изображения должно быть не менее 300 x 300 пикселей . Использование изображений с высоким разрешением не улучшает производительность.
- Справочные изображения могут быть предоставлены в формате PNG или JPEG .
- Информация о цвете не используется . Как цветные, так и эквивалентные изображения в оттенках серого могут использоваться в качестве эталонных изображений или пользователями во время выполнения.
- Избегайте изображений с сильным сжатием , поскольку это мешает извлечению признаков.
- Избегайте изображений, содержащих большое количество геометрических элементов или очень мало элементов (например, штрих-коды, QR-коды, логотипы и другие штриховые рисунки), поскольку это приведет к ухудшению производительности обнаружения и отслеживания.
- Избегайте изображений с повторяющимися узорами , поскольку это также может вызвать проблемы с обнаружением и отслеживанием.
Используйте инструмент
arcoreimg
включенный в ARCore SDK, чтобы получить оценку качества от0
до100
для каждого изображения. Мы рекомендуем показатель качества не ниже 75 . Вот два примера:Пример изображения 1 Пример изображения 2 Оценка: 0
Оценка: 100
содержит повторяющиеся геометрические элементы достаточное разрешение; содержит множество уникальных функций
Советы по созданию базы данных изображений
- Используйте инструмент arcoreimg для Android , чтобы создать файл базы данных изображений. Этот инструмент доступен только для разработки под Android и Android NDK. Он встроен в Unity SDK и плагин ARCore Unreal.
- В базе данных хранится сжатое представление функций, извлеченных из данных в оттенках серого в эталонных изображениях. Каждая запись изображения занимает около 6 КБ.
- Добавление изображения в базу данных во время выполнения занимает около 30 мс.
- Добавляйте изображения в рабочий поток, чтобы избежать блокировки потока пользовательского интерфейса.
- Или, если возможно, добавляйте изображения во время компиляции с помощью инструмента
arcoreimg
, включенного в ARCore SDK.
- Если вы знаете ожидаемый физический размер изображения, укажите его. Эта информация повышает эффективность обнаружения и отслеживания, особенно для больших физических изображений (более 75 см).
- Избегайте хранения большого количества неиспользуемых изображений в базе данных, так как это незначительно влияет на производительность системы из-за увеличения загрузки ЦП.
Советы по оптимизации отслеживания
- Если ваше изображение никогда не сдвинется со своего исходного положения (например, плакат, прикрепленный к стене), вы можете прикрепить к изображению привязку , чтобы повысить стабильность отслеживания.
- Для первоначального обнаружения физическое изображение должно занимать не менее 25 % изображения камеры. Вы можете предложить пользователям разместить физическое изображение в кадре камеры.
- Не используйте оценки позы и размера изображения, пока состояние отслеживания изображения не станет полным. Если изображение первоначально обнаружено ARCore и не указан ожидаемый физический размер, его состояние отслеживания будет приостановлено. Это означает, что ARCore распознал изображение, но не собрал достаточно данных для оценки его местоположения в 3D-пространстве.