Je me bats et j'ai besoin d'aide.Existe-t-il un moyen de trouver la vitesse du flux optique à partir du mouvement d'un objet du monde réel sans connaître la profondeur Z?
Je souhaite calculer la vitesse du flux optique à partir du mouvement connu d'un objet du monde réel (en fait, la caméra est en mouvement). Cela fait partie de ce que j'ai demandé dans ma question précédente (Determining if a feature is part of a moving object from sparse optical flow (KLT)).
Quoi qu'il en soit, j'ai fait du calcul de flux optique en utilisant cvGoodFeaturesToTrack()
et cvCalcOpticalFlowPyrLK()
.
Je veux juste vérifier si le flux que j'ai calculé est théoriquement correct (correspondant au mouvement de la caméra). Laissez ma caméra se déplacer uniquement sur l'axe Z (ignorez simplement le taux de lacet pour l'instant). Supposons que mon appareil photo bouge pour Vz (dans la direction Z).
je peux trouver le flux optique par
vx = x * Vz/Z
vy = y * Vz/Z
(supposons Vx, Vy = 0 -> pas de mouvement de la caméra dans les axes x et y)
Voici ce que j'ai étudié principalement de http://www.cse.psu.edu/~rcollins/CSE486/lecture22_6pp.pdf . Le problème est de résoudre cela je dois avoir Z. Dans mon cas, je ne peux pas supposer que la surface Z soit plate ou connue. La caméra se déplace sur la route et dirige perpendiculairement au sol.
S'il vous plaît aidez-moi quelqu'un répondre aux questions suivantes:
- Comment puis-je obtenir la profondeur de l'objet valeur Z? Ai-je besoin de technique supplémentaire?
- Ou existe-t-il d'autres façons de trouver la relation entre le mouvement de la caméra et le flux optique de l'image?
- Quelqu'un at-il essayé l'équation ci-dessus? Est-ce valable lorsque la caméra se déplace dans une direction?
Merci beaucoup.
[Si vous trouvez que cette question est trop vague, s'il vous plaît laissez-moi savoir afin que je puisse donner plus de détails.]
Si vous avez plusieurs caméras, vous pouvez utiliser la vision stéréoscopique pour déterminer la distance. Si vous avez un objet de référence avec une distance connue, vous pouvez calculer la parallaxe d'un autre objet et l'utiliser pour trouver sa distance. A part ça, j'ai peur que la distance des objets arbitraires soit assez difficile, voire impossible à déterminer. – Junuxx
Merci pour vos commentaires. Ma question est pour une seule caméra et je n'ai aucune connaissance sur d'autres objets de référence. J'ai essayé sur plusieurs images et j'ai supposé que le flux optique des paires d'images précédentes était fiable et je les utilisais pour calculer Z. Quoi qu'il en soit, j'ai aussi trouvé cela aussi un problème. – Sonia
Vous pouvez en théorie obtenir le Z de l'estimation de la matrice fondamentale en utilisant une méthode en 8 points ou en 5 points, et en décomposant la matrice fondamentale, mais comme ils disent "le chemin est chargé de danger". C'est probablement aussi une solution beaucoup plus complexe au problème que vous essayez de résoudre avec un flux optique. – dvhamme