• Aucun résultat trouvé

Correction de la calibration caméra-projecteur par la méthode de mi-

minimisation non-linéaire de Levenberg-Marquardt

Une calibration obtenue par la géométrie épipolaire n’est pas précise. Pour aug- menter la fiabilité de la calibration, une étape de raffinement s’impose. Nous connais- sons tous les paramètres nécessaires à la modélisation du DLx : les paramètres in- ternes (d(r), Kcam et Kproj), les poses par rapport au DLx (Pcam et Pproj), la pose

du projecteur relative à la caméra (Pcam−proj) et les matrices de rotation du DLx

(Rpan et Rtilt). Étant donné que les paramètres internes des projecteurs sont estimés

manuellement, il est probable qu’une erreur importante se glisse dans la calibration. Pour diminuer l’impact de l’erreur introduite par l’estimation des paramètres, les pa- ramètres internes et externes du projecteur sont ajustés pour minimiser l’erreur de reprojection des points 3d dans le projecteur.

Puisque la minimisation de l’erreur de reprojection ne tient compte que du projec- teur, on suppose Pcam = I, ce qui revient à minimiser la pose relative du projecteur

par rapport à la caméra. Les paramètres relatifs de rotation θx, θy, θz, les paramètres

relatifs de translation tx, ty, tz, les paramètres internes f ,u,v, et la profondeur zi des

points 3d sont ajustés pour minimiser l’équation min

nb pixel

X

i

D(piproj, Kproj[Rcam−proj|tcam−proj]Pi) (4.7)

où D est la distance euclidienne, pi

proj est une point 2d de référence dans l’image du

projecteur et Pi est un point 3d obtenu à partir du point pi

(a) Vue de face

(b) La vue de haut montre que la reconstruction de la minimisation est beaucoup plus près de la réalité puisque le DLx était placé face aux plans

Fig. 4.18 – Résultat de la minimisation Levenberg-Marquardt dans la reconstruc- tion des points 3d. Les points originaux sont en bleu et les points résultants de la minimisation sont en rouge.

projeté à une profondeur zi et transformé en coordonnée du monde (pi

cam et piproj

sont des correspondances 2d obtenues par lumière structurée). Pi est donc défini à

partir de pi

cam = (xicam, ycami ) tel que

Pi = M−1camh xi

cam yicam 1 1/zi

iT

(4.8) où zi appartient à la triangulation des points caméra (picam) et projecteur (piproj) avec les matrices Mcam et Mproj qui sont issues de l’équation 2.11 avec

Kproj =    f 0 u 0 f v 0 0 1    Rcam−proj = RθxRθyRθz tcam−proj =  tx ty tz T .

Cette étape de minimisation non-linéaire ajuste la calibration du projecteur plus précisément et permet une meilleure mise en correspondance entre la caméra et le projecteur, ce qui résulte en une meilleure reconstruction 3d (figure 4.18). La distri- bution des erreurs de reprojection dans la caméra et le projecteur avant et après la minimisation (figure 4.19) montre l’importance de l’ajustement effectué. L’étape de minimisation utilise l’algorithme de Levenberg-Marquardt, une descente de gradient basée sur la méthode des moindres carrés. Dans le cas présent, le minimum de la fonction de coût correspond aux paramètres externes et internes du projecteur qui expliquent le mieux les disparités entre les correspondances de coordonnées caméra- projecteur calculées par lumière structurée.

La matrice de paramètres internes du projecteur après la minisation des para- mètres internes et externes devient

Kproj =    2367.07 0 496.43 0 2367.07 334.37 0 0 1    (4.9)

relative du projecteur avait comme valeurs initiales Rcam−proj = Rx(0.72◦) · Ry(−1, 25◦) · Rz(1, 14◦) tcam−proj =  −12.13 −0.38 −10.52 Tcm et est passé à Rcam−proj = Rx(0.78◦) · Ry(0, 06◦) · Rz(−1, 17◦) tcam−proj =  −10.94 −0.23 −9.43  T cm

après la minimisation. Il ne reste qu’à exprimer la pose du projecteur par rapport au DLx (équation 4.6) pour compléter la calibration du DLx.

Il est maintenant possible de modéliser la position de la caméra et du projecteur peu importe la rotation de la tête robotisée. On exprime les poses de la caméra et du projecteur selon une référence absolue dans le monde par

Pmonde

cam = PcamRtiltRpanPdlx

Mmonde

cam = KcamPcammonde

Pprojmonde = PprojRtiltRpanPdlx

Mmonde

proj = KprojPprojmonde

où Rtilt et Rpan sont les rotations verticale et horizontale de la tête commandée par

DMX, et Pdlx est la pose du DLx selon une référence du monde (si le monde n’est

pas centré sur le DLx). Avec le modèle complet, il est maintenant possible de suivre un objet avec la tête robotisée tout en sachant sa position 3d absolue malgré les rotations du DLx.

4.6 Résultats

Le processus de calibration est composé de plusieurs étapes de calibration qui modélisent chacune des composantes optiques de façon indépendante. Chaque étape de calibration a été optimisée pour minimiser l’erreur de reprojection des points

200 300 400 500 200 300 0 1 2 3 4 (a) ¯x = 1, 59101 pixel 0 500 1000 0 200 400 600 0.0 0.5 1.0 1.5 (b) ¯x = 0, 477494 pixel 200 300 400 500 200 300 0 1 2 3 4 (c) ¯x = 0, 286324 pixel 0 500 1000 0 200 400 600 0.0 0.5 1.0 1.5 (d) ¯x = 0, 0888316 pixel

Fig. 4.19 – Erreurs de reprojection des points 3d dans la caméra avant (a) et après (c) la minimisation. Erreurs de reprojection des points 3d dans le projecteur avant (b) et après (d) 20 itérations de minimisation Levenberg-Marquadt.

