Académique Documents
Professionnel Documents
Culture Documents
u = Kc - L(ũ) (2)
� �
fx γ ox
Kc = � 0 f oy y � (3)
0 0 1
u˜ - (1 + k r12 + k r24 ) + ∆ t (ũ)
L(ũ) = 1 (4) Figure 3. Exemple de motif gris décodé : les pixels de même couleur
correspondent soit à la même colonne du projecteur (à gauche), soit à la
) même ligne du projecteur (à droite). La couleur grise signifie "incertain".
2k 3 u˜ x u˜ y + k4 (r2 + x 2u˜
2
Notez qu'il n'y a pas de pixels incertains dans la région du damier.
∆t (ũ) = 2 2 (5)
k3 (r + 2 u ˜ y ) + 2k 4 u˜ x u˜ y
r2 = u ˜ 2 + (6) vitesse. D'aucuns pourraient faire valoir que la capture d'un
u˜2 grand nombre d'images
x y
pour chaque pose du damier rend notre méthode complexe,
où Kc correspond à l'étalonnage intrinsèque de la caméra,
mais l'ensemble de la tâche d'acquisition des données est
k1 et k2 aux coefficients de distorsion radiale, et k3 et k4
aux coefficients de distorsion tangentielle. De même, si R identique à la tâche standard de balayage à lumière
et T sont une rotation structurée telle qu'elle sera exécutée ultérieurement. En
et un vecteur de translation qui codent la position du centre outre, la seule exigence réelle pour l'utilisateur est de
de projection du projecteur dans le système de coordonnées maintenir le damier statique pendant quelques secondes, le
mondial défini ci-dessus, et que v ∈ R2 les coordonnées des temps nécessaire pour projeter et capturer une séquence
pixels de l'image de X dans le plan du projecteur, alors complète.
� x′ �
′ x /z′′
� ′ C. Étalonnage de la caméra
X= y �=R-X+ v˜= y (7) L'étalonnage intrinsèque de la caméra consiste à estimer
z′
T, les pa- ramètres dans le modèle de caméra choisi. En suivant
/z′′
la méthode de Zhang, nous devons trouver les coordonnées
dans la caméra
v = Kp - L(v˜) (8) capter une séquence complète de motifs de lumière
structurée. Bien que n'importe quelle séquence de lumière
où le projecteur est décrit par son étalonnage intrinsèque
structurée puisse fonctionner, nous avons utilisé et
Kp , et la paire (R, T ) est connue comme l'étalonnage
recommandons des séquences de code gris (Fig. 2) parce
extrinsèque du système stéréo.
qu'elles sont robustes aux erreurs de décodage - dans une
B. Acquisition de données routine d'étalonnage, éviter toutes les erreurs possibles
L'étalonnage de la caméra consiste à collecter des images l'emporte généralement sur l'exécution.
d'un damier planaire. Nous avons modifié cette étape
d'acquisition pour permettre d'étalonner à la fois la caméra
et le projecteur. La nouvelle méthode d'acquisition des
données est la suivante : pour chaque orientation de plan, au
lieu de capturer une seule image, l'utilisateur doit projeter et
plan de l'image de tous les coins du damier, pour chacune
des orientations du damier capturé. L'emplacement des
coins est recherché dans une image complètement éclairée,
pour chaque orientation du damier, à l'aide d'une procédure
standard. Une image complètement éclairée est une image
capturée lorsque tous les pixels du projecteur de données
sont allumés - si une telle image n'est pas disponible, elle
peut être créée comme le maximum de chaque image de la
séquence. La procédure se poursuit comme l'étalonnage
habituel de la caméra, veuillez consulter [17] pour plus de
détails.
Notre logiciel s'attend à ce que la première image de
chaque séquence de codes gris soit une image
complètement éclairée qui pourrait être utilisée directement
pour l'étalonnage de la caméra. Il utilise la fonction
findChessboardCorners() d'OpenCV [18] pour trouver
automatiquement les emplacements des coins du damier,
puis les affine pour atteindre une précision inférieure au
pixel. Enfin, un appel à la fonction calibrateCamera()
renvoie les paramètres calibrés de la caméra.
une quantité de lumière, appelée composante globale,
provient d'autres sources (y compris des réflexions sur
d'autres pixels du projecteur). Les erreurs de décodage dans
les séquences grises sont principalement dues à l'incapacité
d'identifier ces composantes ou à l'ignorance totale de leur
existence. Au contraire, si chaque composante est
correctement identifiée, un simple ensemble de règles
permet de réduire considérablement les erreurs de décodage
(Fig. 3). Les règles et des informations supplémentaires sur
le sujet sont données dans [20] sous le nom de classification
Figure 4. L'emplacement des coins du projecteur est estimé avec une
robuste des pixels.
précision inférieure au pixel en utilisant les homographies locales de La relation apprise à partir des modèles de lumière
chaque coin de l'image de la caméra. structurés n'est pas bijective - elle ne peut pas être utilisée
immédiatement pour traduire les coordonnées de la caméra
à celles du projecteur. Pour résoudre ce problème, nous
D. Étalonnage du projecteur proposons le concept d'homographie locale : une
homographie qui n'est valable que dans une région du plan.
Notre projecteur et notre appareil photo sont décrits avec Au lieu d'appliquer une homographie globale unique pour
le même modèle mathématique, et nous aimerions donc traduire tous les coins du damier en coordonnées du
suivre une procédure identique pour les étalonner tous les projecteur, nous trouvons une homographie locale pour
deux. Mais le projecteur n'est pas une caméra. Si le chacun des coins du damier. Chaque homographie locale est
projecteur était une caméra, il serait possible de capturer des estimée dans un petit voisinage du coin cible et n'est valable
images à partir de son point de vue, d'y rechercher des coins que pour traduire ce coin en coordonnées de projecteur et
de damier et de continuer comme avant. En réalité, de telles aucun autre coin. Les homographies locales permettent de
images n'existent pas, mais nous connaissons une relation modéliser des distorsions non linéaires car chaque coin est
entre les pixels du projecteur et ceux de la caméra - extraite traduit indépendamment des autres. En outre, elles sont
des séquences lumineuses structurées - et nous montrerons robustes aux petites erreurs de décodage parce qu'elles sont
comment utiliser cette relation pour estimer l'emplacement surdéterminées ; elles sont estimées à partir d'un voisinage
des coins du damier dans les coordonnées des pixels du comportant plus de points que le minimum requis.
projecteur. De plus, comme tous les calculs sont effectués à
Une homographie locale est trouvée pour chaque coin de
la résolution originale de la caméra, les coordonnées des
damier en tenant compte de tous les points correctement
coins sont localisées avec une plus grande précision que si
décodés dans une zone de l'image de la caméra centrée sur
l'on utilisait des images synthétiques à la résolution du
l'emplacement du coin. Soit p les coordonnées des pixels de
projecteur.
l'image d'un point du patch sous
La procédure de calcul des coordonnées des coins du et que soit q le pixel projecteur décodé pour ce point, alors
damier dans le système de coordonnées du projecteur peut nous trouvons une homographieJOSUE Hˆ qui minimise :
NGOULA
être décomposée en trois étapes : premièrement, la séquence
de lumière structurée est décodée et chaque pixel de la Hˆ = argminΣ2023-05-11
|q - Hp||2
04:47:59
(9)
--------------------------------------------
caméra est associé à une ligne et à une colonne du H �p
projecteur, ou est défini comme "incertain" (Fig. 3) ; juste vue comme la
H ∈ R3×3 , p = [x, y, 1]T , qtransformation(matrice
= [col, row, 1]T (10)
et rotation par
deuxièmement, un modèle local de l'angle du damier est
calculé pour chaque pixel de la caméra, et chaque pixel est Le coin cible p¯, situé au centreexemple)
du patch,permettant
est traduit en q¯,
d'associer plan
associé à une ligne et à une colonne du projecteur. donné en coordonnées de projecteur, en appliquant
image projecteur et plan image
L'homographie est estimée pour chaque coin du damier dans l'homographie locale H ˆ :
l'image de la caméra ; enfin, chacun des coins est converti caméra (en terme de position de
JOSUE NGOULA
2023-05-11 04:38:51
pixel). C'est en d'autres termes les
(figure 4) des coordonnées de la caméra aux coordonnées du
projecteur en appliquant l'homographie locale qui vient --------------------------------------------
éléments du vecteur translation et de
d'être trouvée. la possibilité d'identifier les erreurs
la matrice de rotation.
L'étape de décodage de la lumière structurée dépend du est bien dans la mesure où sa
q¯ = Hˆ - (11)
modèle projeté, dans notre cas des codes gris connaissance permet de continuer le
complémentaires pour la lumière structurée. p¯ processus d'optimisation dans le but
des lignes et des colonnes. Ici, notre méthode diffère de diviser l'intensité mesurée à chaque pixel en une composante
d'obtenir les paramètres minimisant
celle de [15], où des motifs de franges ont été proposés - directe et une composante globale. Dans l'idéal, la quantité
notre choix donne la priorité aux motifs de franges. de lumière perçue au niveau de l'erreur.
chaque pixel de la caméra est
la précision du décodage par rapport à la vitesse le produit de l'activation ou de la désactivation d'un seul
d'acquisition. Comme le souligne [19], un sous-ensemble pixel du projecteur, mais dans la pratique, c'est rarement le
d'images à code gris - celles où les bandes semblent cas. La valeur d'intensité rapportée par la caméra au niveau
"minces" - peut être considéré comme présentant un motif à d'un pixel est la somme de la quantité de lumière émise par
haute fréquence. Ces motifs à haute fréquence permettent de un pixel du projecteur, appelée composante directe, et d'une
partie de la lumière émise par le projecteur. La même stratégie est répétée jusqu'à ce que tous les
coins du damier aient été traduits. Maintenant, connaissant
l'emplacement de tous les coins dans le système de
coordonnées du projecteur, l'étalonnage intrinsèque du
projecteur est trouvé avec la même procédure que pour la
caméra.
E. Étalonnage du système stéréo
L'étalonnage stéréoscopique consiste à trouver la rotation
et la translation relatives entre le projecteur et la caméra. À
ce stade, les paramètres intrinsèques trouvés précédemment
sont maintenus fixes, les coordonnées du monde sont
identifiées avec les coordonnées de la caméra et nous
recherchons la position du projecteur en coordonnées du
monde. Les dimensions physiques du damier de calibration
sont connues. Les projections des coins du damier sur les structuré. L'algorithme
plans d'image de la caméra et du projecteur sont également
connues - elles ont été trouvées lors des étapes précédentes.
L'étalonnage du système stéréo projecteur-caméra est donc
identique à l'étalonnage de tout autre système caméra-
caméra.
Notre logiciel appelle la fonction stereoCalibrate()
d'OpenCV avec les coordonnées des coins du damier
trouvées précédemment et leurs projections. Le résultat est
une matrice de rotation R et un vecteur de translation T
reliant le couple projecteur-caméra.
F. Algorithme
La procédure d'étalonnage complète peut être résumée en
étapes simples et mise en œuvre sous la forme d'un
algorithme d'étalonnage :
1) Détecter l'emplacement des coins du damier pour
chaque orientation de plan dans les images
complètement éclairées.
2) Estimer les composantes globales et directes de la
lumière pour chaque ensemble à l'aide de motifs à
haute fréquence en code gris.
3) Décoder les motifs lumineux structurés en
correspondances de lignes et de colonnes de
projecteurs au moyen d'une classification robuste des
pixels, en tenant compte des composantes globales et
directes des pixels de l'étape 2.
4) Prendre de petites parcelles d'image centrées sur les
coordonnées des coins du damier de l'étape 1 (par
exemple, un carré de 47x47 pixels) et utiliser tous les
pixels correctement décodés dans chaque parcelle
pour calculer une homographie locale qui relie les
coordonnées de la caméra à celles du projecteur. Les
réponses ont été obtenues à l'étape 3.
5) Traduire les emplacements des coins (étape 1) des
coordonnées de la caméra à celles du projecteur en
utilisant les homographies locales du patch de l'étape
4.
6) Fixer un système de coordonnées mondiales sur le
plan du damier et utiliser la méthode de Zhang pour
trouver les coordonnées intrinsèques de la caméra en
utilisant les positions des coins de la caméra de l'étape
1.
7) Fixer un système de coordonnées mondiales sur le
plan du damier et utiliser la méthode de Zhang pour
trouver les intrin- siques du projecteur en utilisant les
positions des coins du projecteur de l'étape 5.
8) Fixer les paramètres intrinsèques de la caméra et du
projecteur (étapes 6 et 7) et utiliser les positions des
coins du monde, de la caméra et du projecteur (étapes
1 et 5) pour estimer les paramètres extrinsèques de la
stéréo.
9) En option, tous les paramètres, intrinsèques et
extrinsèques, peuvent être ajustés ensemble pour
minimiser l'erreur de reprojection totale.
III. LOGICIEL D'ÉTALONNAGE
Nous avons intégré l'algorithme de la section II-F dans un
logiciel complet d'étalonnage de système d'éclairage
lorsqu'elle est associée à des images à haute résolution.
Nous avons travaillé avec des images de 12Mpx et nous
avons observé ce problème. Notre solution consiste à
réduire l'échantillonnage des images d'entrée afin d'accélérer
la recherche des coins, et de considérer les emplacements
des coins réduits comme une solution approximative pour la
recherche à haute résolution. Cette technique simple s'est
avérée rapide et efficace : la vitesse de recherche est
indépendante de la résolution de la caméra et les résultats
sont aussi précis que si aucun sous-échantillonnage n'avait
été effectué, car l'affinement est exécuté à la résolution
d'origine.
En théorie, les composantes directes et globales de la
lumière devraient être estimées à partir du motif projeté à la
Figure 5. Écran principal du logiciel d'étalonnage
fréquence la plus élevée. En pratique, cela donne des images
décodées avec des artefacts visibles. Nous sautons donc la
fréquence la plus élevée et nous calculons les composantes
(GUI) capable de calibrer de tels systèmes en suivant une
directes et globales à partir des deux deuxième motifs les
procédure simple. Le logiciel est entièrement écrit en C++,
plus élevés. La combinaison de plusieurs motifs donne une
utilise Qt [21] comme bibliothèque d'interface graphique et
meilleure précision et le fait de sauter le dernier motif
la bibliothèque OpenCV [18] pour les tâches liées à la
élimine les artefacts dus à la résolution limitée du
vision. Cette sélection de bibliothèques permet de
projecteur.
construire et d'exécuter le logiciel sur des plates-formes
courantes telles que Microsoft Windows et GNU/Linux. Soit S = {I1 , - - - , Ik } l'ensemble sélectionné
La détection des coins du damier est effectuée avec la d'images matricielles, et soit p un emplacement de pixel
fonction findChessboardCorners() d'OpenCV. Cependant, valide, les composantes directes et globales en p, Ld (p) et
comme indiqué dans [22], cette fonction est très lente Lg (p), sont trouvées comme suit :
L'objectif est double : d'une part, prouver que notre méthode L+ = max I (p), L− = min I (p), (12)
peut être appliquée à l'ensemble de la population.
Deuxièmement, faciliter l'accès à des scans 3D de haute p
0<i≤k
i p
0<i≤k
i
qualité pour un large éventail d'utilisateurs - nous pensons
que les scans 3D structurés peuvent être exécutés de manière L+ - L− L− - b L+
entièrement automatique, à condition que les images
d'étalonnage soient disponibles.
les systèmes d'éclairage sont la clé. Notre expérience montre Ld (p) =p p , Lg (p) = 2p p , (13)
que les systèmes d'éclairage cali-
L'évaluation précise des systèmes d'éclairage structurés est 1-b 1- b2
IV. RÉSULTATS
Nous avons développé cette méthode d'étalonnage pour
permettre une numérisation 3D de haute précision. Par
conséquent, nous pensons que la meilleure évaluation de la
qualité de l'étalonnage consiste à numériser des objets dont
la géométrie est connue et à comparer leurs modèles 3D
avec les données de la réalité du terrain. En outre, nous
pensons qu'une évaluation ne serait pas complète sans une
comparaison avec d'autres méthodes d'étalonnage
disponibles. Nous avons cherché et trouvé que ProCamCalib
[10] et Projector-Camera Calibration Toolbox (également
procamcalib) [1] de Samuel Audet sont des outils
accessibles au public. Nous avons essayé les deux, mais la
version actuelle de l'outil d'Audet ne peut pas être utilisée
avec notre caméra, c'est pourquoi nous comparerons notre
méthode avec Projector-Camera Calibration Toolbox [1]
uniquement, à partir de maintenant simplement
"procamcalib".
A. Configuration du test
Notre configuration de test comprend un projecteur de
données DLP Mitsubishi XD300U et un appareil photo
Canon EOS Rebel XSi. La résolution du projecteur est de
1024x768 et celle de l'appareil photo de 4272x2848. Ils ont
été placés l'un à côté de l'autre (Fig. 6). Leur longueur de
focalisation, leur zoom et leur direction ont été réglés avant
l'étalonnage en fonction de la cible de l'analyse.
B. Erreur de reprojection
Habituellement, la qualité de l'étalonnage de la caméra est
évaluée en tenant compte uniquement des erreurs de
reprojection. Cependant, une erreur de reprojection
minimale mesurée dans les images d'étalonnage ne garantit
pas la meilleure précision de reconstruction d'objets
arbitraires. En fait, dans nos expériences, l'ajout d'une étape
supplémentaire de minimisation des paramètres intrinsèques
et extrinsèques (Section II-F, étape 9) a surajouté les
données d'étalonnage, produisant des modèles 3D
légèrement moins précis. Dans l'ensemble, les erreurs de
reprojection sont des indicateurs de la précision de
l'étalonnage et nous présentons les nôtres comme une
référence pour la comparaison avec d'autres méthodes. Le
erreurs de reprojection, nous avons scanné des objets réels
et créé des modèles 3D qui ont pu être comparés aux
données de la réalité du terrain. Notre premier modèle
correspond à un plan de 200x250 mm,
Figure 6. Configuration
du système
Tableau I
ERREUR DE
REPROJECTION
Tableau II
COEFFICIENTS DE DISTORSION DU PROJECTEUR : k1 ET k2
DISTORSION RADIALE, k3 ET k4 DISTORSION TANGENTIELLE