|
|
Avertissement
Le travail demandé pour la plupart des sujets est ouvert, dans le sens où il
n'est pas demandé d'implémenter à la lettre une méthode existante, mais de trouver une solution à un problème
donné avec les outils vus en cours ou fournis à l'occasion du projet. En conséquence:
- Les énoncés sont souvent réduits à l'énoncé du problème
- Il est attendu de la part des élèves une discussion très fréquente avec l'enseignant afin de les orienter.
Sujets
- [1] Calibration de la distortion
- Extraires des droites puis estimer la distortion radiale
- Hints: on pourra
- Utiliser un modèle de distortion radiale simple (1 seul coefficient, centre de distortion au centre de l'image)
- Utiliser la transformée de Hough pour extraire des droites
- Photographier une mire
- [2] Texturation de modèles 3D
- Etant donné un modèle 3D, des images 2D de ce modèle et les caméras associées, comment texturer le modèle
en limitant les artefacts?
- Hints:
- Voici un exemple de maillage avec les images et les caméras associées
- Vous pouvez utiliser MeshLab pour le visualiser, le simplifier, etc.
- Commencez par texturer l'objet à partir des images sans essayer de limiter les artefacts (regardez l'utilisation d'Imagine++ pour l'affichage du visage en 3D dans les corrigés des exercices)
- Les problèmes possibles sont: (i) limiter le nombre de transitions entre images et (ii) équilibrer la colorimétrie des images.
- On ignorera les problèmes d'occlusion
- Avec Imagine++ vous pourrez seulement attribuer une couleur à chaque sommet. Cela permet largement de voir si votre méthode marche. Pour aller plus avant, vous pouriez créer un fichier .OBJ avec des coordonnées de textures pointant vers une(des) image(s) et l'afficher avec MeshLab. Voici un exemple de résultat traitant le problème (i) mais pas le (ii). Un tel résultat nécessite la création d'un atlas de texture et n'est pas demandé.
- [3] Calibration non incrémentale
- Méthode globale d'estimation des rotations/translations en supposant K connue (à la Martinec)
- Hints:
- On suppose les matrices K connues (par exemple utilisation des EXIFs + taille du capteur connue + pixels carrés + point principal au centre)
- Implementez l'une des méthodes proposées section 2 de cet article
- La méthode EIGS de MatLab n'est pas requise. Utilisez les SVD d'Imagine++
- Pour calculer les rotations relatives, passez par une estimation des matrices essentielles (cf cours seance 7)
- Vous pouvez probablement retrouver les translations de façon plus simple et plus approchée que ce que l'article propose
- Bien évidemment, vous n'aurez qu'une estimation approchée des caméras, mais suffisante pour être raffinée par descente de gradient (travail non demandé)
- Sur demande, je peux fournir un jeu de données. Vous pouvez aussi prendre des photos en tournant autour d'un objet
- [4] Joystick 3D avec un Rubik's Cube
- Sur une image de Rubik's Cube prise avec une WebCam, trouver un moyen de déterminer rapidement des droites parallèles. La connaissance
de points de fuite permettant d'estimer la rotation de la camera, utiliser le Rubik's Cube et la WebCam pour faire tourner
un objet 3D à l'écran. Eventuellement la translation.
- Hints:
- Voir exercice 6.5 du livre de Rick Szeliski
- [5] Sujet proposé par les étudiants (après accord de l'enseignant)
- [a] Stéreo par plane sweeping sur GPU
- [b] Amélioration vision robot
- [c] Texturation et Scene graph
|