Minimização da matriz Essential

7

Um problema na visão computacional e na reconstrução 3d está recebendo os parâmetros intrínsecos da câmera. Uma solução comum é usar um objeto em que se saiba as medidas da forma antes da mão, como um tabuleiro de damas. O problema desse método é que ele deve ser feito sempre que o parâmetro da câmera for alterado, como distância focal e ampliação.

Estou tentando implementar a auto-calibração da câmera discutida em Uma técnica simples para auto-calibração . A matriz essencial é restringida por seus dois valores singulares. Isso pode ser usado para recuperar os intrínsecos da câmera sem fazer uma calibração manual (ou seja, com um tabuleiro de damas). Estou um pouco confuso com a forma como a função de custo pode ser minimizada. Aqui está o que eu entendo até agora:

matriz essencial

E=K2TFK1

matriz intrínseca

K=[αxsu00ϵαxv0001]
  • αx produto da distância focal e fator de ampliação [resolver]
  • ϵ relação de aspecto [suponha fornecido, eu acho da câmera ou dados EXIF?]
  • u0v0 são as coordenadas do ponto principal [assuma 0, 0]
  • s inclinação [assumir 0]

função de custo

C(Ki,i=1..n)=ijn(σ1ijσ2ij)/σ1ij
a σs são os valores singulares de KjTFijKj

Pergunta: Como essa função de custo está sendo minimizada?

Resumo do algoritmo

Athena
fonte
Boa pergunta. Pode valer a pena perguntar isso em math.SE , pois isso parece um problema de matemática bastante puro se você puder destilar os detalhes específicos do aplicativo.
Jason R
Obrigado, eu estava originalmente tentando decidir entre os dois sites. Descobri algumas coisas novas que posso usar em perguntas separadas.
Athena

Respostas:

3

Eu acho que esse é um problema direto de otimização não linear (a ser resolvido com variações de Newton, como métodos Trust-Region), onde você nem precisa calcular analiticamente o jacobiano. Parece-me que o problema de otimização está escrito sobreKie, portanto, é a entrada para a função de custo. Para calcular o custo, em cada chamada para essa função, você basicamente calcula os valores singulares deKi e calcular o custo de acordo com a equação 4(No papel). Como seu parâmetro de entrada éK, os derivativos são calculados sobre os elementos de K. Isso torna sua otimização4 dimensional (ou 5se você considerar a inclinação) por câmera. Os derivados são calculados automaticamente, e você não precisa se preocupar com isso. Se você estiver usando o MATLAB, lsqnonlinfuncionaria para você.

O cálculo do peso é explicado detalhadamente no artigo, então pulo esta parte.

Depois de verificar o artigo mais uma vez, notei que os autores estão realmente usando o esquema de diferenciação numérica que mencionei. Se você deseja entender mais profundamente como diferenciar um SVD, consulte este ou este .

Tolga Birdal
fonte