La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

SUJETS SPÉCIAUX EN INFORMATIQUE I PIF-6003. Corrections géométriques et calibration de caméra u Approche SVD –Transformations géométriques: déduction.

Présentations similaires


Présentation au sujet: "SUJETS SPÉCIAUX EN INFORMATIQUE I PIF-6003. Corrections géométriques et calibration de caméra u Approche SVD –Transformations géométriques: déduction."— Transcription de la présentation:

1 SUJETS SPÉCIAUX EN INFORMATIQUE I PIF-6003

2 Corrections géométriques et calibration de caméra u Approche SVD –Transformations géométriques: déduction du modèle de déformation géométrique u Assignation des valeurs de niveaux de gris u Modèle de caméra u Étalonnage de caméra u Projection 2D/3D u Calibration de caméras avec OpenCV

3 Déformations géométriques des images Image déforméeImage corrigée Comment déduire le modèle de déformation ?

4 Approche S ingular V alue D ecomposition u Cette approche permet déliminer les faiblesses notées dans les approches de résolutions de Gauss. u Lapproche SVD permet de résoudre divers types de problèmes: résolution de systèmes déquations linéaires par moindres carrés (cas dapproximation de données), résolution de système mal conditionné.

5 Approche S ingular V alue D ecomposition u Système à résoudre:

6 Approche S ingular V alue D ecomposition u Si nous voulons modéliser la transformation géométrique (déformation) entre une image idéale (non déformée) et une image déformée par un système du deuxième ordre (degré 2): x = A x 2 + B y 2 + C xy + D x + E y + F (1) y = G x 2 + H y 2 + I xy + J x + K y + L(2) x,y: coordonnées de limage déformée x, y: coordonnées de limage idéale (x: horizontal, y: vertical)

7 Approche S VD (suite) u Pour déduire la forme de ce modèle (donner des valeurs aux coefficients de déformation A, B, C, D, E ……, L) nous devons dabord sélectionner au moins 6 points de contrôle dans une image de référence non déformée ainsi que leur correspondant dans une image déformée. u Supposons que ces points de contrôle sont dune part sélectionnés et ensuite stockés dans les vecteurs X, Y (image idéale) et X_Prime, Y_Prime (image déformée)

8 Approche SVD (suite) u Exemple dun système déquations du deuxième ordre Ax = b : Vecteur des soln recherchéesCoordonnées des points de contrôle dans limage déformée. Coordonnées des points de contrôle dans limage idéale A xb

9 Approche SVD (suite) u Lapproche SVD permet dexprimer la matrice A par la décomposition A = U W V T. u Cette décomposition en matrices est obtenue par la fonction svdcmp() de Numerical Recipes in C. u Les matrices U, W et V T permettent de calculer linverse de A, A -1 ayant la forme A -1 = (V T ) -1 W -1 U -1 = V W -1 U T u V et U étant orthonormales, leur inverse est donc donnée par leur transposée. u W étant diagonale, donc W -1 est aussi diagonale avec les éléments sur la diagonale à 1/w i.

10 Approche SVD (suite) u Quand certaines valeurs w i 0 (proche de 0), la matrice A est dite singulière. u Dans ce cas, A -1 (V T ) -1 W -1 U -1 V W -1 U T. u Donc pour estimer la matrice A -1 (pseudoinverse de A), nous remplaçons les valeurs 1/w i dans la matrice W -1 par 0 quand w i est petit (proche de 0). u Donc, x = A -1 b est obtenue dans les cas de singularité par x = pseudoinverse (A) b

11 Approche SVD (suite) u Forme de x = A -1 b A -1

12 Approche SVD (suite) u Avant dappeler la fonction svdksb() qui permet de déduire les soln dun système déquations linéaires, il faut vérifier si A est singulière. u Après lexécution de la fonction svdcmp(), les w i < MAX(w i ) * 1.0e-6 sont fixés à 0 dans la matrice W.

13 Approche SVD (suite) u Algorithme de résolution: correction dimage int X[20],Y[20],X_Prime[20],Y_Prime[20]; // premier indice : 1 float wmax, wmin, **a,**u,*w,**v,*b,*x int i,j; // selectionner un minimum de 6 points de contrôle ….// selectionner un maximum de 20 points de contrôle a = matrix(1,2*m,1,12); // matrice A de 2mX12 u = matrix(1,2*m,1,12); // m: nombre de points de contrôle w = matrix(1,12,1,12); v = matrix(1,12,1,12); b = vector(1,2*m); // points de contrôle dans limage deformee x = vector(1,12); // vecteur des soln ….. // mise à 0 de A

14 Approche SVD (suite) u Algorithme de résolution: correction dimage (suite …) for(i=1;i<=2*m;i+=2) // initialiser A { a[i][1] = a[i+1][7] = X[i/2+1]*X[i/2+1]; a[i][2] = a[i+1][8] = Y[i/2+1]*Y[i/2+1]; a[i][3] = a[i+1][9] = X[i/2+1]*Y[i/2+1]; a[i][4] = a[i+1][10] = X[i/2+1]; a[i][5] = a[i+1][11] = Y[i/2+1]; a[i][6] = a[i+1][12] = 1.0; }

