Cómo agregar dimensiones a las imágenes

Guías específicas para plataformas

Las APIs de Augmented Images en ARCore te permiten crear apps de RA que pueden detectar y aumentar imágenes en 2D del entorno del usuario, como afiches o productos empaquetado.

Tú proporcionas un conjunto de imágenes de referencia. ARCore usa un algoritmo de visión artificial para extraer atributos de la información en escala de grises de cada imagen y almacenar una representación de estas funciones 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 en la parte en un entorno de nube. Esto permite que ARCore detecte estas imágenes en el mundo y calcule su posición, orientación y tamaño si no se proporcionan.

Funciones

ARCore puede hacer un seguimiento de hasta 20 imágenes de forma simultánea. ARCore no realizará simultáneamente detectar o hacer un seguimiento de varias instancias de la misma imagen.

Cada base de datos de imágenes aumentadas puede almacenar información hasta 1,000 referencias imágenes de contenedores. No hay límite para la cantidad de bases de datos, pero solo hay una base de datos pueden estar activas en cualquier momento.

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. Se pueden descargar los archivos creados anteriormente bases de datos con una conexión de red.

Cuando agregas una imagen, puedes indicar su tamaño físico. para detectarlo. Esto mejorará el rendimiento de la detección de imágenes.

  • Si no se proporciona un tamaño físico, ARCore lo estima y lo define mejor a lo largo del tiempo.

  • Si se proporciona un tamaño físico, ARCore usa el tamaño y las estimaciones proporcionados la posición y orientación de la imagen, ignorando cualquier discrepancia entre el tamaño real o aparente y el tamaño físico proporcionado.

ARCore puede responder a imágenes que presenten las siguientes características y hacer un seguimiento de ellas:

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

  • Imágenes en movimiento, como un anuncio en un autobús o una imagen en una superficie plana objeto sostenido por el usuario mientras mueve sus manos.

Cuando ARCore comienza a rastrear una imagen, proporciona estimaciones de su posición y orientar cada fotograma. ARCore perfecciona continuamente estas estimaciones a medida que recopila más datos.

Cuando se detecta una imagen, ARCore continúa con el “seguimiento” la posición de la imagen y aun cuando la imagen se mueve temporalmente fuera 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 es en sí moviéndose por el entorno.

Todo el seguimiento se realiza en el dispositivo. No se requiere conexión a Internet para detectar y realizar un seguimiento de las imágenes.

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 tener una vista clara de la cámara. No deben estar oscurecidos de forma parcial, ni verse parcialmente en un ángulo muy oblicuo, o bien visto cuando la cámara se mueve demasiado rápido debido a desenfoque de movimiento.

Consideraciones de uso y rendimiento de CPU

Según las funciones de ARCore ya habilitadas, habilitar la función Augmented Las imágenes pueden aumentar el uso de CPU de ARCore. Inhabilita las apps que no uses funciones en momentos en los que tu experiencia de RA no las requiere. Si confirmas esta acción, ponen a disposición ciclos de CPU adicionales para tu app y la duración de batería.

Para obtener más información, consulta 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 x 300 píxeles. Cómo usar imágenes con alta resolución no mejora el rendimiento.
  • Las imágenes de referencia están disponibles en formato de archivo PNG o JPEG.
  • No se usa la información de color. Imágenes a color y en escala de grises equivalentes pueden usarse como imágenes de referencia o por usuarios en el entorno de ejecución.
  • Evita las imágenes con una compresión pesada, ya que esto interfiere con la función. la extracción de datos.
  • Evite imágenes que contengan una gran cantidad de características geométricas pocas funciones (p.ej., códigos de barras, códigos QR, logotipos y otros elementos gráficos), ya que esta esto generará un rendimiento deficiente en la detección y el seguimiento.
  • Evita imágenes con patrones repetidos, 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 entre 0 y 100 para cada imagen. Recomendamos un nivel de calidad de 75 como mínimo. A continuación, presentamos dos ejemplos:

    Imagen de ejemplo 1 Imagen de ejemplo 2
    Puntuación: 0 Puntuación: 100
    contiene características geométricas repetitivas resolución suficiente; tiene muchas funciones ú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 Android y el desarrollo de NDK de Android. Está integrado en el SDK de Unity y ARCore Complemento de Unreal.
  • La base de datos almacena una representación comprimida de los atributos extraídos de los datos en escala de grises de las imágenes de referencia. Cada entrada de imagen ocupa alrededor de 6 KB.
  • Agregar una imagen a la base de datos en el tiempo de ejecución tarda alrededor de 30 ms.
    • Agrega imágenes a 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. 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, especialmente 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 una leve 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, una pegado a una pared), puedes colocar un 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 su marco de la cámara.
  • No usar las estimaciones de pose y tamaño de la imagen hasta que se realice el seguimiento es el seguimiento completo. Cuando una imagen es detectada inicialmente por ARCore y no se especificó el tamaño físico esperado, su estado de seguimiento detenerse. Esto significa que ARCore reconoció la imagen, pero No se recopilaron suficientes datos para estimar su ubicación en un espacio 3D.