Minimización de la matriz esencial

7

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

E=K2TFK1

matriz intrínseca

K=[αxsu00ϵαxv0001]
  • αx 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?]
  • u0v0 son las coordenadas del punto principal [suponga 0, 0]
  • s sesgada [asumir 0]

función de costo los s son los valores singulares de

C(Ki,i=1..n)=ijn(σ1ijσ2ij)/σ1ij
σKjTFijKj

Pregunta: ¿Cómo se minimiza esta función de costo?

Resumen del algoritmo

Atenea
fuente
Buena pregunta. Podría valer la pena preguntar en matemáticas . SE , ya que esto parece un problema matemático bastante puro si puede extraer los detalles específicos de la aplicación.
Jason R
Gracias, originalmente estaba tratando de decidir entre los dos sitios. He descubierto algunas cosas nuevas que puedo usar en preguntas separadas.
Athena

Respuestas:

3

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 (oKiKi4KK45si considera la inclinación) por cámara. Los derivados se calculan automáticamente y no necesita preocuparse por eso. Si está utilizando MATLAB, lsqnonlinfuncionarí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 .

Tolga Birdal
fuente