Un problema en la visión por computadora y la reconstrucción en 3D es obtener los parámetros intrínsecos de la cámara. Una solución común es usar un objeto en el que uno conozca las medidas de la forma de antemano, como un tablero de damas. El problema con este método es que debe hacerse cada vez que cambie el parámetro de la cámara, como la distancia focal y la ampliación.
Estoy tratando de implementar la autocalibración de la cámara discutida en Una técnica simple para la autocalibración . La matriz esencial está limitada por sus dos valores singulares. Esto se puede utilizar para recuperar los elementos intrínsecos de la cámara sin realizar una calibración manual (es decir, con un tablero de ajedrez). Estoy un poco confundido acerca de cómo se puede minimizar la función de costo. Esto es lo que entiendo hasta ahora:
matriz esencial
matriz intrínseca
- producto de longitud focal y factor de aumento [resolver]
- relación de aspecto [supongo que siempre, supongo que de la cámara o datos EXIF?]
- son las coordenadas del punto principal [suponga 0, 0]
- sesgada [asumir 0]
función de costo los s son los valores singulares de
Pregunta: ¿Cómo se minimiza esta función de costo?
Respuestas:
Supongo que este es un problema de optimización no lineal directo (que se resolverá con variaciones de Newton, como los métodos de la región de confianza), donde ni siquiera necesita calcular el jacobiano analíticamente. Me parece que el problema de optimización se escribe sobre y, por lo tanto, es la entrada a la función de costo. Para calcular el costo, en cada llamada a esta función, básicamente calcula los valores singulares de y calcula el costo de acuerdo con la ecuación (en el documento). A medida que su parámetro de entrada es , los derivados se calculan sobre los elementos de . Eso hace que su optimización sea dimensional (oKi Ki 4 K K 4 5 si considera la inclinación) por cámara. Los derivados se calculan automáticamente y no necesita preocuparse por eso. Si está utilizando MATLAB,
lsqnonlin
funcionaría para usted.El cálculo del peso se explica de manera detallada en el documento, por lo que omito esta parte.
Después de revisar el documento una vez más, me di cuenta de que los autores están utilizando el esquema de diferenciación numérica que he mencionado. Si desea comprender más profundamente cómo diferenciar un SVD, puede consultar este o este .
fuente