Comprendre la convolution
La convolution est un opérateur mathématique fondamental qui décrit la relation entre un signal d'entrée et la réponse d'un système. Conceptuellement, on peut l'illustrer par un ressort : un choc unique provoque une vibration, mais une force continue produit une oscillation résultant de la superposition de toutes les réponses passées.
- Le "Produit" (Multiplication et Somme) : Il s'agit de l'accumulation pondérée des valeurs.
- Le "Renversement" (Inversion) : Mathématiquement, la fonction de filtrage est inversée (miroir) avant le glissement.
Exemple de calcul pour une zone 2x2 avec un noyau spécifique :
# Matrice d'image (I) et Noyau (K)
# I = [[2, 5], [1, 3]]
# K = [[1, 0], [0, 2]]
Résultat = (2 * 1) + (5 * 0) + (1 * 0) + (3 * 2) = 8
Techniques de Pooling (Sous-échantillonnage)
Le pooling permet de réduire la dimension spatiale des données tout en conservant les caractéristiques essentielles, ce qui diminue la charge computationnelle.
- Max Pooling : Sélectionne la valeur maximale d'une région. C'est idéal pour extraire les textures ou les bords saillants.
- Average Pooling : Calcule la moyenne des pixels de la fenêtre. Cela permet de lisser l'image et d'atténuer les variations brusques.
Transformations de contraste et opérations ponctuelles
Les opérations sur les pixels individuels permettent de manipuler l'histogramme d'une image sans tenir compte du voisinage.
- Transformation linéaire par morceaux : Utilisée pour étendre dynamiquement une plage de gris spécifique tout en compressant les zones moins informatives.
- Transformation non-linéaire : Applique des fonctions (logarithmiques ou exponentielles) pour corriger la luminosité, souvent nécessaire pour révéler des détails dans les zones très sombres ou très claires.
Géométrie de l'image : Matrices de transformation
Les manipulations spatiales s'effectuent via des multiplications matricielles en coordonnées homogènes :
# Translation (déplacement dx, dy)
[ 1 0 dx ]
[ 0 1 dy ]
[ 0 0 1 ]
# Rotation (angle θ)
[ cosθ -sinθ 0 ]
[ sinθ cosθ 0 ]
[ 0 0 1 ]
Amélioration locale : AHE et CLAHE
L'algorithme AHE (Adaptive Histogram Equalization) calcule plusieurs histogrammes correspondant à des sections distinctes de l'image pour accentuer le contraste local. Cependant, il a tendance à amplifier le bruit dans les zones homogènes.
Pour résoudre ce problème, on utilise le CLAHE (Contrast Limited AHE). Cet algorithme limite l'amplification du contraste en "écrêtant" l'histogramme avant de redistribuer les pixels, produisant un résultat beaucoup plus naturel.
Morphologie mathématique
Ces opérations sont basées sur la forme des objets pour nettoyer les masques binaires :
- Fermeture (Closing) : Une dilatation suivie d'une érosion. Elle permet de combler les trous à l'intérieur des formes.
- Ouverture (Opening) : Une érosion suivie d'une dilatation. Elle est efficace pour supprimer les petits bruits isolés à l'extérieur des objets.
Gestion des bordures et Padding
Lorsque le noyau de convolution dépasse les limites de l'image, plusieurs stratégies de remplissage (padding) sont possibles :
- Réplication de bordure : On répète les pixels du bord vers l'extérieur.
- Miroir (Reflect) : On reflète les valeurs internes pour créer une continuité artificielle.
Filtrage du bruit : Médian vs Moyenne
Le filtre médian est particulièrement robuste face au bruit de type "sel et poivre" (impulsions aléatoires extrêmes). Contrairement au filtre moyenneur qui dilue l'erreur sur tout le voisinage (créant un flou), le filtre médian ignore les valeurs aberrantes en sélectionnant la valeur centrale de la distribution triée.
Détection de contours et séparabilité
Les opérateurs comme Sobel, Prewitt ou Canny identifient les variations brusques d'intensité (gradients). En pratique, on décompose souvent un noyau 2D en deux vecteurs 1D (un horizontal, un vertical). Cette séparabilité réduit la complexité algorithmique de O(N²) à O(2N), optimisant ainsi le temps de traitement.