Photographie Algorithmique GIF-4105/7105

Bienvenue sur le site web du cours de Photographie Algorithmique pour la session d'hiver 2020!

La photographie algorithmique est un domaine qui se situe entre la vision artificielle, l'infographie, et la photographie. Elle utilise des techniques de calcul permettant de compenser les limites des appareils photo traditionnels et améliore la façon dont on capture et manipule les données visuelles ainsi que la façon dont on interagit avec elles. Le cours permet d'explorer la formation des images, les modèles d'appareils, la création de panoramas, la synthèse de texture, les images à haute plage dynamique (HDR), le redimensionnement intelligent, le morphage, etc. Il s'oriente sur l'application concrète des concepts par de nombreux travaux pratiques, ainsi qu'un projet personnel.

Équipe

Jean-Francois Lalonde

Jean-François Lalonde
Professeur

Contactjflalonde@gel.ulaval.ca
BureauPLT-1138E
Disponibilités Mercredi 12h30-13h30
Luca Blanchout

Luca Blanchout
Assistant

Contact Piazza
Bureau PLT-1114C
Disponibilités Mardi 15h30-16h30
Jeudi 14h30-15h30
Mathieu Garon

Mathieu Garon
Assistant

Contact Piazza

Logistique

Horaire

Jour Heure Local
Jeudi 9h30 à 12h20 PLT-2505

Plan de cours

Lien vers les plan de cours officiels: GIF-4105 (bacc), GIF-7105 (gradués), et vers la page Capsule.

Forum de discussions

Nous utilisons Piazza pour toutes questions, discussions, etc. N'hésitez pas à vous en servir!

Évaluations

Travaux pratiques

Voyez les présentations de tous les projets finaux ici!

Tous les travaux pratiques devront être remis sur le portail des cours. La politique des retards est disponible dans le plan de cours.

Travail Disponibilité Date de remise Pondération
TP1: Coloration de l'Empire Russe (English) 16 janvier 30 janvier, 23h59 12%
TP2: On s'amuse en fréquences (English) 30 janvier 13 février, 23h59 12%
TP3: Morphage de visages++
Partie A (English)
Partie B (English)
13 février Partie A : 27 février, 23h59
Partie B : 5 mars, 23h59
16%
TP4: Assemblage de photos automatique (English) 5 mars 2 avril 26 mars, 23h59 16%
TP5: annulé Insertion d'objets virtuels 26 mars 9 avril, 23h59 12%
Projet: À vous de jouer! (English) 9 avril 30 avril, 23h59 22%

Examen

Examen Date Lieu Pondération
Partiel 2 avril PLT-2505 22%

Modules de cours

Cliquez sur le module pour révéler plus d'informations. Les informations manquantes seront mises à jour durant la session.

1. Introduction à la photographie algorithmique

16 janvier 2020

Messages

Le TP1 est disponible ici (English version). Date de remise: 30 janvier, 23h59.

Objectifs d'apprentissage
  • Se familiariser avec la structure du cours et les travaux pratiques
  • Différencier une caméra de l'oeil humain
  • Découvrir le phénomène de constance d'intensité et de couleur
  • Expliquer pourquoi une caméra possède un filtre de Bayer

2. Pixels et filtrage spatial

23 janvier 2020

Messages

Rappel: le TP1 est dû jeudi prochain (le 30 janvier), à 23h59

Objectifs d'apprentissage
  • Connaître les différentes représentations de la couleur d'une image
  • Identifier les avantages et inconvénients des espaces de couleur RGB, HSV et LAB
  • Appliquer des manipulations sur les pixels d'une image
  • Comprendre le filtrage dans le domaine spatial, et connaître ses propriétés
  • Effectuer des opérations de filtrage simples sur une image

3. Filtrage spectral et applications

30 janvier 2020

Messages

Le TP2 est disponible ici. Date de remise: 13 février, 23h59

Objectifs d'apprentissage
  • Connaître différents types de filtres
  • Comprendre l'impact de ces filtres lors de leur convolution avec une image
  • Interpréter le contenu fréquentiel d'une image
  • Reconnaître le phénomène du recouvrement spectral et pouvoir l'expliquer dans ses mots
  • Utiliser des filtres pour accentuer ou réduire les arêtes d'une image
  • Comprendre les principes derrière la compression JPG

4. Mélange: dégradé, pyramides et gradients

6 février 2020

Objectifs d'apprentissage
  • Comprendre l'équation de la composition d'images
  • Comparer les différentes approches vues: dégradé, pyramides, et gradients
  • Comprendre le processus de formation d'une pyramide (ou pile) Laplacienne
  • Comprendre et implémenter le mélange par pyramide (ou pile) Laplacienne
  • Anticiper l'impact de la manipulation des gradients d'une image
Modules de cours Contenu complémentaire
8. Mélange d'images Démonstrations Matlab
Démonstrations Python

5. Transformations linéaires et morphage

13 février 2020

Messages

Le TP3 est disponible! Il est divisé en deux parties: partie A (remise: 27 février, 23h59), et partie B (remise: 5 mars 23h59).

Objectifs d'apprentissage
  • Distinguer les différents types de transformations linéaires
  • Connaître les transformations linéaires pouvant être appliquées à une image
  • Savoir appliquer une déformation à une image
  • Se familiariser avec la méthode des moindres carrés pour estimer une déformation entre deux images
  • Comprendre comment appliquer ces déformations pour obtenir un morphage progressif entre deux images

6. La caméra

20 février 2020

