2013-10-01 4 views
0

Je n'arrive pas à interpréter les données de calibrage de l'appareil photo trouvées à http://www.cvg.reading.ac.uk/PETS2001/pets2001-cameracalib.html#dataset2 et je me demandais si quelqu'un pouvait vous aider. Fondamentalement, j'ai compris l'exemple et je fonctionne correctement lorsque j'essaie de calculer les coordonnées de l'image 2D des objets 3D. Les coordonnées 2D que je reçois sont dans les limites de l'image, ce qui est bien.Interprétation de la matrice de calibrage de la caméra

Le problème est lorsque j'essaie d'appliquer le travail aux autres matrices. Pour vous aider à relativiser, ces matrices d'étalonnage sont applicables aux vidéos trouvées à

Par exemple, considérons la matrice de transformation de Dataset 2 Appareil photo 2:

FocalLength f=792 
ImageCentre (u,v) = (384, 288) 
Homogeneous Transform T = 



-0.94194 0.33537 -0.01657 0.00000; 
    -0.33152 -0.93668 -0.11278 0.00000; 
    -0.05334 -0.10073 0.99348 0.00000; 
    11791.10000 22920.20000 6642.89000 1.00000; 

Selon les instructions en haut de l'ensemble de données, la première étape consiste à inverser la matrice pour obtenir:

-0.94194 -0.33152 -0.05334 0; 
    0.33538 -0.93669 -0.10074 0; 
    -0.01657 -0.11277 0.99348 0; 
    3529.67074 26127.15587 -3661.65672 1; 

Ensuite, prenez par exemple le point x = (0,0,0) en coordonnées monde.

xT = (3529.67074,26127.15587,-3661.65672) and the point in 2D coordinates is given by 

(792 x 3529.67074/-3661.65672 + 384, 792 x 26127.15587/-3661.65672 + 288) 
= (-763.45 + 384 , -5651.187 + 288) 
= (-379.45, -5363.187) 

Maintenant cette réponse est clairement incorrecte puisque la réponse devrait être dans les limites de l'image. En fait, lorsque j'ai essayé d'utiliser cette information dans mon programme, les points sur le plan de masse dans le monde 3D sont transformés de manière incorrecte en coordonnées d'image 2D.

J'apprécierais vraiment si quelqu'un pourrait donner n'importe quelle idée sur comment appliquer le fonctionnement correctement.

Merci,

Répondre

0

Je pense qu'il n'y a rien de mal à votre calcul. Si vous obtenez des projections qui dépassent les limites de l'image, cela signifie que la caméra ne peut pas voir ce point.

J'ai effectué quelques tracés pour la position de la caméra à partir des données de la page Web que vous mentionnez. (X, Y, Z) sont les axes du cadre de référence du monde et (x, y, z) sont les axes du cadre de référence de la caméra. Ce qui suit est pour le premier exemple de la page Web que vous mentionnez, pour lequel ils font la projection du point (0,0,0) pour obtenir (244, 253.8). Notez l'orientation de l'axe z: la caméra est à la recherche vers l'origine du cadre de référence du monde:

enter image description here

Pour l'ensemble de données 2, appareil photo 2, notez l'orientation de l'axe z: la caméra ne peut pas voir l'origine du cadre de référence du monde:

enter image description here

Que cette orientation est logique ou non dépend de votre application et le choix de (X, Y, Z) cadre de référence. La caméra 1 pour l'ensemble de données 2 est orientée d'une manière similaire.

Questions connexes