4.3 Vision par Ordinateur Classique

Pourquoi C'est Important

Avant d'étudier les algorithmes modernes de vision par ordinateur, il est utile de comprendre d'abord ce que faisaient les méthodes traditionnelles de vision par ordinateur. Cela nous donne de solides fondations et facilite la compréhension ultérieure des algorithmes plus avancés.

image-20260331140710679

La vision par ordinateur traditionnelle se concentrait sur l'enseignement aux ordinateurs de la manière de trouver des informations utiles dans les images, telles que les contours, les formes, les coins et les mouvements. Ces méthodes reposaient sur des règles conçues par des humains, plutôt que sur un apprentissage automatique à partir de grandes quantités de données comme le font les modèles modernes de deep learning. Bien qu'elles aient été plus simples, elles ont aidé à résoudre de nombreuses tâches de vision de base et ont posé les fondations des techniques plus puissantes de vision par ordinateur d'aujourd'hui.

Méthodes classiques

Filtrage

image-20260331141309862

Le filtrage modifie la structure locale de l'image. Certains filtres réduisent le bruit, tandis que d'autres rehaussent les détails.

Le filtrage fonctionne en laissant chaque pixel être mis à jour à l'aide de ses pixels voisins. Autrement dit, l'algorithme fait glisser une petite fenêtre, appelée noyau (ou kernel), sur l'image et calcule une nouvelle valeur pour chaque position.

image-20260331152645839

Exemples :

  • Flou par moyenne : remplace un pixel par la moyenne de ses voisins, ce qui rend l'image plus lisse
  • Flou gaussien : donne plus de poids aux pixels proches, ce qui rend généralement le flou plus naturel
  • Flou médian : remplace un pixel par la valeur médiane de son voisinage
  • Accentuation : augmente les différences locales pour que les contours et les détails fins se démarquent plus clairement

Ces filtres sont utiles parce que les images réelles de caméra contiennent souvent du bruit, de petites fluctuations de luminosité ou des détails instables qui doivent être lissés ou rehaussés avant les étapes ultérieures de vision.

Essayez :

bash
cd 4.3-Classical-Computer-Vision/code
python filtering.py

🚀 Vous pouvez essayer de glisser le curseur pour voir différents modes de filtrage et modifier différents paramètres du noyau pour observer les changements dans l'image.

image-20260331153010183

Seuillage

Le seuillage est un moyen simple de transformer une image en niveaux de gris en un résultat noir et blanc. L'idée de base est : choisir une valeur de seuil, puis comparer chaque pixel à celle-ci. Si un pixel est plus clair que le seuil, il devient blanc ; sinon, il devient noir. Cela transforme les valeurs continues de pixels en une décision oui/non beaucoup plus simple, ce qui rend les objets plus faciles à séparer du fond.

image-20260331142045879

C'est utile dans :

  • le traitement de documents
  • l'inspection industrielle simple
  • l'extraction de premier plan dans des scènes contrôlées

Essayez :

bash
cd 4.3-Classical-Computer-Vision/code
python thresholding.py

🚀 Essayez de glisser le curseur pour modifier différents seuils et observer les changements dans l'image.

image-20260331162811153

Détection de Contours

Les contours correspondent souvent à des frontières où l'intensité change brusquement.

image-20260331142022364

La détection de contours est un moyen de trouver les frontières importantes dans une image. L'idée de base est simple : l'algorithme regarde de combien la luminosité du pixel change d'un endroit à l'autre. Si le changement est très petit, c'est probablement la même région. Si le changement est soudain et grand, cet endroit est probablement un contour. En pratique, de nombreuses méthodes lissent d'abord un peu l'image pour réduire le bruit, calculent ensuite les changements d'intensité dans les directions horizontale et verticale, et conservent enfin les changements les plus forts comme contours. Cela aide un ordinateur à mettre en évidence plus clairement les contours d'objets, la structure des formes et la disposition de la scène.

La détection de contours aide à révéler :

  • la structure de la forme
  • les frontières d'objets
  • la géométrie de la scène

Essayez :

bash
cd 4.3-Classical-Computer-Vision/code
python edge_detection.py

🚀 Glissez le curseur pour voir différents modes et modifier différents paramètres afin d'observer les changements dans l'image.

image-20260331163055712

Contours d'objets

Les contours décrivent les silhouettes d'objets dans une image binaire.

image-20260331142747289

Les contours sont un moyen pour un ordinateur de tracer la silhouette des objets dans une image binaire. Le processus habituel est : convertir d'abord l'image en noir et blanc, puis traiter une partie comme l'objet et l'autre comme le fond. Ensuite, l'algorithme suit la frontière où ils se rencontrent et enregistre la silhouette comme un ensemble de points connectés. Ainsi, un contour est essentiellement le bord de la forme d'un objet. Une fois la silhouette trouvée, l'ordinateur peut l'utiliser pour mesurer la taille, compter les objets ou analyser la forme plus facilement.

