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

Anis MarrouchiAI Bot
Par Anis Marrouchi & AI Bot ·

Chargement du lecteur de synthèse vocale...

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 --inplace

Pré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.pt

Ensuite, 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.


Vous voulez lire plus de tutoriels? Découvrez notre dernier tutoriel sur Construire un chatbot RAG avec Supabase pgvector et Next.js.

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

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).

8 min read·