tutorial - SDK de Realidad Aumentada con OpenCV
reconocimiento facial opencv android studio (2)
Dado que las aplicaciones de RA a menudo se ejecutan en dispositivos móviles, también podría considerar otras características detector / descriptor:
Estoy desarrollando un SDK de Realidad Aumentada en OpenCV. Tuve algunos problemas para encontrar tutoriales sobre el tema, qué pasos seguir, posibles algoritmos, codificación rápida y eficiente para el rendimiento en tiempo real, etc.
Hasta ahora, he reunido la siguiente información y enlaces útiles.
Instalación de OpenCV
Descargue la última versión de lanzamiento .
Puede encontrar guías de instalación here (plataformas: linux, mac, windows, java, android, iOS).
documentation línea.
Realidad aumentada
Para los principiantes here hay un código simple de realidad aumentada en OpenCV. Es un buen comienzo.
Para cualquiera que busque un kit de desarrollo de software bien diseñado, encontré algunos pasos generales que debería tener cada realidad aumentada basada en el seguimiento de marcadores, teniendo en cuenta las funciones de OpenCV.
Programa principal: crea todas las clases, inicialización, capture marcos de video.
Clase AR_Engine: controla las partes de una aplicación de realidad aumentada. Debería haber 2 estados principales:
- detección : intenta detectar el marcador en la escena
- tracking : una vez que se detecta, utiliza técnicas computacionales más bajas para trazar el marcador en los próximos fotogramas.
También debería haber algunos algoritmos para encontrar la posición y orientación de la cámara en cada cuadro. Esto se consigue detectando la transformación de homografía entre el marcador detectado en la escena y una imagen 2D del marcador que hemos procesado fuera de línea. La explicación de este método here (página 18). Los principales pasos para las Estimaciones de Pose son:
Cargar parámetros intrínsecos de la cámara . Calibración fuera de línea extraída previamente.
Cargue el patrón (marcador) para rastrear: es una imagen del marcador plano que vamos a rastrear. Es necesario extraer características y generar descriptores ( keypoints ) para este patrón, de modo que más adelante podamos compararlo con las características de la escena. Algoritmos para esta tarea:
Para cada actualización de trama, ejecute un algoritmo de detección para extraer las características de la escena y generar descriptores. Nuevamente tenemos varias opciones.
Encuentra coincidencias entre el patrón y los descriptores de escena.
Encuentra la matriz de Homography de esas coincidencias. RANSAC se puede utilizar antes para encontrar inliers / outliers en el conjunto de coincidencias.
Extraer cámara Pose de homografía.
- Código de muestra en Pose from Homography .
- Código de muestra en Homography from Pose .
Ejemplos completos:
En general, si puede elegir los marcadores, primero detecta un objetivo cuadrado usando un detector de bordes y luego Hough o simplemente contornos, luego identifique el marcador particular del diseño interno. En lugar de utilizar un matcher de puntos general.
Eche un vistazo a Aruco para obtener un código de ejemplo bien escrito.