2013-05-26 4 views
4

vous avez des idées ou des recommandations pour l'étalonnage de l'appareil lorsque le nombre d'échantillons est limitée et dans une petite région de l'image?étalonnage de l'appareil photo avec un nombre limité d'images dans OpenCV et C++

Voici quelques informations supplémentaires:

Je travaille sur un projet visant à aider les personnes handicapées à utiliser un ordinateur avec leurs yeux. Il y a quelque chose qui me cause un peu de problèmes à cause de mon inexpérience avec OpenCV.

La caméra est montée sur la tête, dont la convexité est pas mal mais le globe oculaire lui-même est convexe et se déplace en rotation. J'ai l'intention de "aplatir" l'oeil afin qu'il semble se déplacer dans un avion. Le choix évident est de calibrer la caméra pour essayer d'éliminer la distorsion radiale.

Pendant le processus de calibartion l'utilisateur se penche sur les coins d'une grille sur un écran. Les moments de la pupille sont stockés dans un tapis pour chaque position pendant l'étalonnage. Donc, j'ai une image avec les points correspondant à un certain nombre de positions des yeux en regardant les coins d'une grille sur l'écran.

Je peux dessiner des polygones remplis reliant des groupes de quatre points et créer un motif échiquier ou je peux enregistrer chaque position de l'œil comme un point et utiliser le motif de cercle symétrique pour calibrer. Le problème que j'ai, c'est que la caméra est statique et que la position des yeux ne change pas, donc je suis limité quant au nombre d'images que je peux générer car la plage de postion n'est pas très bonne.

Je pense à subdivisant la grille en petits damiers, mais ils seront tous dans la même petite région, donc je ne sais pas comment cela sera utile.

Merci!

+0

Veuillez préciser votre question plus clairement/explicitement. Aide à obtenir plus de réponses. –

+0

Merci, est maintenant réécrit, j'espère est plus clair – Jorge

Répondre

1

Qu'est-ce que vous parlez ne semble pas vraiment être le calibrage de la caméra - il est le calibrage de la configuration du suivi des yeux. Lorsque vous calibrez une caméra dans OpenCV, vous essayez d'éliminer la distorsion radiale et tangentielle, il semble donc intuitif d'appliquer ce processus pour "aplatir" un objet rond. Cependant, la distorsion radiale introduite par un objectif sphérique n'est pas ce que vous avez affaire. Vous êtes concerné par la façon dont les points sur un objet sphérique sont projetés dans votre image. Certes, les modèles seront très similaires, mais le point est que vous ne devriez pas toucher à l'étalonnage de votre caméra (que vous devriez faire hors ligne) lors de l'étalonnage de votre configuration à un sujet de test. Le fait que votre "plage de positions" soit limitée est inhérent à votre problème et ne peut pas être modifié par le traitement d'image. L'œil que vous filmez ne remplit qu'une partie du champ de vision de votre caméra.

Personnellement, je voudrais simplement enregistrer la position de la pupille sur 9 points répartis uniformément sur votre écran et corréler les coordonnées de l'écran aux coordonnées de l'image du polynôme du second ordre de l'élève. Cela revient à prendre le premier terme de Taylor de la projection sphérique, ce qui est probablement assez bon à moins que les mouvements oculaires ne soient importants. Vous pouvez ensuite tester les mouvements prévus contre un second étalonnage avec 16 points au lieu de 9 points.

Je suppose que vous pourriez trouver un book on the topic pour plus d'informations.

Questions connexes