Complementando la realidad: material de revisión
Publicado por Igor Litvinenko, Desarrollador móvil sénior.Probablemente todos hayan oído hablar de los cascos de realidad virtual que crean el efecto de estar en el mundo virtual. Sin embargo, hoy me gustaría hablar no sobre la realidad virtual, sino sobre la realidad aumentada. Es importante distinguir estos conceptos. En los cascos de la realidad virtual, se genera toda la imagen, tal realidad es completamente artificial. La realidad aumentada, a diferencia de la realidad virtual, no implica la creación de una realidad completamente artificial, sino la adición del flujo de video de nuestra realidad a los objetos y datos virtuales. Por lo tanto, se produce la combinación del mundo virtual y real.Tecnologías principales de realidad aumentada
¿Cómo se crea la realidad aumentada? Para que ocurra la adición de un objeto real específico, es necesario detectar este objeto real en la transmisión de video. Esto es lo más importante: después del descubrimiento de un objeto, ya no es difícil terminar algo y de alguna manera complementarlo. Hay diferentes formas de detectar los objetos deseados, principalmente para esto, se utilizan marcadores de realidad aumentada. A continuación, en la secuencia evolutiva, se enumeran los principales métodos para detectar objetos complementados:- El marcador o imagen más simple.
- Sin Marcadores - Realidad Aumentada sin Marcadores.
- Marcadores 3D simples.
- Una combinación de marcadores para representar objetos complejos (cilindro, cubo, caja).
- Marcador de marco.
- De acuerdo con la ubicación.
- Realidad Aumentada Real.
Marcador de imagen
El marcador de realidad aumentada más simple puede reconocerse fácilmente por el grueso marco negro. Tal objeto es muy fácil de detectar en la transmisión de video:
- Requisitos:
- Un marco negro cuyo ancho es de al menos 10%.
- Solo blanco y negro.
- Invariante a los giros: podemos indicar el ángulo exacto de rotación en cualquier momento.
- Siempre cuadrado.
- Los algoritmos aquí son los más simples: podemos determinar los bordes de la imagen (detección de bordes), el cuadrado y el cuadrado blanco en el medio, haciendo estos umbrales, binarizando la pantalla. De esta forma podemos acceder al contenido interior, recortarlo y trabajar con él como una imagen: es mucho más fácil que escanear todo el marco.
- Detección de esquinas.
- Detección de manchas.
- Detección de bordes.
- Umbralización
- Beneficio:
- El algoritmo de detección más simple es una gran cantidad de bibliotecas abiertas y cerradas que pueden detectar un marcador.
- El más estable: el marcador siempre se detecta con mucha precisión y prácticamente no hay efecto de jitter modelo.
Sin marcadores
A pesar del nombre, con el enfoque sin marcador, el marcador, de hecho, todavía está allí. Es solo que aquí no se ve como un marcador, sino como una imagen.
- Requisitos:
- Una gran cantidad de piezas pequeñas.
- Cuantos más colores, mejor.
- Es invariante a las vueltas.
- La relación ideal es 1: 1, es decir, cuanto más cerca del cuadrado, mejor. Con una relación de 1: 2 o más, el marcador se reconoce muy mal
- Algoritmos Los puntos característicos se utilizan para detectar dichos marcadores: digamos que este es el punto donde cambia el gradiente. Es decir, este es el punto donde es visible un límite claro. También se puede usar un algoritmo para encontrar puntos geométricos: en algunos lugares de la imagen hay marcadores precisos que forman esquinas; por ejemplo, una cruz puede ser un punto geométrico.
- Detect interest points.
- Fiducial markers/
- Edge detection — .
- Simultaneous localization and mapping (SLAM) — .
- :
Esta tecnología le permite tener en cuenta la forma simple de los objetos tridimensionales: un cubo, un cilindro, etc. Aquí podemos crear una configuración que ayude a comprender qué tipo de objeto está frente a nosotros; por ejemplo, un objeto de cierta forma con una determinada combinación de colores puede servir como marcador (por ejemplo, nosotros hizo una aplicación que define el medicamento por envase y etiqueta). También creamos una aplicación que reconoce las marcas de vino: la biblioteca podría encontrar etiquetas desde diferentes ángulos, lo que no funciona en tecnología sin marcadores o simple debido a la transformación de marcadores no lineal.Marcador de marco
Digamos que estás teniendo una conferencia. Tienes un logotipo que cuelgas en las paredes para mostrarle a la gente a dónde ir. Solo hay un logotipo, por lo tanto, todas las imágenes son iguales; Al hacerlo, debe identificar de forma única cada imagen. Como hacerlo Usando un marcador de marco. Cuando se usa el marcador de cuadro, la ID de la imagen se cifra en el cuadro:
- Requisitos:
- Marco unificado
- Es invariante a las vueltas.
- Siempre cuadrado.
- La imagen interior debe estar en contraste con el marco.
- Tamaño pequeño (3-10 cm).
- Algoritmos
- Beneficio:
- La capacidad de identificar de forma única el mismo marcador.
Realidad aumentada basada en la ubicación
Si caminas por la ciudad y obtienes información sobre los edificios que ves, lo más probable es que la realidad se agregue usando la ubicación.
En este caso, no hay tarea de reconocimiento de imagen. Esta tecnología se basa en el uso de un receptor GPS, brújula y acelerómetro presente en el dispositivo móvil. Gracias a ellos, sabemos en qué dirección estamos mirando. Por lo tanto, para complementar la realidad, solo necesita responder correctamente a las lecturas de los sensores del dispositivo móvil. Esta tarea no es tan difícil: hay suficientes bibliotecas que la hacen bien.Realidad Aumentada Real
No hay marcadores aquí. Aquí, sobre la marcha, determinamos las formas y características 3D de cualquier objeto que caiga en la lente de la cámara. Necesitamos conocer la profundidad del objeto para convertir una imagen 2D en 3D. Para hacer esto, puede usar, por ejemplo, el algoritmo SLAM ya mencionado, que busca puntos característicos en los objetos circundantes. Hasta ahora, en dispositivos móviles, todo esto es muy lento. Ahora la tecnología de esta realidad aumentada está implementando activamente Sony en conjunto con la PlayStation.Keyshare - keyshare.org
Y ahora te contaré cómo escribimos nuestro motor de realidad aumentada en DataArt y por qué lo hicimos.Una startup suiza decidió proponer un nuevo sistema para aumentar las ventas basado en el uso de tecnología de realidad aumentada, y desarrollamos este sistema para ello. Así es como funciona.Tenemos un marcador de realidad aumentada patentado en forma de una imagen clave que se puede colocar, por ejemplo, en una revista junto a la descripción de un producto. Los puntos blancos de diferentes tamaños dentro de esta tecla le permiten identificar de manera única el contenido. Hay un servidor: toma el código leído de la clave y devuelve al usuario una variedad de datos sobre el producto, su modelo 3D, etc.
Para desarrollar dicha clave, probamos todas las bibliotecas más populares, pero no pudimos encontrar un marcador que se adaptara a cualquier combinación. Cuando usamos la realidad aumentada de marcadores, se ubica en puntos clave. El marcador es blanco y negro, y los puntos clave se concentran en lugares cambiantes. Al final, decidimos escribir todo desde cero.Utilizamos el algoritmo de búsqueda MSER, que encuentra solo un alcance. Después de todo, sabemos que definitivamente hay una tecla negra y definitivamente hay una cruz blanca dentro de esta tecla. Por lo tanto, primero encontramos una gran región negra, y dentro de esta región encontramos una región blanca. Luego recortamos la imagen y observamos la relación de aspecto: debe ser 2: 1. A continuación, analizamos el formulario. Centrándose en la cruz, podemos encontrar el comienzo de la frase clave. En cuanto a los puntos, siempre están ubicados en los mismos lugares, por lo que encontrarlos también es fácil. Como resultado, tenemos un algoritmo de búsqueda de marcadores para el formulario. Esto, por supuesto, no es una solución universal, pero realiza bien nuestra tarea.Entonces, en el iPhone 5S, obtuvimos un rendimiento de más de 25 FPS. Lograr esto fue bastante difícil. Al principio, como con cualquier algoritmo, redujimos la imagen: el algoritmo de reconocimiento funciona mucho mejor en una imagen reducida con baja calidad. Luego, introdujeron el algoritmo de predicción: después de encontrar la imagen, suponemos que la clave no puede salir del cuadro en más de un cierto valor de píxel. Luego acortamos la imagen. Después de eso, analizamos la dinámica: si el usuario gira el teléfono hacia la izquierda, la tecla se moverá hacia la derecha. Este es un algoritmo probabilístico. Si no encontramos de inmediato lo que estamos buscando, comenzamos a procesar un área cada vez más grande. Tenemos un gran algoritmo de representación de modelos, que fue escrito desde cero.¿Qué más tenemos? Hay tres filas en la tecla, en cada una de ellas hay 13 puntos. Esto significa que son posibles 469 combinaciones. Como la imagen ya está algo borrosa a una distancia de más de un metro, creamos un algoritmo de descifrado probabilístico con corrección de errores. Lo usamos junto con una tecla de autocorrección. Entonces identificamos con precisión los cuatro signos falsos, lo cual es suficiente. También tenemos un algoritmo de detección optimizado, un algoritmo de seguimiento y predicción para la siguiente posición.A pesar del hecho de que dicha clave recuerda un poco a un código QR, existen diferencias fundamentales. No puede adjuntar realidad aumentada al código QR, porque su contenido cambia constantemente. En otras palabras, no puede crearlo como un marcador. No puede ponerle un modelo 3D y no puede determinar el ángulo de rotación. Además, dicha clave es muy fácilmente reconocible.Reconocimiento de clubes de fútbol
También desarrollamos una aplicación que ayuda a los usuarios a realizar un seguimiento de sus clubes de fútbol favoritos. Le permite agregar realidad virtual a la imagen del logotipo de un club de fútbol: cuando coloca la cámara sobre el logotipo, se muestran los datos del club. Source: https://habr.com/ru/post/es391055/
All Articles