Estoy intentando hacer que mi detección de marcador de fiduciario basada en OpenCV sea más robusta cuando el usuario mueve la cámara (teléfono) violentamente. Los marcadores son de estilo ArTag con un código Hamming incrustado dentro de un borde negro. Los bordes se detectan mediante el umbral de la imagen, luego se buscan los cuádriceps basados en los contornos encontrados y luego se verifica el interior de los cuádriceps.Detección de marcador fiducial en presencia de movimiento de cámara
En general, la decodificación del marcador es bastante robusta si se reconoce el borde negro. Intenté lo más obvio, que es reducir la resolución de la imagen dos veces y también realizar la detección cuádruple en esos niveles. Esto ayuda con el desenfoque de la cámara en marcadores cercanos cercanos, y también con niveles muy pequeños de borrosidad de la imagen, pero no ayuda enormemente al desenfoque de movimiento de la cámara
¿Hay investigaciones disponibles sobre cómo hacer que la detección sea más robusta? Las ideas que me pregunto acerca incluyen:
- Se puede hacer algún tipo de seguimiento de flujo óptico "adivinar" las posiciones del marcador en el siguiente cuadro, a continuación, una especie de detector de esquinas en la región de esas conjeturas, en lugar de tratar la búsqueda de rectángulo como un umbral de marco completo?
- En PC, ¿es posible derivar coeficientes de desenfoque (quizás mediante el registro con fotogramas de video recientes donde se detectó el marcador) y desbloquear la imagen antes del procesamiento?
- En los teléfonos inteligentes, ¿es posible usar el giroscopio y/o los acelerómetros para obtener los coeficientes de desbarbado y preprocesar la imagen? (Estoy suponiendo que no, simplemente porque si lo fuera, el mercado se vería inundado con aplicaciones de movimiento de la cámara de corrección.)
Enlaces a las ideas fallidas también se agradecería que me ahorra de probarlos.