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

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

API-интерфейсы расширенных изображений в ARCore позволяют создавать приложения дополненной реальности, которые могут обнаруживать и дополнять 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 распознал изображение, но не собрал достаточно данных, чтобы оценить его местоположение в трехмерном пространстве.