2016-06-16 3 views
0

J'ai une image de référence A avec une position connue et je veux calculer la position relative de la caméra à l'image B (c'est-à-dire tx, ty, tz en mètres). Les images sont prises avec le même appareil photo afin que la matrice de la caméra reste la même. J'utilise SIFT pour détecter et calculer les keypoints et les descripteurs dans les deux images et les faire correspondre avec FLANN. De là, je peux obtenir la matrice d'homographie que je décomposerai avec cv :: decomposeHomography (..). Cette fonction est basée sur ce document: PDF. Dans cet article, il est indiqué que la matrice de traduction est normalisée par d *, qui est la profondeur du plan.Calcul de la position de la caméra à partir de la décomposition homographique

Pour obtenir la bonne traduction, j'ai besoin de connaître la profondeur du plan. Existe-t-il un moyen d'obtenir ceci sans connaître la taille d'un objet trouvé dans l'image?

+0

pouvez-vous expliquer la différence de "homographie euclidienne" et "homographie projective"? Lequel d'entre eux avez-vous calculé et lequel d'entre eux est assumé dans 'cv :: decomposeHomography (..)'? – Micka

+0

Eh bien, l'homographie projective G est l'homographie dans l'espace de l'image et l'homographie euclidienne H est l'homographie dans l'espace euclidien (c'est-à-dire les coordonnées du monde). Ceux-ci peuvent être calculés par H = CamMatrix^1 * G * CamMatrix. J'obtiens de cv :: findHomography G l'homographie projective. Je suppose que le cv :: decomposeHomography (...) a besoin de l'homographie projective car il a besoin de la CamMatrix. Ai-je raison à ce sujet? – Oerdy

+0

La sortie de la matrice de traduction de la décomposition homogène est-elle homogène? – Oerdy

Répondre

0

La translation 3D calculée à l'aide de la décomposition de l'homographie est uniquement calculable jusqu'à un facteur d'échelle inconnu. C'est un problème classique avec le calcul de la géométrie 3D à partir d'images monoculaires utilisant uniquement le mouvement apparent dans les images. Typiquement, les reconstructions 3D à partir d'images monoculaires sont appelées reconstructions métriques pour cette raison (plutôt que des reconstructions euclidiennes où l'échelle est résolue). Pour résoudre le facteur d'échelle, certaines informations supplémentaires sont nécessaires, telles que la connaissance de la profondeur d'un point sur le plan ou de la distance parcourue par la caméra entre les images.