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

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

API дополненной реальности в ARCore позволяют создавать приложения дополненной реальности, способные обнаруживать и дополнять двухмерные изображения в окружении пользователя, например, плакаты или упаковку товаров.

Вы предоставляете набор эталонных изображений. ARCore использует алгоритм компьютерного зрения для извлечения признаков из информации в оттенках серого в каждом изображении и сохраняет представление этих признаков в одной или нескольких базах данных дополненных изображений.

В процессе выполнения ARCore ищет эти объекты на плоских поверхностях в окружении пользователя. Это позволяет ARCore обнаруживать эти изображения в окружающем мире и оценивать их положение, ориентацию и размер, если они не указаны.

Возможности

ARCore может отслеживать до 20 изображений одновременно. ARCore не будет одновременно обнаруживать или отслеживать несколько экземпляров одного и того же изображения.

Каждая база данных дополненных изображений может хранить информацию до 1000 эталонных изображений. Количество баз данных не ограничено, но одновременно может быть активна только одна база данных.

Изображения можно добавлять в базу данных дополненных изображений во время выполнения, до лимита в 1000 изображений на базу данных. Также можно загрузить ранее созданные базы данных, используя сетевое соединение.

При добавлении изображения можно указать физический размер изображения для обнаружения. Это повысит эффективность обнаружения изображений.

  • Если физический размер не указан, ARCore оценивает размер и уточняет эту оценку с течением времени.

  • Если указан физический размер, ARCore использует этот размер и оценивает положение и ориентацию изображения, игнорируя любые расхождения между видимым или фактическим размером и указанным физическим размером.

ARCore может реагировать на изображения и отслеживать их, если они:

  • Изображения, зафиксированные на месте, например, гравюра, висящая на стене, или журнал на столе.

  • Движущиеся изображения, такие как реклама на проезжающем автобусе или изображение на плоском предмете, который пользователь держит в руках, двигая ими.

Как только ARCore начинает отслеживать изображение, он предоставляет оценки положения и ориентации изображения в каждом кадре. ARCore постоянно уточняет эти оценки по мере сбора новых данных.

После обнаружения изображения ARCore продолжает «отслеживать» его положение и ориентацию, даже если изображение временно выходит из поля зрения камеры из-за перемещения устройства пользователем. В таких случаях ARCore предполагает, что положение и ориентация изображения статичны и что само изображение не перемещается в окружающей среде.

Отслеживание происходит непосредственно на устройстве. Для обнаружения и отслеживания изображений подключение к интернету не требуется.

Требования

Изображения должны :

  • Для первоначального обнаружения необходимо заполнить не менее 25% кадра камеры.

  • Она должна быть плоской (например, не мятой и не обернутой вокруг бутылки).

  • Они должны находиться в поле зрения камеры. Изображения не должны быть частично заслонены, не должны быть сняты под слишком косым углом или сняты при слишком быстром движении камеры из-за размытия, вызванного движением.

Вопросы использования ЦП и производительности

В зависимости от того, какие функции ARCore уже включены, активация дополненной реальности может увеличить загрузку ЦП ARCore. Рекомендуется отключать неиспользуемые функции в моменты, когда ваша AR-приложение их не требует. Это высвободит дополнительные ресурсы ЦП для вашего приложения, улучшит теплоотвод и увеличит время автономной работы.

Для получения дополнительной информации см. раздел «Вопросы производительности» .

Передовые методы

Советы по выбору эталонных изображений

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