15 Approche SVD (suite) u Algorithme de résolution: correction dimage (suite …) for(i=1;i<=2*m;i+=2) // initialiser b { b[i] = X_Prime[i/2+1]; b[i+1] = Y_Prime[i/2+1]; }

16 Approche SVD (suite) u Algorithme de résolution: correction dimage (suite …) for(i=1;i<=2*m;i++) for(j=1;j<=12;j++) u[i][j] = a[i][j]; svdcmp(u,2*m,12,w,v); wmax = 0.0; for(j=1;j wmax) wmax = w[j]; wmin = wmax*1.0e-6; for(j=1;j<=12;j++) if(w[j] < wmin) w[j]=0.0; svdksb(u,w,v,2*m,12,b,x);

17 Approche SVD (suite) u Avec le vecteur des soln x dont les éléments correspondent aux coefficients des équations de transformation des pixels de limage idéale vers limage déformée (x[1] A, x[2] B, x[3] C, x[4] D, …., x[12] L), nous pouvons projeter chaque point x,y dune image idéale pour trouver sa position x,y dans limage déformée. x = A x 2 + B y 2 + C xy + D x + E y + F (1) y = G x 2 + H y 2 + I xy + J x + K y + L(2)

18 Approche SVD (suite) u En substituant les notations utilisées dans lalgorithme, les éq. (1) et (2 ) deviennent: X = x[1] X 2 + x[2] Y 2 + x[3] XY + x[4] X + x[5] Y + x[6] Y = x[7] X 2 + x[8] Y 2 + x[9] XY + x[10] X + x[11] Y + x[12]

