MRETCA1 — Résumé Complet Analyse Avancée d’Image — Deep Learning & Deep Fake
RÉSUMÉ COMPLET
Analyse Avancée d’Image — Deep Learning & Deep Fake
CHAPITRE I — Introduction à la Vision Numérique
Formation des images
— Image = transformation d’une scène réelle par un capteur (récepteur)
— Types d’objets : diffusant (plâtre, loi Lambert), réfléchissant (miroir, loi Descartes), transparent/réfractant
(verre)
— Capteurs : thermiques (thermopile) et photoélectriques (photodiodes, CCD)
— CCD (Charged Coupled Device) : cellules photo-sensibles → énergie lumineuse → énergie électrique → code
numérique
Pixel et Image numérique
— Image = ensemble de pixels ; un pixel = un élément d’image (en 3D : voxel)
— Image vectorielle : définie par des formes géométriques (formats : AI, SVG, EPS) → pas de perte en agran-
dissement
— Image matricielle : grille de pixels (formats : JPEG, PNG, BMP, GIF) → perte en agrandissement
Résolution
— Résolution spatiale : densité de pixels, exprimée en DPI (Dots Per Inch) = 1 inch = 2,54 cm
— Résolution tonale : nombre de niveaux de gris (quantification)
— 1 bit → 2 niveaux (noir/blanc) ; 8 bits → 256 niveaux de gris
— Nombre de niveaux de gris = Nmax − Nmin + 1
— Dynamique de l’image = log2 (Nmax − Nmin )
Espaces couleurs
— RGB (Rouge, Vert, Bleu) → synthèse additive → écrans
— CMY/CMYK → synthèse soustractive → impression
— HSV (Hue, Saturation, Value) :
— H = teinte (angle ∈ [0◦ , 360◦ ])
— S = saturation ∈ [0, 1] (S = 0 : niveau de gris ; S = 1 : couleur pure)
— V = valeur/intensité ∈ [0, 1] (0 = noir ; 1 = blanc)
— Niveaux de gris : 256 valeurs (0 = noir, 255 = blanc)
Échantillonnage et Quantification
— Échantillonnage = discrétisation spatiale → résolution spatiale
— Quantification = limitation du nombre de niveaux de gris → résolution tonale
— Image numérique = image échantillonnée ET quantifiée
CHAPITRE II — Traitement de Base de l’Image
Histogramme
— Donne la fréquence d’apparition de chaque niveau de gris
— ∀g ∈ {0, . . . , 255} : hg = card{k ∈ [0, n − 1] | Ik = g}
1
— Histogramme normalisé : hng (f ) = · card{k ∈ [0, n − 1] | Ik = g}
MN
— Donne une indication de la dynamique de l’image mais n’est pas une caractéristique unique
1
MRETCA1 — Résumé Complet Analyse Avancée d’Image — Deep Learning & Deep Fake
Recadrage de dynamique (Contraste)
— Recadrage : étendre la dynamique de [a, b] vers [0, 255] :
f −a
255 · b − a pour a ≤ f ≤ b
t(I) = 0 si f < a
255 si f > b
— Égalisation de l’histogramme : améliore le contraste par redistribution des intensités
f
X
C(f ) = hn (t) ⇒ f ′ = 255 · C(f )
t=0
Binarisation / Seuillage
— Affecter niveau uniforme aux pixels pertinents, éliminer les autres
— Seuil S : si I(x, y) ≥ S → 255 (blanc) ; sinon → 0 (noir)
— Permet une segmentation d’objets particuliers
Filtrage d’images
Hautes et basses fréquences
Fréquence Représente Zone dans l’image
Basses fréquences Variations lentes d’intensité Zones uniformes, fond
Hautes fréquences Variations rapides d’intensité Contours, détails, bruit
Fréquences moyennes Transitions progressives Textures
— Filtre passe-bas → supprime le bruit, floute l’image
— Filtre passe-haut → accentue les contours, amplifie le bruit
Formule de convolution
y2
x2 X
X
gx,y = (f ∗ k)x,y = f(x−i, y−j) · ki,j
i=x1 j=y1
Effets de bord — solutions :
1. Réflexion (Padding = same) : effet miroir autour des bords
2. Mise à zéro (Padding = valid) : ajout de zéros autour de l’image
Filtres linéaires passe-bas (Lissage)
1 1 1
1 1 − x2 +y2 2
Filtre moyenneur (carré) = 1 1 1 Filtre Gaussien : H(x, y) = e 2σ
9 2πσ 2
1 1 1
Filtres linéaires passe-haut (Rehaussement)
Iph = K · I − Ipb
— Si K = 1 → filtrage passe-haut
— Si K > 1 → rehaussement de contour
−1 −1 −1
1
Masque 3x3 passe-haut = −1 8 −1
9
−1 −1 −1
2
MRETCA1 — Résumé Complet Analyse Avancée d’Image — Deep Learning & Deep Fake
Filtrage différentiel (Détection de contours)
Le gradient discret :
∂f ∂f
∇f (x, y) = (x, y), (x, y)
∂x ∂y
fx (x, y) = f (x + 1, y) − f (x, y) fy (x, y) = f (x, y + 1) − f (x, y)
q fy
Amplitude : A(x, y) = fx2 + fy2 Direction : θ = arctan
fx
Filtre Masque horizontal Px Masque vertical Py
T
Gradient simple [−1 1] [−1 ; 1]
−1 0 1 −1 −1 −1
Prewitt −1 0 1 0 0 0
−1 0 1 1 1 1
−1 0 1 −1 −2 −1
Sobel −2 0 2 0 0 0
−1 0 1 1 2 1
0 1 0 1 1 1
Laplacien L = 1 −4 1 ou L = 1 −8 1
0 1 0 1 1 1
Différence Détection vs Rehaussement :
— Détection : produit une image binaire (0 ou 1) → Sobel/Prewitt + seuillage
— Rehaussement : produit une image en niveaux de gris améliorée → Iph = K · I − Ipb
Filtre Médian (non-linéaire)
— Remplace chaque pixel par la médiane des valeurs de ses voisins
— Algorithme : chercher intensités voisines → ordonner → prendre celle du milieu
— Avantages : préserve les contours + robuste au bruit sel/poivre
CHAPITRE II — Segmentation d’Images
Types de segmentation
— Segmentation sémantique : chaque pixel reçoit une classe (toutes les voitures = même couleur)
— Segmentation d’instance : chaque instance = étiquette unique (chaque voiture a une couleur différente)
— Détection d’objet = classification + localisation (bounding box)
Approches de segmentation
— Basée pixel (Seuillage) : Otsu’s Threshold, seuillage simple
— Basée région : Region Growing, LPE (Ligne de Partage des Eaux)
— Basée contours : Gradient, Canny, Laplacien
— Clustering : K-Means (non-supervisé), Fuzzy C-Means
Méthodes de classification
— Supervisée : KNN, SVM, ANN → apprentissage sur données étiquetées
— Non-supervisée : K-Means, Fuzzy C-Means → mesure de distance entre features
Morphologie mathématique
— Dilatation : agrandit les objets blancs, comble les trous. Si un pixel de ES touche un pixel blanc → le pixel
central devient blanc
— Érosion : réduit les objets blancs
— Détection morphologique des contours :
Contours = Dilatation(I) − Érosion(I)
3
MRETCA1 — Résumé Complet Analyse Avancée d’Image — Deep Learning & Deep Fake
CHAPITRE III — Apprentissage Profond (Deep Learning)
Définition
— Sous-domaine de l’apprentissage automatique
— Apprentissage par réseau profond (plusieurs couches successives)
— Chaque couche extrait des représentations de plus en plus significatives
— Applications : traduction automatique, reconnaissance d’écriture, conduite autonome, classification/segmentation/détection
d’images
Termes techniques essentiels
Terme Définition
Époque (Epoch) Un passage complet de toute la base d’entraînement (Forward +
Backward)
Sample Une instance des données (une image, un vecteur de features)
Batch Sous-ensemble des données (subdivision de la base)
Batch Size Nombre d’échantillons dans un batch
Itération Nombre de batchs pour compléter une époque = Ntotal /Batch Size
Learning Rate Contrôle la vitesse de changement des poids, LR ∈ [0, 1]
Loss Function Mesure l’écart entre sortie générée et sortie désirée
Exemple : 12000 samples, Batch size = 500 ⇒ 1 Epoch = 24 Itérations
Fonctionnement du Deep Learning
1. Les poids sont initialisés aléatoirement
2. Forward pass : le réseau applique des transformations, génère une sortie Y ′
3. Loss Function calcule l’erreur entre Y ′ et Y (cible réelle)
4. Backward (Backpropagation) : l’optimizer ajuste les poids → minimise la loss
5. Répéter jusqu’à convergence
Descente de Gradient
— But : minimiser la fonction coût J(a, b)
— Pour la régression linéaire :
N
1 X
J(a, b) = (axi + b − yi )2
2N i=1
— Mise à jour des paramètres :
∂J ∂J
a1 = a0 − α · b1 = b0 − α ·
∂a ∂b
— α = Learning Rate (distance de déplacement dans la direction de la pente)
— LR trop petit → temps de calcul élevé ; LR trop grand → risque de rater le minimum
Réseaux Convolutifs (CNN)
Architecture typique
− [CONV → ReLU → POOL]N →
INPUT → − Flatten → FC → Softmax → OUTPUT
Notion de convolution CNN
— Les couches de convolution apprennent des modèles locaux (petites fenêtres 2D)
— Modèles appris invariants par translation
— Feature Maps = tenseurs à rang 3 (height, width, depth/channels)
— Image couleur : depth = 3 (RGB)
— Image niveaux de gris : depth = 1
4
MRETCA1 — Résumé Complet Analyse Avancée d’Image — Deep Learning & Deep Fake
Padding
— Valid (sans padding) : taille sortie < taille entrée
— Same (avec padding p) : taille sortie = taille entrée
— Taille de sortie avec padding p, filtre f × f , stride = 1 :
Sortie = (n + 2p − f + 1) × (n + 2p − f + 1)
f −1
— Pour padding same : p =
2
Stride
— Pas de déplacement du filtre lors du balayage
— Formule générale (avec stride s, padding p, filtre f , Nc′ filtres) :
n + 2p − f n + 2p − f
Sortie = +1 × + 1 × Nc′
s s
Pooling
Type Description Effet
Max Pooling Prend le maximum dans chaque fenêtre Préserve les détails forts
Average Pooling Prend la moyenne Réduit le contraste
Stochastic Pooling Sélection aléatoire pondérée Régularisation
— Exemple : 224 × 224 × 64 après MaxPool(2 × 2, stride= 2) → 112 × 112 × 64
Déconvolution (Convolution transposée)
— Inverse du pooling → augmente la résolution (upsampling)
— Nécessite padding = 0
— Utilisé dans les architectures de segmentation (U-Net) et les GAN
Exemple de calcul de taille
Input : 224 × 224 × 3, CONV(3 × 3 × 5, padding=same, stride= 1), puis MaxPool(2 × 2, stride= 2)
— Après CONV (padding=same, stride= 1) :
224 + 2p − 3
+ 1 = 224 ⇒ Résultat : 224 × 224 × 5
1
— Après MaxPool(2 × 2, stride= 2) :
224 224
× = 112 × 112 × 5
2 2
CHAPITRE IV — Deep Fake & GAN
Introduction
— Technique introduite en 2014 par Ian Goodfellow
— Hypertrucage basé sur l’IA pour manipuler image, vidéo, son
— But malveillant : nuire à l’image d’une personne, lui prêter des propos qu’elle n’a pas tenus
Techniques de Deep Fake
Technique Description
Face Swap (Identity Swap) Remplacer le visage en conservant le corps
Face to Face Extraire uniquement la bouche d’une autre personne
Lip Sync Synchronisation labiale seulement
Face Reenactment Changer les expressions faciales
Entire Face Synthesis Générer un visage inexistant
5
MRETCA1 — Résumé Complet Analyse Avancée d’Image — Deep Learning & Deep Fake
Avantages et Risques
Avantages :
— Data augmentation (alternative aux techniques classiques : rotation, réflexion, bruitage)
— Colorisation d’images N&B, amélioration de résolution
— Médecine : clonage de voix pour malades (SLA)
— Cinéma : rajeunissement d’acteurs, story board
Risques :
— Manipulation politique, usurpation d’identité, violation de copyright
Architecture GAN (Generative Adversarial Networks)
Principe
Deux réseaux s’entraînent mutuellement en mode antagoniste (MinMax) :
— Générateur (G) : fabrique des données fausses (fake) à partir d’un vecteur aléatoire z
— Discriminateur (D) : distingue le vrai (real = 1) du faux (fake = 0)
Fonction coût complète du GAN
min max E[log D(x)] + E[log(1 − D(G(z)))]
G D
Entraînement du Discriminateur :
— Classifier les images (Fake/Real), calculer l’erreur, ajuster les poids
— Maximiser : E[log D(x)]
Entraînement du Générateur :
— Générer des images fake depuis z aléatoire, transférer vers D, tromper D
— Minimiser : E[log(1 − D(G(z)))]
Critères de performance
— Bon discriminateur : D(x) ≈ 1 (réel bien classé) et D(G(z)) ≈ 0 (faux bien détecté)
— Bon générateur : D(G(z)) ≈ 1 (le faux trompe le discriminateur)
Fonction de perte Log-loss
Si prédiction souhaitée = 1 : Error = − ln(prediction)
Si prédiction souhaitée = 0 : Error = − ln(1 − prediction)
DCGAN (Deep Convolutional GAN)
— Similaire au GAN mais avec couches convolutionnelles
— Générateur : utilise des déconvolutions (conv transposées) pour upsampling
— Discriminateur : utilise des convolutions classiques
Autres architectures GAN : Pix2pix, SRGAN, CGAN, CycleGAN, BicycleGAN, StarGAN, ArchiGAN
6
MRETCA1 — Résumé Complet Analyse Avancée d’Image — Deep Learning & Deep Fake
RÉCAPITULATIF DES FORMULES CLÉS
Formules à retenir absolument
Taille sortie convolution (général) :
n + 2p − f n + 2p − f
Sortie = +1 × + 1 × Nc′
s s
f −1
Padding same : p = ⇒ sortie = même taille que l’entrée
2
Amplitude du gradient : q
A(x, y) = fx2 + fy2
Direction du gradient :
fy
θ = arctan
fx
Binarisation : I(x, y) ≥ S ⇒ 255 ; sinon ⇒ 0
f
X
Égalisation histogramme : f ′ = 255 · C(f ) où C(f ) = hn (t)
t=0
Détection morphologique des contours :
Contours = Dilatation(I) − Érosion(I)
Mise à jour des poids (Descente de gradient) :
∂J ∂J
a1 = a0 − α · b1 = b0 − α ·
∂a ∂b
Fonction coût GAN :
min max E[log D(x)] + E[log(1 − D(G(z)))]
G D
Nombre d’itérations :
Ntotal samples
Itérations par Epoch =
Batch Size
Bon courage pour l’examen ! ✓