Cómo agregar dimensiones a las imágenes

Guías específicas para cada plataforma

Las APIs de imágenes aumentadas de ARCore te permiten compilar apps de RA que pueden detectar y aumentar imágenes 2D en el entorno del usuario, como pósteres o paquetes de productos.

Debes proporcionar un conjunto de imágenes de referencia. ARCore usa un algoritmo de visión artificial para extraer funciones de la información en escala de grises de cada imagen y almacena una representación de esos atributos en una o más bases de datos de imágenes aumentadas.

Durante el tiempo de ejecución, ARCore busca estas características en superficies planas del entorno del usuario. Esto permite que ARCore detecte esas imágenes en el mundo y calcule su posición, orientación y tamaño si no se proporcionan.

Capacidades

ARCore puede realizar el seguimiento de hasta 20 imágenes a la vez. ARCore no detectará ni hará un seguimiento de varias instancias de la misma imagen de forma simultánea.

Cada base de datos de imágenes aumentadas puede almacenar información hasta de 1,000 imágenes de referencia. No hay un límite para la cantidad de bases de datos, pero solo puede estar activa una base de datos a la vez.

Las imágenes se pueden agregar a una base de datos de imágenes aumentadas durante el tiempo de ejecución, hasta el límite de 1,000 imágenes por base de datos. Es posible descargar bases de datos creadas con anterioridad a través de una conexión de red.

Cuando se agrega una imagen, es posible proporcionar el tamaño físico de la imagen que se va a detectar. Esto mejorará el rendimiento de la detección de imágenes.

  • Si no se proporciona un tamaño físico, ARCore estima el tamaño y define mejor esa estimación con el tiempo.

  • Si se proporciona un tamaño físico, ARCore usará el tamaño proporcionado y estima la posición y orientación de la imagen, sin importar las discrepancias entre el tamaño aparente o real y el tamaño físico proporcionado.

ARCore puede responder a las imágenes que cumplen con las siguientes condiciones y hacer un seguimiento de ellas:

  • Imágenes fijas, como una impresión colgada en la pared o una revista sobre una mesa

  • Imágenes en movimiento, como un anuncio en un autobús que pasa por el lugar o una imagen en un objeto plano que sostiene el usuario mientras mueve las manos

Una vez que ARCore comienza a realizar el seguimiento de una imagen, proporciona estimaciones de posición y orientación de la imagen en cada fotograma. ARCore refina continuamente estas estimaciones a medida que recopila más datos.

Una vez que se detecta una imagen, ARCore continúa "realizando un seguimiento" de la posición y orientación de la imagen, incluso cuando la imagen sale temporalmente de la vista de cámara porque el usuario movió su dispositivo. Cuando esto sucede, ARCore supone que la posición y la orientación de la imagen son estáticas y que esta no se mueve por el entorno.

Todos los seguimientos se realizan en el dispositivo. No se necesita conexión a Internet para detectar imágenes y hacerles un seguimiento.

Requisitos

Las imágenes deben cumplir con los siguientes requisitos:

  • Llena al menos el 25% del marco de la cámara para que se detecte inicialmente.

  • Debe estar plana (por ejemplo, no estar arrugado ni envuelto en una botella).

  • Asegúrate de que la cámara se vea claramente. No deben oscurecer parcialmente, verse en un ángulo muy oblicuo ni verse cuando la cámara se mueve demasiado rápido debido al desenfoque de movimiento.

Consideraciones de uso y rendimiento de CPU

Según las funciones de ARCore que ya estén habilitadas, habilitar las imágenes aumentadas podría aumentar el uso de CPU de ARCore. Procura inhabilitar las funciones que no se usen durante los momentos en que la experiencia de RA no las requieran. Esto hará que los ciclos de CPU adicionales estén disponibles para tu app y mejorará el rendimiento térmico y la duración de batería.

Para obtener información adicional, consulta las consideraciones de rendimiento.

Prácticas recomendadas

Sugerencias para seleccionar imágenes de referencia

  • La resolución de la imagen debe ser de al menos 300 × 300 píxeles. El uso de imágenes con alta resolución no mejora el rendimiento.
  • Las imágenes de referencia se pueden proporcionar en formato de archivo PNG o JPEG.
  • No se usa la información sobre el color. Tanto las imágenes en color como las equivalentes en escala de grises se pueden usar como imágenes de referencia, o bien los usuarios pueden utilizarlas durante el tiempo de ejecución.
  • Evita las imágenes con compresión intensa, ya que esto interfiere en la extracción de características.
  • Evita las imágenes que contengan una gran cantidad de características geométricas o muy pocas funciones (p.ej., códigos de barras, códigos QR, logotipos y otras líneas de arte), ya que esto generará un rendimiento deficiente de la detección y el seguimiento.
  • Evita las imágenes con patrones repetitivos, ya que esto también puede causar problemas de detección y seguimiento.
  • Usa la herramienta arcoreimg incluida en el SDK de ARCore para obtener un nivel de calidad entre 0 y 100 para cada imagen. Recomendamos obtener un nivel de calidad de al menos 75. Estos son dos ejemplos:

    Imagen de ejemplo 1 Imagen de ejemplo 2
    Puntuación: 0 Puntuación: 100
    contiene atributos geométricos repetitivos resolución suficiente; contiene muchas características únicas

Sugerencias para crear la base de datos de imágenes

  • Usa la herramienta Arcoreimg para Android a fin de generar un archivo de base de datos de imágenes. Esta herramienta solo está disponible para el desarrollo del NDK de Android y Android. Está integrado en el SDK de Unity y el complemento de ARCore Unreal.
  • La base de datos almacena una representación comprimida de los atributos extraídos de los datos en escala de grises en las imágenes de referencia. Cada entrada de imagen ocupa alrededor de 6 KB.
  • Se necesitan alrededor de 30 ms para agregar una imagen a la base de datos en el entorno de ejecución.
    • Agrega imágenes en un subproceso de trabajo para evitar bloquear el subproceso de IU.
    • O, si es posible, agrega imágenes en el tiempo de compilación con la herramienta arcoreimg que se incluye en el SDK de ARCore.
  • Si conoces el tamaño físico esperado de una imagen, especifícalo. Esta información mejora el rendimiento de la detección y el seguimiento, en especial para las imágenes físicas grandes (más de 75 cm).
  • Evita mantener muchas imágenes sin usar en la base de datos, ya que hay un ligero impacto en el rendimiento del sistema debido al aumento del uso de CPU.

Sugerencias para optimizar el seguimiento

  • Si la imagen nunca se moverá de su posición inicial (por ejemplo, un póster fijado a una pared), puedes fijar un ancla a la imagen para aumentar la estabilidad del seguimiento.
  • Para la detección inicial, la imagen física debe ocupar al menos el 25% de la imagen de la cámara. Puedes pedirles a los usuarios que ajusten la imagen física en el marco de su cámara.
  • No uses las estimaciones de pose y tamaño de la imagen hasta que el estado de seguimiento de la imagen sea de seguimiento completo. Cuando ARCore detecta una imagen por primera vez y no se especificó el tamaño físico esperado, se pausará su estado de seguimiento. Esto significa que ARCore reconoció la imagen, pero no recopiló suficientes datos para estimar su ubicación en un espacio 3D.