Ils sont utiles pour :

  • l'analyse de formes
  • le comptage d'objets
  • la mesure de l'aire et du périmètre

Essayez :

bash
cd 4.3-Classical-Computer-Vision/code
python contours.py

🚀 Essayez de glisser le curseur pour modifier différents seuils et observer les changements dans l'image.

image-20260331163359282

Opérations Morphologiques

Les opérations morphologiques sont des méthodes simples de traitement d'image qui modifient la forme des régions blanches dans une image binaire. Elles fonctionnent en déplaçant un petit motif, appelé noyau ou élément structurant, sur l'image et en vérifiant comment il s'adapte au premier plan. L'érosion rétrécit les objets en supprimant les pixels de bordure, ce qui fait disparaître le petit bruit. La dilatation agrandit les objets en ajoutant des pixels autour des frontières, ce qui peut combler de petits écarts. L'ouverture est une érosion suivie d'une dilatation, donc elle élimine les petites taches bruyantes tout en conservant la forme principale. La fermeture est une dilatation suivie d'une érosion, donc elle remplit les petits trous et reconnecte les parties rompues. En bref, la morphologie est utile pour nettoyer les masques bruyants et faciliter l'analyse des formes d'objets.

image-20260331142417743

Opérations courantes :

  • érosion
  • dilatation
  • ouverture
  • fermeture

Elles sont particulièrement utiles lorsque les masques sont bruyants ou fragmentés.

Essayez :

bash
cd 4.3-Classical-Computer-Vision/code
python morphological_operate.py

🚀 Essayez de glisser le curseur pour modifier différents seuils et observer les changements dans l'image.

image-20260331163707790

Détection et Mise en Correspondance de Caractéristiques

Une caractéristique est un point ou un motif visuellement distinctif. La mise en correspondance de caractéristiques est utilisée pour comparer des images, aligner des vues ou estimer des relations géométriques.

image-20260331142714201

La détection de caractéristiques signifie trouver des points ou motifs spéciaux dans une image qui sont faciles à reconnaître à nouveau, tels que des coins, des taches ou des zones texturées. La mise en correspondance de caractéristiques signifie comparer ces points entre deux images pour trouver lesquels correspondent au même endroit du monde réel. Un flux de travail courant est : détecter d'abord les points clés, puis calculer un descripteur pour chacun, qui est un résumé numérique compact de l'apparence locale, et enfin comparer les descripteurs pour trouver les meilleures correspondances. OpenCV décrit des matchers tels que Brute-Force, qui compare un descripteur à tous les autres, et FLANN, qui accélère la recherche dans de grands ensembles. C'est utile parce qu'une fois de bonnes correspondances trouvées, l'ordinateur peut aligner des images, assembler des panoramas, estimer des mouvements ou localiser un objet depuis une autre vue.

Cette idée est importante pour :

  • l'assemblage de panoramas
  • l'alignement d'images
  • la localisation
  • l'odométrie visuelle

Essayez :

bash
cd 4.3-Classical-Computer-Vision/code
python feature_detection_matching.py

🚀 Essayez de glisser le curseur pour modifier différents modes de mise en correspondance et observer les changements dans l'image.

image-20260331173910126

Malentendus Courants

  • « La vision classique est obsolète. »
    • Elle est plus ancienne, mais pas obsolète. Elle reste utile pour le prétraitement, la mesure et la logique basée sur des règles.
  • « Le deep learning a remplacé tout le traitement d'images traditionnel. »
    • En pratique, de nombreux systèmes modernes incluent encore des opérations classiques.
  • « Si le seuillage fonctionne sur une image, il fonctionnera partout. »
    • Les méthodes classiques peuvent être sensibles à l'éclairage et au contexte.

Exercices / Réflexion

  1. Appliquez le seuillage à une image avec un premier plan simple et comptez les objets connectés.
  2. Comparez les cartes de contours avant et après un flou gaussien. Qu'est-ce qui change ?
  3. Essayez l'érosion et la dilatation sur le même masque binaire. Qu'arrive-t-il aux petites régions ?
  4. Réfléchissez à une situation où une simple méthode classique peut être meilleure qu'un modèle profond.

Résumé

La vision par ordinateur classique offre aux apprenants un moyen transparent de comprendre les transformations d'images. Elle reste également utile dans les systèmes réels pour le prétraitement, le filtrage, le raisonnement sur les formes et la logique visuelle légère.

Étape Suivante Suggérée

Continuez vers 4.4 Réseaux de Neurones et CNN.

Références