sujets spÉciaux en informatique i pif-6003. corrections géométriques et calibration de caméra u...
TRANSCRIPT
![Page 1: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/1.jpg)
SUJETS SPÉCIAUX EN INFORMATIQUE I
PIF-6003
![Page 2: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/2.jpg)
Corrections géométriques et calibration de caméra
Approche SVD– Transformations géométriques: déduction du modèle
de déformation géométrique Assignation des valeurs de niveaux de gris Modèle de caméra Étalonnage de caméra Projection 2D/3D Calibration de caméras avec OpenCV
![Page 3: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/3.jpg)
Déformations géométriques des images
Image déformée Image corrigée
Comment déduire le modèle de déformation ?
![Page 4: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/4.jpg)
Approche Singular Value Decomposition
Cette approche permet d’éliminer les faiblesses notées dans les approches de résolutions de Gauss.
L’approche SVD permet de résoudre divers types de problèmes: résolution de systèmes d’équations linéaires par moindres carrés (cas d’approximation de données), résolution de système mal conditionné.
![Page 5: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/5.jpg)
Approche Singular Value Decomposition
Système à résoudre:
bU
w
w
w
Vx
bxA
T
n
/10000
00
000
00/10
000/1
2
1
![Page 6: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/6.jpg)
Approche Singular Value Decomposition
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 x2 + B y2 + C xy + D x + E y + F (1)
y’ = G x2 + H y2 + I xy + J x + K y + L (2)x’,y’: coordonnées de l’image déforméex, y: coordonnées de l’image idéale (x: horizontal, y: vertical)
![Page 7: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/7.jpg)
Approche SVD (suite)
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 d’abord 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.
Supposons que ces points de contrôle sont d’une 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)
![Page 8: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/8.jpg)
Approche SVD (suite)
Exemple d’un système d’équations du deuxième ordre Ax = b :
n
n
nnnnnn
nnnnnn
y
x
y
x
y
x
y
x
L
K
J
I
H
G
F
E
D
C
B
A
yxyxyx
yxyxyx
yxyxyx
yxyxyx
'
'
'
'
'
'
'
'
1000000
0000001
1000000
0000001
3
3
2
2
1
1
22
22
111121
21
111121
21
Vecteur des sol’n recherchées Coordonnéesdes points de contrôle dansl’image déformée.
Coordonnées des pointsde contrôle dans l’image idéale
A x b
![Page 9: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/9.jpg)
Approche SVD (suite)
L’approche SVD permet d’exprimer la matrice A par la décomposition A = U W VT.
Cette décomposition en matrices est obtenue par la fonction svdcmp() de Numerical Recipes in C.
Les matrices U, W et VT permettent de calculer l’inverse de A, A-1 ayant la forme
A-1 = (VT)-1 W-1 U-1 = V W-1 UT V et U étant orthonormales, leur inverse est donc donnée
par leur transposée. W étant diagonale, donc W-1 est aussi diagonale avec les
éléments sur la diagonale à 1/wi.
![Page 10: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/10.jpg)
Approche SVD (suite)
Quand certaines valeurs wi 0 (proche de 0), la matrice A est dite singulière.
Dans ce cas, A-1 (VT)-1 W-1 U-1 V W-1 UT. Donc pour estimer la matrice A-1 (pseudoinverse de
A), nous remplaçons les valeurs 1/wi dans la matrice W-1par 0 quand wi est petit (proche de 0).
Donc, x = A-1 b est obtenue dans les cas de singularité par x = pseudoinverse (A) b
![Page 11: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/11.jpg)
Approche SVD (suite)
Forme de x = A-1 b
bU
w
w
w
Vx
bxA
T
n
/10000
00
000
00/10
000/1
2
1
A-1
![Page 12: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/12.jpg)
Approche SVD (suite)
Avant d’appeler la fonction svdksb() qui permet de déduire les sol’n d’un système d’équations linéaires, il faut vérifier si A est singulière.
Après l’exécution de la fonction svdcmp(), les
wi < MAX(wi) * 1.0e-6 sont fixés à 0 dans la matrice W.
![Page 13: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/13.jpg)
Approche SVD (suite)
Algorithme de résolution: correction d’imageint X[20],Y[20],X_Prime[20],Y_Prime[20]; // premier indice : 1float wmax, wmin, **a,**u,*w,**v,*b,*xint i,j;
// selectionner un minimum de 6 points de contrôle….// selectionner un maximum de 20 points de contrôlea = matrix(1,2*m,1,12); // matrice A de 2mX12u = matrix(1,2*m,1,12); // m: nombre de points de contrôlew = matrix(1,12,1,12);v = matrix(1,12,1,12);b = vector(1,2*m); // points de contrôle dans l’image deformeex = vector(1,12); // vecteur des sol’n….. // mise à 0 de A
![Page 14: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/14.jpg)
Approche SVD (suite)
Algorithme de résolution: correction d’image (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;
}
![Page 15: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/15.jpg)
Approche SVD (suite)
Algorithme de résolution: correction d’image (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];
}
![Page 16: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/16.jpg)
Approche SVD (suite)
Algorithme de résolution: correction d’image (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<=12;j++) if(w[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);
![Page 17: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/17.jpg)
Approche SVD (suite)
Avec le vecteur des sol’n x dont les éléments correspondent aux coefficients des équations de transformation des pixels de l’image idéale vers l’image 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 d’une image idéale pour trouver sa position x’,y’ dans l’image déformée.
x’ = A x2 + B y2 + C xy + D x + E y + F (1)
y’ = G x2 + H y2 + I xy + J x + K y + L (2)
![Page 18: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/18.jpg)
Approche SVD (suite)
En substituant les notations utilisées dans l’algorithme, les éq. (1) et (2 ) deviennent:
X’ = x[1] X2 + x[2] Y2 + x[3] XY + x[4] X + x[5] Y + x[6]
Y’ = x[7] X2 + x[8] Y2 + x[9] XY + x[10] X + x[11] Y + x[12]
![Page 19: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/19.jpg)
Approche SVD (suite)
Algorithme de la correction géométrique
for(Y=0;Y<Hauteur;Y++)for(X=0;X<Largeur;X++) {
X’ = x[1] X2 + x[2] Y2 + x[3] XY + x[4] X + x[5] Y + x[6];Y’ = x[7] X2 + x[8] Y2 + x[9] XY + x[10] X + x[11] Y + x[12];// valider X’ Y’
imageCorrigee[Y][X] = imageDeforme[(int)Y’+0.5][(int)X’+0.5];
}
// Ne pas oublier de libérer les matrices et vecteurs avec les fonctions free_matrix()// et free_vector()
![Page 20: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/20.jpg)
Interpolation du type voisin le plus proche ["Nearest neighbor"]
Transformation spatiale
Affectation du niveau de gris
(x, y) )ˆ,ˆ( yx
)ˆ,ˆ(deprocheplusleVoisin
yx
)ˆ,ˆ( yxgf (x, y)
![Page 21: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/21.jpg)
Exemple: Correction géométrique
r11.rast
r11CGEO.rast
– – Résultat de la correctionRésultat de la correction
cadastreNS4X4.tiffcorrectiongeo r11.rast r11CGEO.rast 1258 842 338 1180 3.617372e-5 ...
![Page 22: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/22.jpg)
Exemple: Correction géométrique
Modèle de déformation:
x’ = 3.617372e-5 y2 - 7.388483e-5 x2 - 7.460775e-6 xy - 0.06930322 y + 0.8548632 x + 21.974
y’ = 2.625691e-5 y2 - 4.338432e-6 x2 + 1.788196e-5 xy + 1.210034 y - 0.03385992 x - 415.5843
où x’,y’ sont les coordonnées des pixels dans l’image déformée et x,y celles de l’image
corrigée (idéale).
![Page 23: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/23.jpg)
Utilités d’un modèle de caméra
Points 2D(image)
Modèle decaméra
Points 3D(espace)
Matrice deTransformation(paramètres du
Modèle)
Étalonnagede caméra
Opération faitesune seule fois.
• Le but recherchéest donc de trouverla coordonnée dansl’espace 3D d’un objet projeté dansl’image (pixel 2D)
![Page 24: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/24.jpg)
Modèle de caméra (sténopé=> pinhole)
![Page 25: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/25.jpg)
Modèle de caméra (sténopé=> pinhole)
![Page 26: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/26.jpg)
Modèle de caméra (sténopé=> pinhole)
Le sténopé non inverseur
![Page 27: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/27.jpg)
Modèle de caméra (lentille)
• Le sténopé ne permet pas la création d’images nettes puisque l’ouverture étant petite, ne permet pas de laisser passer assez de lumière.• Une lentille est donc ajoutée pour contrer cette faiblesse.
![Page 28: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/28.jpg)
Modèle de caméra (lentille)
Inverseur
Non inverseur
![Page 29: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/29.jpg)
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)
![Page 30: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/30.jpg)
Étalonnage de caméra (modèle d’acquisition d’images)
Plan Image
Système de référencede la caméra
![Page 31: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/31.jpg)
Étalonnage de caméra (modèle d’acquisition d’images)
![Page 32: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/32.jpg)
Étalonnage de caméra (modèle d’acquisition d’images: Paramètres extrinsèques)
![Page 33: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/33.jpg)
Étalonnage de caméra (modèle d’acquisition d’images: Paramètres extrinsèques)
![Page 34: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/34.jpg)
Étalonnage de caméra (modèle d’acquisition d’images: Paramètres intrinsèques)
Projection (transformation) en perspective du point P dans l’image
f (focal distance)
![Page 35: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/35.jpg)
Étalonnage de caméra (modèle d’acquisition d’images: Paramètres intrinsèques)
Application de la projection en perspective:
Calcul des coordonnées images:
(ox, oy): coordonnées du point principal (centre de l’image, ox = N/2 oy = M/2)sx et sy sont les dimensions horizontale et verticale d’un pixel (en mm)
![Page 36: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/36.jpg)
Étalonnage de caméra (modèle d’acquisition d’images)
Passage des coordonnées du monde aux coordonnées image:
En coordonnées homogènes:
![Page 37: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/37.jpg)
Étalonnage de caméra (modèle d’acquisition d’images)
En coordonnées homogènes:
![Page 38: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/38.jpg)
Étalonnage de caméra (modèle d’acquisition d’images)
1100
0
987
654
321
0
0
Z
Y
X
trrr
trrr
trrr
v
u
s
sv
su
z
y
x
Pixel 2DImage
Paramètresintrinsèquesde la caméra
Paramètresextrinsèques
Points 3D(mm)
![Page 39: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/39.jpg)
Étalonnage de caméra (modèle d’acquisition d’images)
1
100
0
1
34333231
24232221
14131211
987
654
321
0
0
34333231
24232221
14131211
Z
Y
X
mmmm
mmmm
mmmm
s
sv
su
trrr
trrr
trrr
v
u
mmmm
mmmm
mmmm
M
Z
Y
X
M
s
sv
su
z
y
x
• L’étalonnage consiste donc à trouver la matrice M
![Page 40: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/40.jpg)
Étalonnage de caméra (modèle d’acquisition d’images)
0
0
1
2434333231232221
1434333231131211
34333231
24232221
14131211
34333231
24232221
14131211
mvmvZmvYmvXmZmYmXm
mumuZmuYmuXmZmYmXm
mZmYmXms
mZmYmXmsv
mZmYmXmsu
Z
Y
X
mmmm
mmmm
mmmm
s
sv
su
Équations d’étalonnage
![Page 41: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/41.jpg)
Étalonnage de caméra
Pour déduire les coefficients de ce modèle d’étalonnage (donner des valeurs aux coefficients de déformation 3D/2D, m11, m12, m13, m14, m21 …. ……, m34) nous devons d’abord 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 l’espace 3D du monde.
Supposons que ces points de contrôle sont d’une part sélectionnés et ensuite stockés dans les vecteurs u, v (image scène) et X, Y, Z (points 3D)
![Page 42: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/42.jpg)
Étalonnage de caméra
Exemple de cible 3D utilisée pour l’étalonnage de caméra.
![Page 43: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/43.jpg)
Étalonnage de caméra
Système d’équations linéaires Ax = b :
m
m
mmmmmmmmmm
mmmmmmmmmm
m
m
m
m
m
m
m
m
m
m
m
m
vZvYvXvZYX
uZuYuXuZYX
vZvYvXvZYX
uZuYuXuZYX
0
0
0
0
0
0
0
0
10000
01000
10000
01000
3
3
2
2
1
1
24
14
34
33
32
31
23
22
21
13
12
11
1111111111
1111111111
Vecteur des sol’n recherchées
Coordonnéesdes points de contrôle 3D.
Coordonnées des pointsde contrôle dans l’image de la scène
A x b
![Page 44: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/44.jpg)
Étalonnage de caméra
Algorithme de résolution: étalonnage de caméraint X[20],Y[20], Z[20],U[20],V[20];float wmax, wmin, **a,**u,*w,**v,*b,*xint i,j,minPos;
// selectionner un minimum de 6 points de contrôle….// selectionner un maximum de 20 points de contrôlea = matrix(1,2*m,1,12); // matrice A de 2mX12u = matrix(1,2*m,1,12); // m: nombre de points de contrôlew = matrix(1,12,1,12);v = matrix(1,12,1,12);b = vector(1,2*m); // points de contrôle dans l’image deformeex = vector(1,12); // vecteur des sol’n….. // mise à 0 de A
![Page 45: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/45.jpg)
Étalonnage de caméra
Algorithme de résolution: étalonnage de caméra (suite …)
for(i=1;i<=2*m;i+=2) {// initialiser Aa[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; }
![Page 46: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/46.jpg)
Étalonnage de caméra
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;
}
![Page 47: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/47.jpg)
Étalonnage de caméra
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<=12;j++) if(w[j] > wmax) wmax = w[j];wmin = wmax; // trouver la valeur propre min. dans wfor(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
![Page 48: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/48.jpg)
Étalonnage de caméra
Avec le vecteur des sol’n x dont les éléments correspondent aux coefficients des équations de transformation 3D/2D (points dans l’espace vers pixels). (x[1] m11, x[2] m12, x[3] m13, x[4] m21, x[5] m22, x[6] m23, x[7] m31, x[8] m32, x[9] m33, x[10] m34, x[11] m14, x[12] m24), nous pouvons déduire la position la position 3D d’un point dans l’espace à partir de sa projection u,v dans le plan image.
![Page 49: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/49.jpg)
Projection 2D/3D
• Pour un point u,v donné dans une image, vous trouversa position 3D sur le plancher Xw, Yw, Zw (mm)
![Page 50: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/50.jpg)
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 ennombre de pixels horizontalfy: distance focale exprimée ennombre de pixels verticalcx: coordonnée x du centre de l’imagecy: coordonnée y du centre de l’image
![Page 51: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/51.jpg)
Calibration de caméras avec OpenCV
• La matrice extrinsèque [Rt] de la caméra permet d’exprimer 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
![Page 52: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/52.jpg)
Exemple de calibration de caméra avec OpenCV
• Voir l’exemple de programme mainCalibrationCAM.cpp
![Page 53: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/53.jpg)
Exemple de calibration de caméra avec OpenCV
• Patron de calibration utilisé:
![Page 54: 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](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9db8497959293b8dc6e0/html5/thumbnails/54.jpg)
Résumé
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