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 carteles 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 características 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 de varias instancias de la misma imagen de forma simultánea.

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.

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 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 hacer un seguimiento de 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 de la vista 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:

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

  • Estar plana (por ejemplo, no debe estar arrugada ni enrollada alrededor de una botella).

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

Consideraciones sobre el uso y el rendimiento de la CPU

Según las funciones de ARCore que ya estén habilitadas, habilitar las imágenes de realidad aumentada podría aumentar el uso de la CPU de ARCore. Considera inhabilitar las funciones que no se usen cuando tu experiencia de RA no las requiera. Esto hará que haya ciclos de CPU adicionales disponibles 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. 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 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 las imágenes que contengan una gran cantidad de características geométricas o muy pocas (p.ej., códigos de barras, códigos QR, logotipos y otros dibujos lineales), ya que esto provocará 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 con la detección y el seguimiento.
  • Usa la herramienta arcoreimg incluida en el SDK de ARCore para obtener una puntuación de calidad 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 de Android y Android NDK. 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.
    • O, 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 esto tiene un ligero efecto en el rendimiento del sistema debido al aumento del uso de la 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.
  • La imagen física debe ocupar al menos el 25% de la imagen de la cámara para la detección inicial. 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ó suficientes datos para estimar su ubicación en el espacio 3D.