Détection des contours | Extraire les bords d'une image

Contenu

Cibler

  • Comprendre ce qu'est la détection des contours et comment elle peut être utile dans la classification d'images.
  • Découvrez comment les noyaux sont utilisés pour identifier les contours d'une image donnée.

Noter: Si vous êtes plus intéressé par l'apprentissage de concepts dans un format audiovisuel, nous avons cet article complet expliqué dans la vidéo ci-dessous. Si ce n'est pas comme ça, tu peux continuer à lire.

introduction

Commençons par un exemple. Supposons que nous vous ayons assigné une tâche pour classer un ensemble d'images dans Cars, Animaux et humains. Voici beaucoup de photos. Pouvez-vous différencier les objets? Assez simple, vérité?

capture d

Oui, nous pouvons facilement identifier les voitures, les animaux et l'être humain dans les images ci-dessus. Considérons maintenant un autre ensemble d'images comme indiqué ci-dessous.

capture d

Pouvez-vous encore facilement classer les images? Je crois que oui, on voit bien qu'il y a deux voitures, deux animaux et une personne.

Mais, Quelle est la différence entre ces deux ensembles d'images? bon, dans le second cas on élimine la couleur, l'arrière-plan et d'autres détails fins des images. Nous n'avons que les bords et vous pouvez toujours identifier les objets dans l'image.

Ensuite, pour une image donnée, si nous pouvons extraire uniquement les bords et supprimer le bruit de l'image, on pourrait encore classer l'image.

Qu'est-ce que la détection des contours?

Comme nous savons, l'ordinateur voit les images sous forme de matrices. Comme montré ici.capture d

Dans ce cas, nous pouvons clairement identifier les bords en regardant les nombres ou les valeurs de pixels. Ensuite, si vous regardez attentivement la matrice des nombres, il y a une différence significative entre les valeurs de pixels autour du bord. La zone noire dans l'image de gauche est représentée par des valeurs faibles comme le montre la deuxième image. de la même manière, la zone blanche est représentée par les plus grands nombres.

La détection des contours est une technique de traitement d'image pour trouver les limites d'un objet dans l'image donnée.

Ensuite, pour resumer, les bords sont la partie de l'image qui représente la limite ou la forme de l'objet dans l'image. En outre, les valeurs de pixel autour du bord montrent une différence significative ou un changement soudain dans les valeurs de pixel.

Sur la base de ce fait, nous pouvons identifier quels pixels représentent le bord ou quel pixel est sur le bord.

Comment extraire les bords d'une image?

Une fois qu'on a l'idée des bords, comprenons maintenant comment extraire les bords d'une image. Disons, on prend une petite partie de l'image. Nous pouvons comparer les valeurs des pixels avec les pixels environnants pour savoir si un pixel particulier est sur le bord.

capture d

Par exemple, si je prends le pixel cible 16 et je compare les valeurs à sa gauche et à sa droite. Voici les valeurs 10 Oui 119 respectivement. Clairement, il y a un changement significatif dans les valeurs des pixels. Ensuite, on peut dire que le pixel est sur le bord.

Alors que, si vous regardez les pixels dans l'image suivante. Les valeurs de pixels à gauche et à droite du pixel sélectionné n'ont pas de différence significative. Pourtant, on peut dire que ce pixel n'est pas sur le bord.

capture d

Maintenant, la question est de savoir si nous devons nous asseoir et comparer manuellement ces valeurs pour trouver les bords. Bon, évidemment pas. Pour les devoirs, nous pouvons utiliser un tableau appelé el noyau et effectuer la multiplication par éléments.

capture d

Disons que, sur la partie sélectionnée de l'image, Je multiplie tous les nombres à gauche avec -1, tous les nombres à droite avec 1. Aussi tous les nombres de la rangée du milieu avec 0. En termes simples, J'essaye de trouver la différence entre les pixels gauche et droit. Lorsque cette différence est supérieure à un seuil, on peut conclure que c'est un avantage.

Dans le cas ci-dessus, le numéro est 31, ce qui n'est pas un grand nombre. Donc, ce pixel n'est pas sur le bord.

Prenons un autre cas, ici le pixel en surbrillance est ma cible.

capture d

Dans cet exemple, le résultat est 354, ce qui est considérablement élevé. Donc, on peut dire que le pixel donné est sur le bord.

Filtre / noyau

Cette matrice, qu'est-ce qu'on utilise pour calculer la différence, connu sous le nom de filtre ou noyau. Ce filtre glisse à travers l'image pour générer une nouvelle matrice appelée carte des caractéristiques. Les valeurs de la carte des caractéristiques indiquent si le pixel particulier est sur le bord ou non.

capture d

Le noyau que nous avons utilisé dans l'exemple précédent s'appelle le noyau Prewitt dans la direction X. Puisqu'il compare les valeurs sur l'axe horizontal. de la même manière, avoir un noyau de Prewitt dans la direction Y. En outre, nous avons le noyau de Sobel dans les directions X et Y.

capture d

Dans le cas des noyaux Sobel, les valeurs de pixel juste à côté du pixel cible reçoivent une plus grande importance.

Remarques finales

En résumé, les pixels sur le bord ont une différence de valeurs significative. On peut comparer les valeurs des pixels voisins pour trouver le bord. En outre, un tableau ou un noyau est utilisé pour comparer les valeurs. Plus la différence entre les pixels de gauche et de droite est grande, la cible est plus proche du bord. de la même manière, Réduire la différence: le pixel n'est pas sur le bord.

Si vous cherchez à commencer votre parcours en science des données et que vous voulez tous les sujets sous un même toit, votre recherche s'arrête ici. Jetez un œil à l'IA et au ML BlackBelt certifiés de DataPeaker Plus Programme

Faites-nous savoir si vous avez des questions dans les commentaires ci-dessous concernant la détection des contours..

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.

Haut-parleur de données