dans les modèles de caméra. Pour vérifier la qualité de la calibration, toutes ces composantes doivent être mises en relation et testées dans une référence commune, soit le monde du DLx.

4.6.1 Calibration caméra-projecteur

La relation caméra-projecteur est calibrée par géométrie épipolaire, aux sections 4.4 et 4.5, en utilisant des correspondances obtenues par lumière structurée. La qua- lité de la mise en correspondance caméra-projecteur dépend de la calibration des paramètres internes de la caméra et du projecteur ainsi que de la pose relative du projecteur par rapport à la caméra.

X Y

Z

Fig. 4.20 – Visualisation des poses caméra et projecteur et reconstruction 3d du plan de calibration.

Pour vérifier la qualité de la calibration caméra-projecteur, on s’assure que la pro- jection d’un objet 3d avec le projecteur correspond à l’image de l’objet observé par la caméra. Pour ce faire, un patron d’échiquier est placé devant la caméra. Les coor- données 3d du plan reconnu par la caméra définissent une homographie par laquelle nous pouvons extraire la pose de la caméra par rapport au plan qu’on définit en tant qu’origine du monde (figure 4.20). Grâce à la calibration caméra-projecteur, nous déduisons la pose du projecteur par rapport au plan et reprojetons les coordonnées 3d du plan dans l’image du projecteur. La projection des pixels projecteurs devrait correspondre parfaitement avec le plan observé.

Nos résultats montrent une erreur d’alignement entre 0, 1 cm et 0, 7 cm sur un plan situé à 2 m de la caméra (figure 4.21).

4.6.2 Calibration du modèle complet de DLx

La section précédente n’évaluait que la relation entre la caméra et le projecteur. Pour évaluer la qualité de la calibration complète du DLx, nous devons ajouter la rotation de la tête robotisée dans les variables à tester.

Le test élaboré pour évaluer la précision de la calibration consiste à choisir un point 3d dans le monde et à comparer la prédiction de sa projection dans les images de la caméra et du projecteur avec l’observation de sa projection dans ces images, et

Fig. 4.21 – Projection de la grille détectée par la caméra et adaptée au point de vue du projecteur.

ce, pour différentes rotations de la tête du DLx. En pratique, puisque le projecteur ne peut pas observer, on observe la projection seulement dans la caméra. De plus, pour estimer l’erreur en 3d plutôt qu’en 2d, on triangule les valeurs observées en un point 3d qui sera comparé au point 3d fixe de départ. Si le DLx est calibré parfaitement, la triangulation devrait toujours reconstruire la correspondance au même point malgré le mouvement du DLx.

Les résultats présentés sont obtenus par les étapes suivantes :

➀ aligner une cible avec un pixel projecteur allumé pour créer une correspondance caméra-projecteur (figure 4.22),

➁ calculer Mcam = KcamPcamRtiltRpan et Mproj = KprojPprojRtiltRpan en fonction

des rotations horizontale et verticale de la tête du DLx,

➂ trianguler la correspondance et obtenir la position du point 3d fixe en fonction du DLx à l’aide de Mcam et Mproj,

➃ déplacer la tête du DLx en gardant le point 3d fixe dans le champ de vision de la caméra et du projecteur,

(a) Correspondance caméra-projecteur pour re- construire un point 3d servant de référence

(b) Reprojection du point après déplacement de la tête robotisée

Fig. 4.22 – Reconstruction d’un point 3d à partir d’une correspondance caméra- projecteur et sa reprojection dans le projecteur après avoir subi un déplacement de la tête robotisée.

➅ reprojeter le point 3d fixe vers la caméra et le projecteur (pcam et pproj),

➆ allumer le pixel pproj dans le projecteur. Si la calibration est parfaite, le point

sera en plein centre de la cible (voir nos résultats à la figure 4.23),

➇ trouver la position de la cible dans l’image. Si la calibration est parfaite, la position de la cible aura les mêmes coordonnées que pcam,

➈ répéter les étapes ➃ à ➇ pour plusieurs positions de la tête.

Les tests ont été effectués sur un intervalle de 21o de rotation horizontale et de 16o

de rotation verticale. La figure 4.25 montre l’étendue des angles utilisés pour le test et le résultat de la triangulation des correspondances caméra-projecteur. L’erreur 2d est illustrée à la figure 4.24. Elle est de 4,5 pixels en moyenne, mais sa distribution montre clairement que l’erreur augmente avec la magnitude du mouvement du DLx. L’erreur 3d de reconstruction qui en résulte est de ¯x = 11, 2 ± 8, 3 cm.

Si la calibration était parfaite, la reprojection du point serait toujours positionnée en plein centre de la cible (figure 4.23) et la position de la cible détectée dans l’image correspondrait avec la reprojection du point 3d dans la caméra (figure 4.24).

Fig. 4.23 – Reprojection du point 3d de référence dans le projecteur, après avoir appliqué des rotations horizontale et verticale à la tête robotisée.

200 250 300 350 400 450 500 550 150 200 250 300 350 0,25 7,54 Erreur de reprojection en pixels

x

y

Fig. 4.24 – Détection de la cible dans l’image (noir) et distribution de l’erreur de reprojection du point 3d (gradient mauve).

( 131,6 176,5 - 36,0 ) ± ( 14,7 0,13 0,13 ) cm X Y Z X Y Z

Fig. 4.25 – Visualisation des positions de la caméra (rouge) et du projecteur (orange) avec la reconstruction 3d du point de référence (vert) et les reconstructions 3d des correspondances compensées par le mouvement du DLx (bleu).

Documents relatifs