Eu tenho uma câmera (iPhone), tenho um objeto de controle 3D na imagem que conheço muito bem suas propriedades. (Meu objeto de controle). Há também um objeto secundário em movimento. O objetivo final é estabelecer a trajetória 3D do objeto em movimento por um determinado período de tempo. (Rastreamento)
Eu gostaria de perguntar, eu poderia descobrir?
Distância do telefone ao objeto de controle (para discussão, vamos supor que a câmera esteja a uma certa altura e a uma certa distância, nenhum deles é conhecido, mas a câmera é perpendicular à superfície conhecida)
O objeto secundário onde eu posso localizar o objeto em cada quadro subseqüente. Meu objetivo é estimar sua trajetória 3D, como indiquei acima.
Pergunta de bônus, podemos tornar o sistema de forma que a distância do telefone ao objeto de controle possa ser definida (embora não seja a preferida), isso me ajudaria com o segundo ponto?
Respostas:
Se o seu objeto possui 6 pontos conhecidos (coordenadas 3D conhecidas, e Z ), é possível calcular a localização da câmera relacionada ao sistema de coordenadas dos objetos.X,Y Z
Primeiro alguns princípios.
Lembramos que o produto cruzado entre dois vetores vetores pode ser definido como multiplicação de vetores matriciais, de modo que:
Aha! O resultado deve ser vetor zero. Se agora abrirmos a equação, obtemos:
Pequena pausa para que possamos reunir nossos pontos fortes. Observe que a equação da matriz anterior deve ser formada para cada correspondência 3D-> 2D conhecida (deve haver pelo menos 6 delas).
Felizmente, podemos usar a decomposição de valor singular (SVD) para forçar
(Hartley, Zisserman - Geometria de Múltiplas Vistas em Visão Computacional)
E assim por diante.
fonte