Trouver une bonne homographie d'un point de vue différent des objets?

je fais la détection d'objet en utilisant l'extraction de caractéristique (sift,orb).

je veux extraire la fonctionnalité ORB d'un point de vue différent de l'objet (images de train) et puis les assortir tous avec une image de requête.

le problème auquel je suis confronté est: Comment puis-je créer une bonne homographie à partir d'un point de clé provenant d'un point de vue différent de l'image qui ont bien sûr des tailles différentes?

Modifier

je pensais créer une homographie pour chaque les images de train qui ont obtenu disent 3-4 corresponds et puis calculent certains" moyen " homographie...

le problème se pose quand vous avez par exemple dire seulement 1-2 correspondances de chaque image de train, à ce point vous ne pouvez pas créer même pas 1 homographie

Code pour créer une homographie

  //> For each train images with at least some good matches ??
  H = findHomography( train, scene, CV_RANSAC );
  perspectiveTransform( trainCorners, sceneCorners, H);
11
demandé sur Rui Marques 2012-07-17 02:32:22

3 réponses

je pense qu'il n'y a pas de point d'en faire une paire d'images de A et de B n'a rien à voir avec une paire d'images B et C lorsque vous parlez de l'homographie. Vous obtiendrez des différents ensembles de bons matches et des homographies différentes, mais les homographies ne seront pas reliées et aucune minimisation d'erreur n'aura de point.

toute minimisation doit se faire à l'intérieur des correspondances, des points de saisie et des descripteurs en considérant seulement la paire d'images.

il y a une idée semblable à ce que vous demandez dans le descripteur de monstre. Vous pouvez former les paires sélectionnées avec une série d'images. Cela signifie que FREAK décidera du meilleur modèle pour extraire des descripteurs en se basant sur un ensemble d'images. Après cette formation, vous êtes censés trouver plus robuste mathces qui vous donnera une meilleure homographie.

8
répondu Jav_Rock 2012-12-19 16:15:52

pour trouver une bonne homographie, vous avez besoin de correspondances précises de vos points de frappe. Il vous faut 4 allumettes.

le méthos le plus courant est le DLT combiné avec le RANSAC. DLT est une transformation linéaire qui trouve la matrice d'homographie 3x3 qui projette vos points de clé dans la scène. RANSAC trouve le meilleur ensemble d'inliers/outliers qui satisfasse le modèle mathematicl, donc il trouvera les 4 meilleurs points comme entrée de DLT.

EDIT

vous devez trouver robuste keypoints. SIFT est supossé pour faire cela, échelle et perspective invariant. Je ne pense pas que tu aies besoin de t'entraîner avec des images différentes. Trouver une homographie méchante n'a pas de sens. Vous devez trouver une homographie unique pour un objet détecté, et cette homographie sera la transformation entre le marqueur et l'objet détecté. L'homographie est précise, ça ne sert à rien de trouver un moyen.

4
répondu Carlos Cachalote 2012-07-17 11:14:44

avez-vous essayé l'approche d'obtenir des points de touches à partir des vues de l'objet: train_kps_1, train_kps_2... ensuite, faites correspondre ces tableaux avec la scène, puis sélectionnez les meilleurs résultats parmi ces différents tableaux pour obtenir un tableau unique de bons résultats. Et enfin utiliser ce résultat dans trouver homographie que le "train".

la clé ici est comment sélectionner les meilleurs matches, qui est une question différente, que vous pouvez trouver un anwser agréable ici:

http://answers.opencv.org/question/15/how-to-get-good-matches-from-the-orb-feature/

Et peut-être ici:

http://answers.opencv.org/question/2493/best-matches/

1
répondu Rui Marques 2012-09-26 22:54:35