Cartographier la végétation avec Segment Anything Model (SAM) et Resnet34

Problème de labellisation?

Sortie du modèle SAMSi vous avez déjà passé des heures à annoter des images sur des outils tels que LabelImg ou LabelMe, vous comprendrez pourquoi SAM est notre nouvel allié. L’annotation pour la segmentation est une tâche extrêmement laborieuse et fastidieuse. Pour annoter une personne dans une image, par exemple, vous devez placer plusieurs points autour de son corps pour capturer les différentes courbes et contours, puis créer un masque pour la personne. Avec SAM, cependant, le modèle segmente automatiquement l’image, vous permettant de simplement confirmer le masque et d’ajouter l’étiquette « Personne ».

Dans cette article, nous allons utiliser SAM pour la labellisation et  former un réseau de neurones Resnet34 pour identifier le couvert végétal à  Dakar!

SAM comment ca marche?

Si vous pensiez que l’espace de l’IA évoluait déjà rapidement avec ChatGPT, GPT4 et Stable Diffusion, attachez-vous et préparez-vous pour la prochaine innovation révolutionnaire en matière d’IA. Le laboratoire FAIR de Meta vient de publier le Segment Anything Model (SAM) , un modèle de segmentation d’images à la pointe de la technologie qui vise à changer le domaine de la vision par ordinateur. 

SAM est composé de trois éléments principaux qui fonctionnent en tandem :

  1. Tout d’abord, un encodeur d’image qui convertit l’image en une représentation mathématique qui peut être interprétée par le modèle.
  2. Ensuite, un encodeur d’invite flexible qui traite les diverses entrées d’invite (points, cases, texte et masques) et les convertit en représentations intégrées que le modèle peut comprendre.
  3. Enfin, un décodeur de masque rapide qui utilise l’incorporation d’image, les incorporations d’invite et un jeton de sortie pour générer un masque décrivant les objets dans l’image en fonction des invites.

En examinant de plus près SAM, on remarque que le mot « fondamental » est souvent mentionné. Cela est dû au fait que SAM repose sur des modèles fondamentaux d’apprentissage automatique, en particulier des modèles de vision Transformer. Pour encoder l’image, SAM utilise un modèle de vision Transformer, en l’occurrence un transformer de vision pré-entraîné MAE (ViT), qui a été spécialement adapté pour traiter les entrées haute résolution. Cette architecture de modèle sophistiquée permet à SAM de segmenter les images avec une grande précision et de manière rapide, tout en étant très flexible pour s’adapter à une variété de tâches de vision par ordinateur.

Segmentation sémantique avec SAM?

La segmentation sémantique est une tâche de vision par ordinateur qui consiste à diviser une image en plusieurs régions avec des étiquettes sémantiques différentes. ResNet34 est un modèle de réseau de neurones profonds qui est utilisé pour la classification d’images. Cependant, il peut également être utilisé pour la segmentation sémantique en ajoutant une couche de tête de segmentation à la fin du réseau.

Voici les étapes pour labelliser et créer un modèle de segmentation sémantique avec ResNet34 :

  1. Téléchargez le jeu de données que vous souhaitez utiliser pour la segmentation sémantique. Par exemple des images Google. Comme on a pas non plus de données sur la  végétation, nous allons utiliser SAM pour générer automatiquement des labels. Une caractéristique fascinante de SAM est sa capacité à généraliser sans prise de vue. Cela signifie que le modèle peut effectuer des tâches de segmentation d’image sur lesquelles il n’a pas été spécifiquement formé, sans nécessiter d’entraînement ou d’ajustement supplémentaire.  

  1. Importez les bibliothèques nécessaires telles que PyTorch, NumPy et Matplotlib.

  2. Chargez les données d’entraînement et de validation et effectuez des transformations pour les préparer pour l’entraînement.

  3. Chargez le modèle ResNet34 pré-entraîné et supprimez la couche de classification à la fin du réseau.

  4. Ajoutez une nouvelle couche de tête de segmentation à la fin du réseau qui est adaptée à votre tâche spécifique.

  5. Entraînez le modèle en utilisant une fonction de perte appropriée et un optimiseur.

  6. Évaluez le modèle sur les données de validation et ajustez les hyperparamètres pour améliorer les performances du modèle.

  7. Utilisez le modèle entraîné pour segmenter de nouvelles images.

Prédiction sur de nouvelles données (Dakar)

La suite?

Avec sa capacité à identifier et à décrire des objets sur une image à partir de différentes entrées, la technologie de SAM est devenue un outil précieux pour diverses industries, telles que la santé, le transport et le divertissement. L’adoption croissante de SAM par les chercheurs et les professionnels devrait conduire à de nouvelles améliorations de sa performance et de son efficacité à l’avenir. Il est également possible que SAM soit intégré dans des systèmes de vision par ordinateur plus sophistiqués et combiné avec d’autres modèles d’apprentissage automatique pour résoudre des tâches encore plus complexes.

En tant qu’observateur attentif de l’évolution de l’IA, il est important de rester à l’affût des dernières avancées. Merci de m’avoir lu et de partager cette expérience d’apprentissage avec moi.

Ressources:

  1. Publication: https://arxiv.org/pdf/2304.02643.pdf
  2. Démo : https://segment-anything.com/demo
  3. Dépôt GitHub : https://github.com/facebookresearch/segment-anything
No items were found matching your selection.
No items were found matching your selection.

Laisser un commentaire