19 Approche SVD (suite) u Algorithme de la correction géométrique for(Y=0;Y

20 Interpolation du type voisin le plus proche ["Nearest neighbor"] Transformation spatiale Affectation du niveau de gris (x, y) f (x, y)

21 Exemple: Correction géométrique r11.rast r11CGEO.rast – Résultat de la correction cadastreNS4X4.tiffcorrectiongeo r11.rast r11CGEO.rast e-5...

22 Exemple: Correction géométrique u Modèle de déformation: x = e-5 y e-5 x e-6 xy y x y = e-5 y e-6 x e-5 xy y x où x,y sont les coordonnées des pixels dans limage déformée et x,y celles de limage corrigée (idéale).

23 Utilités dun modèle de caméra Points 2D (image) Modèle de caméra Points 3D (espace) Matrice de Transformation (paramètres du Modèle) Étalonnage de caméra Opération faites une seule fois. Le but recherché est donc de trouver la coordonnée dans lespace 3D dun objet projeté dans limage (pixel 2D)

24 Modèle de caméra (sténopé=> pinhole)

25

26 Le sténopé non inverseur

27 Modèle de caméra (lentille) Le sténopé ne permet pas la création dimages nettes puisque louverture étant petite, ne permet pas de laisser passer assez de lumière. Une lentille est donc ajoutée pour contrer cette faiblesse.

28 Modèle de caméra (lentille) Inverseur Non inverseur

29 Modèle de caméra (projection en perspective) Sachant que Y/Z = Y/F Alors Y = YF/Z X = XF/Z Z = F (distance focale)

30 Étalonnage de caméra (modèle dacquisition dimages) Plan Image Système de référence de la caméra

31 Étalonnage de caméra (modèle dacquisition dimages)

32 Étalonnage de caméra (modèle dacquisition dimages: Paramètres extrinsèques )

33

34 Étalonnage de caméra (modèle dacquisition dimages: Paramètres intrinsèques ) Projection (transformation) en perspective du point P dans limage f (focal distance)

35 Étalonnage de caméra (modèle dacquisition dimages: Paramètres intrinsèques ) Application de la projection en perspective: Calcul des coordonnées images: (o x, o y ): coordonnées du point principal (centre de limage, o x = N/2 o y = M/2) s x et s y sont les dimensions horizontale et verticale dun pixel (en mm)

36 Étalonnage de caméra (modèle dacquisition dimages) Passage des coordonnées du monde aux coordonnées image: En coordonnées homogènes:

37 Étalonnage de caméra (modèle dacquisition dimages) En coordonnées homogènes:

38 Étalonnage de caméra (modèle dacquisition dimages) Pixel 2D Image Paramètres intrinsèques de la caméra Paramètres extrinsèques Points 3D (mm)

39 Étalonnage de caméra (modèle dacquisition dimages) Létalonnage consiste donc à trouver la matrice M

40 Étalonnage de caméra (modèle dacquisition dimages) Équations détalonnage

41 Étalonnage de caméra u Pour déduire les coefficients de ce modèle détalonnage (donner des valeurs aux coefficients de déformation 3D/2D, m 11, m 12, m 13, m 14, m 21 …. ……, m 34 ) nous devons dabord sélectionner au moins 6 points de contrôle dans une image de référence de la scène 2D (image de la scène) ainsi que leur correspondant dans lespace 3D du monde. u Supposons que ces points de contrôle sont dune part sélectionnés et ensuite stockés dans les vecteurs u, v (image scène) et X, Y, Z (points 3D)

42 Étalonnage de caméra u Exemple de cible 3D utilisée pour létalonnage de caméra.

43 Étalonnage de caméra u Système déquations linéaires Ax = b : Vecteur des soln recherchées Coordonnées des points de contrôle 3D. Coordonnées des points de contrôle dans limage de la scène Axb

44 Étalonnage de caméra u Algorithme de résolution: étalonnage de caméra int X[20],Y[20], Z[20],U[20],V[20]; float wmax, wmin, **a,**u,*w,**v,*b,*x int i,j,minPos; // selectionner un minimum de 6 points de contrôle ….// selectionner un maximum de 20 points de contrôle a = matrix(1,2*m,1,12); // matrice A de 2mX12 u = matrix(1,2*m,1,12); // m: nombre de points de contrôle w = matrix(1,12,1,12); v = matrix(1,12,1,12); b = vector(1,2*m); // points de contrôle dans limage deformee x = vector(1,12); // vecteur des soln ….. // mise à 0 de A

45 Étalonnage de caméra u Algorithme de résolution: étalonnage de caméra (suite …) for(i=1;i<=2*m;i+=2) {// initialiser A a[i][1] = a[i+1][4] = X[i/2+1]; a[i][2] = a[i+1][5] = Y[i/2+1]; a[i][3] = a[i+1][6] = Z[i/2+1]; a[i][7] = -X[i/2+1]* u[i/2+1]; a[i+1][7] = -X[i/2+1]* v[i/2+1]; a[i][8] = -Y[i/2+1]* u[i/2+1]; a[i+1][8] = -Y[i/2+1]* v[i/2+1]; a[i][9] = -Z[i/2+1]* u[i/2+1]; a[i+1][9] = -Z[i/2+1]* v[i/2+1]; a[i][10] = - u[i/2+1]; a[i+1][10] = - v[i/2+1]; a[i][11] = a[i+1][12] = 1.0;}

46 Étalonnage de caméra u Algorithme de résolution: étalonnage de caméra (suite …) for(i=1;i<=2*m;i+=2) // initialiser b { b[i] = b[i+1] = 0; }

47 Étalonnage de caméra u Algorithme de résolution: étalonnage de caméra (suite …) for(i=1;i<=2*m;i++) for(j=1;j<=12;j++) u[i][j] = a[i][j]; svdcmp(u,2*m,12,w,v); wmax = 0.0; for(j=1;j wmax) wmax = w[j]; wmin = wmax; // trouver la valeur propre min. dans w for(j=2;j<=12;j++) if((w[j] < wmin) && w[j] != 0.0) {wmin = w[j]; minPos = j;} for(j=1;j<=12;j++) x[j]=v[j][minPos]; // x contient la solution

48 Étalonnage de caméra u Avec le vecteur des soln x dont les éléments correspondent aux coefficients des équations de transformation 3D/2D (points dans lespace vers pixels). (x[1] m 11, x[2] m 12, x[3] m 13, x[4] m 21, x[5] m 22, x[6] m 23, x[7] m 31, x[8] m 32, x[9] m 33, x[10] m 34, x[11] m 14, x[12] m 24 ), nous pouvons déduire la position la position 3D dun point dans lespace à partir de sa projection u,v dans le plan image.

49 Projection 2D/3D Pour un point u,v donné dans une image, vous trouver sa position 3D sur le plancher X w, Y w, Z w (mm)

50 Calibration de caméras avec OpenCV Avec OpenCV la calibration est effectuée en trouvant la solution du système: p = A [Rt] P avec A la matrice intrinsèque de la caméra fx: distance focale exprimée en nombre de pixels horizontal fy: distance focale exprimée en nombre de pixels vertical cx: coordonnée x du centre de limage cy: coordonnée y du centre de limage

51 Calibration de caméras avec OpenCV La matrice extrinsèque [Rt] de la caméra permet dexprimer la projection requise pour projeter des points 3D dans le système de coordonnées du monde vers le système de coordonnées de la caméra R: matrice de rotation qui permet de faire chevaucher les axes du système de coordonnées du monde sur celui de la caméra t: vecteur exprimant la translation requise pour faire coïncider les deux origines

52 Exemple de calibration de caméra avec OpenCV Voir lexemple de programme mainCalibrationCAM.cpp

53 Exemple de calibration de caméra avec OpenCV Patron de calibration utilisé:

54 Résumé u Corrections géométriques et calibration de caméra –Approche SVD –Modèle de caméra –Étalonnage de caméra –Projection 2D/3D – Calibration de caméras avec OpenCV


Télécharger ppt "SUJETS SPÉCIAUX EN INFORMATIQUE I PIF-6003. Corrections géométriques et calibration de caméra u Approche SVD –Transformations géométriques: déduction."

Présentations similaires


Annonces Google