Cómo agregar dimensiones a las imágenes

Guías específicas de la plataforma

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

Proporcionas un conjunto de imágenes de referencia. ARCore usa un algoritmo de visión artificial para extraer características de la información en escala de grises de cada imagen y almacenar una representación de estas características en una o más bases de datos de imágenes aumentadas.

Durante el tiempo de ejecución, ARCore busca estas funciones en superficies planas del entorno del usuario. Esto permite que ARCore detecte estas imágenes en el mundo y estime su posición, orientación y tamaño si no se proporciona una.

Funciones

ARCore puede hacer un seguimiento de hasta 20 imágenes de forma simultánea. ARCore no detectará ni hará un seguimiento simultáneo de varias instancias de la misma imagen.

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

Se pueden agregar imágenes 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 anteriormente con una conexión de red.

Cuando agregas una imagen, puedes proporcionar el tamaño físico de la imagen para detectarla. De esta manera, se mejorará el rendimiento de la detección de imágenes.

  • Si no se proporciona un tamaño físico, ARCore lo estima y lo refina con el tiempo.

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

ARCore puede responder a imágenes y hacer un seguimiento de ellas en los siguientes casos:

  • Imágenes fijas, como un impreso colgado en una pared o una revista en una mesa

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

Una vez que ARCore comienza a rastrear una imagen, proporciona estimaciones de la posición y orientación de la imagen en cada fotograma. ARCore mejora estas estimaciones de forma continua a medida que recopila más datos.

Una vez que se detecta una imagen, ARCore continúa haciendo un "seguimiento" de su posición y orientación, incluso cuando la imagen sale temporalmente del campo de visión de la 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 la imagen no se mueve por el entorno.

Todo el seguimiento se realiza en el dispositivo. No se requiere conexión a Internet para detectar imágenes ni hacer un seguimiento de ellas.

Requisitos

Las imágenes deben cumplir con los siguientes requisitos:

  • Rellena al menos el 25% del encuadre de la cámara que se detectará inicialmente.

  • Debe ser una superficie plana (por ejemplo, no arrugada ni envuelta alrededor de una botella).

  • Asegúrate de que la cámara pueda ver claramente tu rostro. No deben estar parcialmente oscurecidos, verse en un ángulo muy oblicuo ni visualizarse cuando la cámara se mueve demasiado rápido debido al desenfoque por movimiento.

Consideraciones sobre el uso y el rendimiento de la CPU

Según las funciones de ARCore ya habilitadas, habilitar las imágenes aumentadas puede aumentar el uso de CPU de ARCore. Considera inhabilitar las funciones que no se usen cuando tu experiencia de RA no las requiera. Esto pondrá a disposición ciclos de CPU adicionales para tu app y mejorará el rendimiento térmico y la duración de batería.

Para obtener más información, consulta las consideraciones sobre el rendimiento.

Prácticas recomendadas

Sugerencias para seleccionar imágenes de referencia

  • La resolución de la imagen debe ser de al menos 300 x 300 píxeles. Usar 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 de color. Tanto las imágenes en color como las equivalentes en escala de grises se pueden usar como imágenes de referencia o por los usuarios durante el tiempo de ejecución.
  • Evita las imágenes con compresión pesada, ya que esto interfiere con la extracción de atributos.
  • Evita usar imágenes que contengan una gran cantidad de componentes geométricos o muy pocos (p.ej., códigos de barras, códigos QR, logotipos y otros diseños de líneas), ya que esto generará un rendimiento deficiente en la detección y el seguimiento.
  • Evita las imágenes con patrones repetitivos, ya que esto también puede causar problemas con la detección y el seguimiento.
  • Usa la herramienta arcoreimg incluida en el SDK de ARCore para obtener un nivel de calidad de entre 0 y 100 para cada imagen. Recomendamos un nivel de calidad de, al menos, 75. A continuación, presentamos dos ejemplos:

    Imagen de ejemplo 1 Imagen de ejemplo 2
    Puntuación: 0 Puntuación: 100
    contiene elementos 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 para 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 en el complemento de Unreal de ARCore.
  • La base de datos almacena una representación comprimida de las características extraídas de los datos en escala de grises en las imágenes de referencia. Cada entrada de imagen ocupa alrededor de 6 KB.
  • Agregar una imagen a la base de datos durante el tiempo de ejecución demora alrededor de 30 ms.
    • Agrega imágenes en un subproceso de trabajo para evitar bloquear el subproceso de IU.
    • Si es posible, agrega imágenes en el tiempo de compilación con la herramienta arcoreimg incluida 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 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 adjuntar una 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 la 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 inicialmente y no se especifica un tamaño físico esperado, se pausa su estado de seguimiento. Esto significa que ARCore reconoció la imagen, pero no recopiló datos suficientes para estimar su ubicación en el espacio 3D.