Fondements de la 3D (Fundamentals of 3D)
Responsable: Frank NIELSEN
Description
Ce cours offre une introduction aux notions communes de l'infographie, de
la vision par ordinateur et de la géométrie algorithmique.
On y décrit harmonieusement les méthodes, structures de données et
techniques algorithmiques communes et essentielles pour le traitement de
la 3D.
On s'attache à fournir les bases solides pour le traitement de la 3D en
montrant dès le départ, à partir d'exemples concrets, les différentes
synergies du domaine.
Le cours traite et développe les sujets suivants: structures de données
abstraites, transformations et flots des coordonnées, images, maillages,
animations,
algorithmique randomisée, robustesse, et grandes dimensions pour la 3D.
Filiere image du Master1 Informatique
Evaluation
Soutenance d'un projet de programmation/recherche en Java (et questions orales portant sur le cours).
Emploi du temps (pdf)
Les 9 cours (10h30-12h) auront lieu tous les Mercredi de la semaine du 22 Sept. a celle du 5 Dec.
(sauf pendant les vacances de Toussaint du 27-31/10 et la semaine du 17 au 21 Nov.)
Les 9 petites classes se derouleront l'apres-midi de 13h45 a 15h45:
Apportez vos portables (avec le Java JDK installe).
Language
Programming language is mostly Java (using object inheritance and generics)
Synopsis
- Cours 1 Introduction, : Presentation et structures de donnees abstraites (Abstract data structures)
Siggraph 2008 fast preview,
- stacks/queues (Flood filling),
- dictionary (segment intersection detection),
- priority queues (all pair intersections),
- disjoint set (image segmentation),
- geometric hashing (object recognition),
- axioms and traits class paradigm.
- PC1: Image processing in Java, Disjoint sets, Image segmentation,
flood-filling. (INF555-1.zip, Download some JPG/PNG test images)
- Suggested readings: Chapter 2, pages 7-62 of visual computing,
geometric hashing,
graphics filling algorithm
.
- Cours 2: Transformations
Local and global transformation, world/object modeling, matrices, stacking operations, LERP, homogeneous & inhomogeneous, projection, rotations as quaternions, scene graph, clipping, homography
- PC2: Homography and stitching, decomposition
- Cours 3: Advanced transformations
log-polar, cylindrical & spherical coordinates, polarity, conics and quadrics, SVD, tangent spaces, MCOPs
- PC3: Object recognition
- Cours 4: Images
warping, sampling, kernels, Fourier, barycentric analysis, EWA, color spaces, image pyramids
- PC4: Image pyramids and blending
- Cours 5: Meshes
curvature, topology, triangulation, procedural meshes, stripping, fairing, subdivision, parameterization
- PC5: Mesh subdivision
- Cours 6: Animation
Kinetic data-structures, direct and inverse kinetic, particle systems, rotations
- PC6: Particle systems and rotations using quaternions
- Cours 7: Randomization
RANSAC, Monte-Carlo simulations, randomized incremental construction, skip list, etc.
- PC7: RANSAC and image matching, Bounding volume hierarchy
- Cours 8: Higher dimensions for 3D
NN, kNN, linearization, kd-trees, locally-sensitive hashing, Voronoi & Delaunay, approximations
- PC8: Texture synthesis, kd-trees, centroidal Voronoi tesselations
- Cours 9: Robustness and Generic distances
Degeneracies, IEEE 754, predicate degrees, interval arithmetic
- PC9: Image search engine classification
- Soutenances de stages
Projets
A developper sous Java (mais C++ est egalement accepte si justifie)
Liste des projets proposes
Ouvrages de reference
R&D internships
- Description page 170 du livret d'enseignement (Edition 2008).
- Description du cours en francais et anglais (catalogue)