Algoritmo de autocalibración de cámara monocular fácil

Tengo un video de una carretera / edificio y quiero crear un modelo 3D a partir de él. La escena que estoy viendo es rígida y el dron se está moviendo. Supongo que no tengo información adicional como la pose de la cámara, las aceleraciones o la posición del GPS. Me encantaría encontrar una implementación de Python que pueda adaptar a mi gusto.

Hasta ahora, he decidido usar OpenCVcalcOpticalFlowFarneback() para flujo óptico, que parece razonablemente rápido y preciso. Con él, puedo obtener la Fundamental Matrix F confindFundamentalMat(). Hasta aquí todo bien.

Ahora, de acuerdo con el tutorial que estoy siguiendoaquí, Se supone que tengo mágicamente la matriz de calibración de la cámara, que obviamente no tengo ni planeo tener disponible en la aplicación futura que estoy desarrollando.

Después de una larga investigación, he encontrado un artículo (Autocalibración de una cámara en movimiento a partir de correspondencias de puntos y matrices fundamentales) de 1997 que define lo que estoy buscando (con un buen resumenaquí) Estoy buscando la implementación más simple / fácil posible, y estoy atrapado con estos problemas:

Si la cámara que voy a usar cambia automáticamente la exposición y el enfoque (sin zoom), ¿van a cambiar los parámetros intrínsecos de la cámara?No estoy familiarizado con elMétodo de continuación de la homotopía para resolver ecuaciones numéricamente, además parecen ser lentas.Tengo la intención de usar elFiltro Kalman extendido, pero no sé por dónde empezar, sabiendo que una mala inicialización conduce a la no convergencia.

Excavando un poco más encontré unCaja de herramientas de autocalibración multicámara código abierto escrito para Octave con un contenedor Python. Mi último recurso será descomponer el código y escribirlo en Python directamente. ¿Alguna otra opción?

Nota: No quiero usar un tablero de ajedrez ni la restricción de planaridad.

¿Hay alguna otra forma de autocalibrar mi cámara con mucha precisión? Después de 20 años de investigación desde 1997, ¿alguien ha encontrado un método más sencillo?

Respuestas a la pregunta(0)

Su respuesta a la pregunta