Explorer la segmentation améliorée d'images et de vidéos avec SAM 2 pour des résultats précis et contextuels

Bienvenue dans notre tutoriel sur l'exploitation des capacités du Segment Anything Model 2 (SAM 2) pour une segmentation améliorée d'images et de vidéos. L'approche unifiée de SAM 2 offre une précision, une vitesse et une conscience contextuelle améliorées, en faisant un outil formidable dans le domaine de la vision par ordinateur. Que vous soyez nouveau en vision par ordinateur ou que vous ayez une expérience considérable, ce tutoriel est conçu pour vous familiariser avec SAM 2 et vous guider à travers ses concepts essentiels et techniques avancées.
Présentation de SAM 2
SAM 2 gère les défis complexes de la segmentation vidéo qui découlent du mouvement des objets, de la déformation, de l'occlusion et des conditions d'éclairage variables. Il est également apte à traiter les images avec des gains d'efficacité significatifs par rapport à son prédécesseur, SAM.
Configuration de SAM 2
Le modèle SAM 2 est polyvalent, avec différentes tailles de modèles pour répondre à différents besoins computationnels. Pour commencer, clonez le repository et installez les dépendances :
git clone https://github.com/facebookresearch/segment-anything-2.git
cd segment-anything-2
pip install -e .
python setup.py build_ext --inplacePréparation des données pour SAM 2
Pour une segmentation vidéo efficace, prétraitez correctement vos données. D'abord, téléchargez les poids pour la taille de modèle appropriée :
wget -q https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.ptEnsuite, configurez l'environnement et chargez le modèle SAM 2 pour le traitement vidéo :
import torch
from sam2.build_sam import build_sam2_video_predictor
CHECKPOINT = "checkpoints/sam2_hiera_large.pt"
CONFIG = "sam2_hiera_l.yaml"
sam2_model = build_sam2_video_predictor(CONFIG, CHECKPOINT)Segmentation et suivi des objets
Avec SAM 2, vous pouvez effectuer la segmentation sur des images individuelles et affiner les prédictions en utilisant des invites positives et négatives. Commencez par initialiser l'état du modèle et annoter le premier objet :
import numpy as np
points = np.array([[703, 303]], dtype=np.float32)
labels = np.array([1])
frame_idx = 0
tracker_id = 1
_, object_ids, mask_logits = sam2_model.add_new_points(
inference_state=inference_state,
frame_idx=frame_idx,
obj_id=tracker_id,
points=points,
labels=labels
)Propagation des annotations
Pour étendre vos invites à toutes les images vidéo, vous utiliseriez la méthode propagate_in_video :
import cv2
import supervision as sv
with sv.VideoSink(output_path, video_info=video_info) as sink:
for frame_idx, object_ids, mask_logits in sam2_model.propagate_in_video(inference_state):
frame = cv2.imread(frames_paths[frame_idx])
masks = (mask_logits > 0.0).cpu().numpy()
# Annotate the frame with the segmentation masks...
sink.write_frame(frame)Techniques avancées et limitations
SAM 2 étend ses capacités au suivi de plusieurs objets et à travers plusieurs vidéos. Cependant, soyez conscient de ses limitations, comme la difficulté à segmenter des objets avec des détails fins ou dans des scènes encombrées.
Conclusion
Le Segment Anything Model 2 élève le potentiel des applications de vision par ordinateur en fournissant une segmentation plus rapide, plus précise et contextuellement consciente. Son modèle unifié rationalise les tâches de traitement d'images et de vidéos à travers une myriade d'utilisations dans diverses industries.
Pour plus d'informations sur SAM 2 et son implémentation, le blog officiel Roboflow offre une mine de connaissances et de mises à jour :
Lire le guide détaillé SAM 2 par Piotr Skalski
Piotr Skalski, un expert en vision par ordinateur, partage sa richesse de connaissances, assurant que les lecteurs de tous niveaux de compétence peuvent apprécier les avancées que SAM 2 apporte.
Vous cherchez à faire progresser vos modèles de vision par ordinateur ? Explorez des ensembles de données open-source et des modèles pré-entraînés pour diverses industries sur Roboflow Universe.
Merci d'avoir passé du temps avec ce tutoriel. Nous espérons qu'il vous permettra d'obtenir des résultats de segmentation précis et efficaces.
Discutez de votre projet avec nous
Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.
Trouvons les meilleures solutions pour vos besoins.
Articles connexes

Créez votre propre interpréteur de code avec génération dynamique d'outils
Apprenez à créer un interpréteur de code personnalisé utilisant la génération et l'exécution dynamiques d'outils avec o3-mini, permettant une résolution de problèmes flexible et adaptative.
Détection et identification des maladies des feuilles de plantes avec YOLOv4
Détection et identification des maladies des feuilles de plantes avec YOLOv4 : Atteignez une précision de 99,99% avec des techniques d'IA avancées

Demarrer avec ALLaM-7B-Instruct-preview
Apprenez a utiliser le modele ALLaM-7B-Instruct-preview avec Python, et comment interagir avec lui depuis JavaScript via une API hebergee (ex: sur Hugging Face Spaces).