Objectifs d'apprentissage
  • Connaître les principaux paramètres d'une caméra: focale, ouverture, vitesse d'obturation, ISO
  • Comprendre l'influence de ces paramètres sur la photo résultante
  • Distinguer profondeur de champ, distance focale, champ de vue et focus
  • S'initier au calibrage géométrique d'une caméra
  • Distinguer les paramètres intrinsèques des paramètres extrinsèques d'une caméra
Modules de cours Contenu complémentaire
11. La caméra Simulateur de caméras
11a. Demo Cameras

7. Mosaïques, détecteurs et descripteurs

27 février 2020

Objectifs d'apprentissage
  • Connaître l'algorithme pour calculer une homographie à partir de points de correspondances
  • Implanter un algorithme générant une mosaïque à partir de plusieurs images
Modules de cours Contenu complémentaire
12. Mosaïques

8. Semaine de lecture

2 au 6 mars 2020

9. Panoramas: génération automatique

12 mars 2020

Objectifs d'apprentissage
  • Implanter un algorithme générant une mosaïque à partir de plusieurs images
  • Distinguer un détecteur d'un descripteur
  • Expérimenter avec un détecteur et un descripteur simple pour apparier des images automatiquement
  • Se familiariser avec l'algorithme RANSAC
  • Connaître d'autres types de projection panoramiques: cylindriques et sphériques

Séance de dépannage et classe virtuelle

19 mars 2020

Messages

Nous nous retrouvons de 10h30 à 11h30 en classe virtuelle pour parler de vos questions sur le TP4 et pour tester Zoom.

11. Plage dynamique et insertion d'objets virtuels

26 mars 2020

Messages
  • Lien pour la classe virtuelle du 26 mars: https://zoom.us/j/259201417.
  • Le TP5 est annulé.
  • Vous disposez d'une semaine supplémentaire pour faire le TP4. Nouvelle date de remise: 2 avril, 23h59.
Objectifs d'apprentissage
  • Comprendre la différence entre la plage dynamique du monde et celle d'une caméra
  • Comprendre le fonctionnement du calibrage radiométrique par cible de calibrage
  • Comprendre le fonctionnement de l'auto-calibrage radiométrique à partir de plusieurs expositions
  • Implémenter un algorithme de calcul d'images à haute plage dynamique
  • Comprendre les trois principaux défis lors de l'insertion d'un objet virtuel dans une image
Modules de cours Contenu complémentaire
15. Plage dynamique
Classe virtuelle

10. Examen

2 avril 2020, 9h30-12h20, à distance

Informations sur l'examen
  • Compte pour 22% de la note.
  • L'examen porte sur les modules 1 à 13 inclusivement.
  • Portez attention à bien comprendre le fonctionnement des algorithmes, ainsi que les avantages et inconvénients de ceux-ci.
  • L'examen sera disponible sur le portail des cours le 2 avril 2020 à 9h30.

Conformément à la politique universitaire pour les évaluations à distance, « les étudiantes et étudiants devront désormais joindre à chaque travail et examen réalisé à distance une déclaration d’intégrité relative aux travaux et aux examens, à défaut de quoi le travail ou l’examen ne sera pas corrigé. »
Assurez-vous de remplir et signer la déclaration, et de la téléverser dans la boîte de dépot.

Examen de pratique

12. Insertion d'objets virtuels

9 avril 2020

Messages

Rappel: vous devez avoir reçu ma confirmation pour votre projet final avant de commencer à travailler! Tous les détails sont ici.

Objectifs d'apprentissage
  • Comprendre la différence entre la plage dynamique du monde et celle d'une caméra
  • Implémenter un algorithme de calcul d'images à haute plage dynamique
  • Comprendre les trois principaux défis lors de l'insertion d'un objet virtuel dans une image
  • Insérer ses propres objets virtuels dans ses propres photos!
Modules de cours Contenu complémentaire
16. Insertion d'objets virtuels Téléchargez Blender ici.
Classe virtuelle

13. Synthèse de textures et données visuelles massives

16 avril 2020

Messages

N'oubliez pas d'obtenir mon approbation pour votre projet final si ça n'est pas déjà fait! Tous les détails sont disponibles ici.

Modules de cours Contenu complémentaire
17. Les textures
18. Synthèse de textures avec données massives
20. Détection de faussaires (BONUS) Tel que demandé par Michael!
Classe virtuelle

14. Apprentissage profond

23 avril 2020

Messages

Dernière semaine de cours! Rappel: il n'y aura pas de présentations de projet la semaine prochaine: vous devez plutôt remettre des capsules vidéo pré-enregistrées. Voir tous les détails sur la page du projet.

Modules de cours Contenu complémentaire
19. Apprentissage profond
Classe virtuelle

Livre

Nous suivrons plusieurs chapitres dans le livre suivant:

Szeliski, Richard, "Computer Vision: Algorithms and Applications", Springer, 2010.

Le livre est disponible gratuitement à la bibliothèque de l’université à l'adresse suivante: https://acces.bibl.ulaval.ca/login?url=http://dx.doi.org/10.1007/978-1-84882-935-0. Une fois connecté avec l'IDUL, il y a un lien "Download Book" (environ 50MB).

Remerciements

Plusieurs cours offerts à d’autres universités ont servi d’inspiration pour ce cours. Notamment:

Merci à tous ces professeurs d'avoir mis le contenu de leur cours disponible sur Internet. À mon tour, je donne la permission à tous d'utiliser le contenu présent sur ce cours, à condition de donner crédit aux sources originales.