Imágenes aumentadas para Android

Las API de imágenes aumentadas en ARCore le permiten crear aplicaciones AR que pueden 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 utiliza un algoritmo de visión por computadora para extraer características de la información en escala de grises en cada imagen y almacena una representación de estas características en una o más bases de datos de imágenes aumentadas.

En tiempo de ejecución, ARCore busca estas características en superficies planas en el entorno del usuario. Esto le permite a ARCore detectar estas imágenes en el mundo y estimar su posición, orientación y tamaño si no se proporciona una.

Capacidades

ARCore puede rastrear hasta 20 imágenes simultáneamente. ARCore no detectará ni rastreará simultáneamente varias instancias de la misma imagen.

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

Las imágenes se pueden agregar a una base de datos de imágenes aumentadas en tiempo de ejecución, hasta el límite de 1,000 imágenes por base de datos. Es posible descargar bases de datos creadas previamente mediante una conexión de red. Consulte la guía para desarrolladores para más detalles.

Al agregar una imagen, es posible proporcionar el tamaño físico de la imagen a detectar. Si lo hace, mejorará el rendimiento de detección de imágenes.

  • Si no se proporciona el tamaño físico, ARCore estima el tamaño y refina esta estimación con el tiempo.

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

ARCore puede responder y rastrear imágenes que son:

  • Imágenes que se fijan en su lugar, como una impresión colgada 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 sostenido por el usuario mientras mueve sus manos.

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

Una vez que se detecta una imagen, ARCore continúa "rastreando" la posición y orientación de la imagen, incluso cuando la imagen se mueve temporalmente fuera de la vista de la cámara porque el usuario ha movido su dispositivo. Al hacerlo, ARCore asume que la posición y la orientación de la imagen son estáticas y que la imagen no se mueve en sí misma a través del entorno.

Uso TrackingMethod para determinar si Arcore realiza un seguimiento de una imagen basada en el que la imagen se detecta actualmente en la vista de cámara ( FULL_TRACKING ), o en base a su posición más recientemente detectado en el mundo ( LAST_KNOWN_POSE ).

Todo el seguimiento ocurre en el dispositivo. No se requiere conexión a Internet para detectar y rastrear imágenes.

Requisitos

Las imágenes deben:

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

  • Sea plano (por ejemplo, no arrugado ni envuelto alrededor de una botella).

  • Esté a la vista de la cámara. No deben oscurecerse parcialmente, verse en un ángulo muy oblicuo o verse cuando la cámara se mueve demasiado rápido debido al desenfoque de movimiento.

Consideraciones sobre la utilización y el rendimiento de la CPU

Dependiendo de las funciones de ARCore que ya estén habilitadas, habilitar las imágenes aumentadas podría aumentar la utilización de la CPU de ARCore. Considere la posibilidad de deshabilitar las funciones no utilizadas durante los momentos en que su experiencia de RA no las requiera. Esto hará que los ciclos de CPU adicionales estén disponibles para su aplicación y mejorará el rendimiento térmico y la duración de la batería.

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

Mejores prácticas

Consejos 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 de alta resolución no mejora el rendimiento.
  • Las imágenes de referencia pueden proporcionarse en formato de archivo PNG o JPEG.
  • La información de color no se usa. Tanto las imágenes en color como las equivalentes en escala de grises se pueden utilizar como imágenes de referencia o por los usuarios en tiempo de ejecución.
  • Evitar las imágenes con una fuerte compresión que esto interfiere con la extracción de características.
  • Evitar en caso de imágenes que contienen un gran número de características geométricas, o muy pocas características (por ejemplo, códigos de barras, códigos QR, logotipos y otras líneas) ya que esto dará lugar a mala detección y el seguimiento del rendimiento.
  • Evitar las imágenes con la repetición de patrones ya que esto también puede causa problemas con la detección y el seguimiento.
  • Usar la arcoreimg herramienta incluida en el SDK de Arcore para obtener una puntuación de calidad entre 0 y 100 para cada imagen. Se recomienda un nivel de calidad de al menos 75. A continuación, se muestran 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; contiene muchas características únicas

Consejos para crear la base de datos de imágenes

  • 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 unos 6 KB.
  • Se necesitan unos 30 ms para agregar una imagen a la base de datos en tiempo de ejecución.
    • Agregue imágenes en un hilo de trabajo para evitar bloquear el hilo de la interfaz de usuario.
    • O, si es posible, añadir imágenes en tiempo de compilación usando el arcoreimg herramienta incluida en el SDK de Arcore.
  • Si conoce el tamaño físico esperado de una imagen, especifíquelo. Esta información mejora el rendimiento de detección y seguimiento, especialmente para imágenes físicas de gran tamaño (más de 75 cm).
  • Evite mantener muchas imágenes no utilizadas en la base de datos porque hay un ligero impacto en el rendimiento del sistema debido a una mayor utilización de la CPU.

Consejos para optimizar el seguimiento

  • Si su imagen nunca se moverá de su posición inicial (por ejemplo, un póster pegado a una pared), puede adjuntar un ancla global a la imagen para aumentar la estabilidad de seguimiento.
  • La imagen física debe ocupar al menos el 25% de la imagen de la cámara para la detección inicial. Se puede solicitar a los usuarios para adaptarse a la imagen física en el marco de su cámara con la FitToScan.png activo. Consulte la guía para desarrolladores para un ejemplo de este mensaje.
  • No utilice estimaciones Pose y el tamaño de la imagen hasta el estado de seguimiento de la imagen es FULL_TRACKING . Cuando una imagen se detecta inicialmente por Arcore, y se especifica ningún tamaño físico esperado, su estado de seguimiento será PAUSED . Esto significa que ARCore ha reconocido la imagen, pero no ha recopilado datos suficientes para estimar su ubicación en el espacio 3D.

Ver también