J'ai une caméra à vue unique à une certaine hauteur (h) du sol. Grâce au calibrage j'ai obtenu les paramètres intrinsèques K, la matrice de rotation et le vecteur de traduction [R | t] et, parce que j'ai un accès complet à la caméra et à l'environnement, je peux mesurer tout ce que je veux. Mon but est d'estimer la profondeur d'un pixel [u, v] sur la caméra étant donné que je sais que le pixel est sur le sol (donc il est à y = -h par rapport à la caméra). Compte tenu de cette contrainte, je l'ai fait ce qui suit (sans succès):Estimation de la profondeur d'un pixel 2D donné intrinsèque, extrinsèque, et une contrainte de Y = 0
- créer un nouveau point 3D P1 à partir de [u, v] et les paramètres de la caméra + longueur focale: [u - cx, v - cy, f ]
- multiplier P par l'inverse de ma matrice de la caméra K et appeler le résultat P2
- multiplier P2 par l'inverse du [R | matrice et appelle le résultat P3
- P3 t] est un vecteur 4x1, de sorte on le normalise et l'amène à 3x1 [X1, Y1, Z1]. Ce point devrait être la projection coordiante mondiale de mon [u, v] Le point
- Solve X et Z lorsque Y = -h de la manière suivante:
- x = x1 * (-h/y1)
- y = z1 * (-h/y1)
Malheureusement, il ne marche pas regarder à droite! J'ai réglé ce problème pendant deux semaines maintenant, alors ce serait vraiment génial d'obtenir de l'aide de la part de la communauté. Je suis sûr que c'est quelque chose d'évident que je rate.
Merci encore