Projet "Imagerie Numérique"
DÉROULEMENT DU PROJET
L'objectif du projet de l'UE Imagerie numérique est de vous permettre de
montrer vos compétences acquises sur les différents outils qui ont été abordés
durant le semestre. Ce projet va se dérouler selon les modalités suivantes :
- Le projet s'effectue en binôme (avec la même répartition en binôme que celle
qui sera utilisée pour le DST) et se compose d'une partie Imagerie
2D et d'une partie Imagerie 3D
- Le résultat attendu pour le projet est la production d'un notebook Jupyter
(format .ipynb) et d'une scène 3D modélisée avec Wings (format
.wings). Un notebook-squelette projet.ipynb est fourni, permettant de montrer
l'organisation demandée à l'intérieur du notebook.
- Le projet se déroule en 4 étapes :
- Pour le samedi 15 novembre, il faudra avoir constitué un
binôme et choisi un sujet pour les 2 parties du projet. Pour cette étape, il
suffira d'envoyer un mail à l'adresse habituelle inum@gmx.fr,
récapitulant les noms des deux membres du binôme, la thématique choisie pour la
partie 2D, le type de scène (avec la liste des objets que vous envisagez de
modéliser) choisie pour la partie 3D
- Le mercredi 3 décembre, la séance de TP sera consacré au suivi de projet,
binôme par binôme. Comme l'objectif est d'avancer simultanément sur les parties
2D et 3D, il faudra, lors de cette séance, avoir des premiers éléments concrets
à montrer, sur les deux parties de votre travail.
- Pour le samedi 13 décembre, il faudra avoir déposé dans le
sous-dossier PROJET de votre espace CREMI, une version intermédiaire du
projet : un notebook nommé nomA.nomB.1.ipynb et une scène 3D
nomA.nomB.1.wings (en remplaçant 'nomA' et 'nomB' par les noms des
membres du binôme, évidemment).
- Pour le samedi 3 janvier, il faudra avoir déposé la version
finale de votre projet: le notebook nomA.nomB.2.ipynb et la scène 3D
nomA.nomB.2.wings, dans le même dossier que la version
intermédiaire.
MODALITÉS D'ENVOI
Comme pour les exercices effectués durant le semestre, les différentes versions
du projet, ainsi que les fichiers associés seront déposés dans votre dossier
habituel sur votre espace www au CREMI. Le quota par étudiant sur cet
espace est de 5 Go, donc vous aurez largement la place, même si vous souhaitez
y mettre des fichiers volumineux comme des vidéos.
Pour avoir une organisation homogène pour l'ensemble des binômes, tous les
fichiers du projet doivent être placés dans le dossier PROJET au sein de
votre dossier "secret" habituel. Tous les fichiers auxiliaires (données,
images, vidéos, etc) utilisés par votre notebook Jupyter devront être copiés
dans ce dossier, ce qui permet d'utiliser des liens locaux à l'intérieur de
votre notebook.
Pour les fichiers de données utilisés par votre scène 3D, la mise en oeuvre est
un peu plus complexe. En effet, le logiciel Wings3D permet d'utiliser soit le
mode interne, soit le mode externe pour stocker les images
correspondant aux textures des objets :
- Dans le mode interne, l'image est directement insérée dans le
fichier Wings, ce qui permet de garantir que les textures vont toujours
être trouvées par l'application, même si vous copiez le fichier d'un dossier à
un autre, ou même d'une machine à une autre.
- A l'inverse, dans le mode externe, seul un lien vers le fichier
contenant l'image est stocké dans le fichier Wings, ce qui veut dire
que le fichier d'origine (PNG ou JPG) doit impérativement être fourni avec le
fichier Wings pour y avoir accès. L'avantage est que cela crée des fichiers
Wings plus petits (puisque les textures restent à part), mais l'énorme
inconvénient est que le lien entre le fichier Wings et l'image sur disque
dépend du système d'exploitation. Par conséquent, les images externes d'une
scène Wings modélisée sous MacOS, ne pourront pas être récupérés facilement
sous Windows ou Linux, et vice versa.
Pour éviter ce problème dans le cadre de votre projet, il est donc
indispensable d'utiliser le mode interne pour toutes images qui
sont incluses dans votre scène. Le mode externe est le mode par défaut lorsque
vous utilisez la commande Import Image présente dans le menu File
(ou lorsque vous faites glisser une image vers l'intérieur de la fenêtre Wings
en partant de l'explorateur de fichiers). Il est donc nécessaire de
convertir chaque image importée en mode interne, en faisant un
clic droit sur le nom de l'image dans la zone Outliner et d'activer la
commande Make Internal.
A l'inverse, lorsque vous utilisez la commande Screenshot du menu
Tools, l'image générée est en mode interne par défaut. Donc si vous
voulez utiliser des copies d'écran pour les insérer dans votre notebook afin de
créer le making-of, il faut commencer par convertir ces
screenshots en mode externe. A nouveau, il suffit de faire un clic
droit sur le nom de l'image dans la zone Outline et d'activer cette
fois-ci la commande Make External.
SUJETS "IMAGERIE 2D"
L'objectif du sujet 2D est de choisir une des thématiques listées ci-dessous,
d'effectuer une recherche bibliographique et webographique sur ce domaine, de
produire une documentation (cellules de texte, en langage Markdown)
résumant ce que vous avez pu trouver comme éléments scientifiques liés à ce
domaine, ainsi qu'un programme (cellules de code, en langage Python)
permettant de mettre en oeuvre (avec les outils vus en TD, principalement les
packages numpy, pillow,
skimage) quelques unes des techniques logicielles utilisées
dans la thématique choisie.
Comme pour toute recherche bibliographique, l'intégralité des sources utilisées
pour la rédaction des cellules de texte doivent être minitieusement référencées
(le plus simple est de privilégier des pages web et des vidéos en ligne,
facilement identifiable par une URL). La même règle s'applique pour les
cellules de code : vous n'êtes pas obligé d'écrire l'intégralité du code Python
que vous mettez dans votre notebook, mais il faudra impérativement mettre les
références pour me permettre de retrouver le code d'origine. De même, si vous
utilisez du code créé par une IA générative, il faudra mettre l'ensemble des
prompts ayant permis la génération du code. Dans tous les cas, vous devrez
mettre des explications sur le fonctionnement du code fourni, le relier aux
notions abordées dans les cellules de texte, et inclure plusieurs exemples
d'utilisation de ce code dans votre notebook. Il est important de rappeler que
vous ne pouvez pas installer de nouveaux packages dans l'environnement
Jupyter du CREMI, il faut donc vérifier que le code importé est bien
compatible avec les bibliothèques qui sont déjà installées sur les postes du
CREMI.
Voici la liste des 18 thématiques proposées au choix, avec pour chacune d'elle,
un premier pointeur bibliographique sous la forme d'une page Wikipedia. J'ai
systématiquement mis un lien sur la version anglaise des pages Wikipedia
concernées, car il y a souvent plus de détails que dans la version française de
la même page. Mais de toutes manières pour chacune des thématiques, vous
trouverez plein d'informations en français sur le web.
Il faut noter que toutes ces thématiques sont à géométrie variable, c'est-à-dire que c'est vous qui allez choisir le niveau de complexité que vous souhaitez atteindre, en fonction du temps que vous avez prévu de passer sur cette partie 2D. Concrètement, une version de base du texte explicatif peut tenir sur une trentaine de lignes et une version de base du code peut s'écrire en une dizaine de lignes, mais chaque thématique est suffisamment riche pour vous permettre d'approfondir votre recherche et de rendre un texte et un code extrêmement dense. Si vous le voulez, vous pouvez même aborder plusieurs des thématiques proposées et montrer qu'elles constituent des parties d'une thématique plus vaste. Evidemment, la notation sera adaptée en fonction de la quantité et de la qualité du travail réalisé.
SUJET "IMAGERIE 3D"
L'objectif du sujet 3D est d'utiliser Wings pour produire une scène 3D
relativement complexe, mélangeant les différentes techniques (géométriques et
photométriques) que nous avons abordées durant le semestre. En plus du fichier
Wings qui contiendra la scène 3D, il faudra créer dans le notebook du
projet, une partie consacrée à fournir un making-of des différentes
étapes nécessaires pour la création des objets composant la scène.
Comme pour les exercices bonus, l'idée est d'utiliser la commande
Screenshot de Wings3D pour générer les images nécessaires au making-of.
Mais à la différence des exercices bonus, les screenshots devront être
transformées en images externes (cf. Modalités d'envoi ci-dessus)
pour pouvoir les insérer dans le notebook à rendre, puis de rajouter la
description des opérateurs à utiliser. Le notebook-squelette projet.ipynb donne un exemple de
construction d'un noeud torique, pour illustrer le type d'informations à
fournir. Il n'est pas nécessaire de détailler toutes les étapes de tous les
objets : vous choisissez deux ou trois objets principaux dans votre scène et
vous mettez entre 8 et 12 images pour chacun d'eux.
Le choix de la scène à créer est totalement libre. La seule contrainte est
qu'elle contienne les cinq éléments suivants :
- Au moins un objet 3D avec une géométrie et/ou une topologie complexe
- Au moins un objet 3D avec une texture 2D (via la commande UV-mapping)
- Au moins un objet 3D avec une texture 3D (via la commande Vertex
Colors) ou des matériaux différents (via la commande Materials)
- Au moins un objet 3D avec texture, importé d'un site quelconque (format
OBJ ou autre) et ajusté à votre scène
- Inclusion de la scène dans un environnement texturé (sphère, cylindre ou
cube)
- Optionnel : Rendu photo-réaliste de la scène avec le moteur
de rendu Yafaray présenté en cours
- Super Optionnel : Vidéo d'animation photo-réaliste de la
scène (création image par image avec le moteur de rendu, puis montage vidéo)
CRITERES DE NOTATION
Comme indiqué ci-dessus, l'objectif de votre travail est de valoriser les
compétences que vous avez pu acquérir dans le domaine de l'imagerie numérique,
depuis le début du semestre. Autrement dit, plus vous allez intégrer des outils
variés dans votre travail, plus votre note finale aura des chances d'être
élevée.
...
Christophe Schlick