Добавьте размерности изображениям

Руководства для конкретных платформ

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-пространстве.