Skip to content

Segmentation et suivi des instances à l'aide de Ultralytics YOLO11 🚀

Qu'est-ce que la segmentation des instances ?

La segmentation d'instances est une tâche de vision par ordinateur qui implique l'identification et la délimitation d'objets individuels dans une image au niveau du pixel. Contrairement à la segmentation sémantique qui ne fait que classer les pixels par catégorie, la segmentation d'instance étiquette et délimite précisément chaque instance d'objet, ce qui la rend cruciale pour les applications nécessitant une compréhension spatiale détaillée, comme l'imagerie médicale, la conduite autonome et l'automatisation industrielle.

Ultralytics YOLO11 offre de puissantes capacités de segmentation des instances qui permettent une détection précise des limites des objets tout en conservant la rapidité et l'efficacité qui font la réputation des modèles YOLO .

Deux types de suivi de la segmentation des instances sont disponibles sur le site Ultralytics :

  • Segmentation des instances à l'aide d'objets de classe : Une couleur unique est attribuée à chaque objet de classe pour une séparation visuelle claire.

  • Segmentation des instances à l'aide de pistes d'objets : Chaque piste est représentée par une couleur distincte, ce qui facilite l'identification et le suivi dans les images vidéo.



Regarder : Segmentation d'instances avec suivi d'objets à l'aide de Ultralytics YOLO11

Échantillons

Segmentation des instances Segmentation des instances + suivi des objets
Ultralytics Segmentation des instances Ultralytics Segmentation d'instances avec suivi d'objets
Ultralytics Segmentation des instances 😍 Ultralytics Segmentation d'instances avec suivi d'objets 🔥

Segmentation des instances à l'aide d'Ultralytics YOLO

# Instance segmentation using Ultralytics YOLO11
yolo solutions isegment show=True

# Pass a source video
yolo solutions isegment source="path/to/video.mp4"

# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("isegment_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize instance segmentation object
isegment = solutions.InstanceSegmentation(
    show=True,  # display the output
    model="yolo11n-seg.pt",  # model="yolo11n-seg.pt" for object segmentation using YOLO11.
    # classes=[0, 2],  # segment specific classes i.e, person and car with pretrained model.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = isegment(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

InstanceSegmentation Arguments

Voici un tableau avec les InstanceSegmentation arguments :

Argument Type Défaut Description
model str None Chemin d'accès au fichier modèleYOLO d'Ultralytics .
region list [(20, 400), (1260, 400)] Liste des points définissant la région de comptage.

Vous pouvez également profiter de track à l'intérieur du InstanceSegmentation solution :

Argument Type Défaut Description
tracker str 'botsort.yaml' Spécifie l'algorithme de suivi à utiliser, par exemple, bytetrack.yaml ou botsort.yaml.
conf float 0.3 Définit le seuil de confiance pour les détections ; des valeurs plus faibles permettent de suivre plus d'objets mais peuvent inclure des faux positifs.
iou float 0.5 Définit le seuil d'intersection sur l'union (IoU) pour le filtrage des détections qui se chevauchent.
classes list None Filtre les résultats par indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées.
verbose bool True Contrôle l'affichage des résultats du suivi, fournissant une sortie visuelle des objets suivis.
device str None Spécifie le dispositif d'inférence (par ex, cpu, cuda:0 ou 0). Permet aux utilisateurs de choisir entre CPU, un GPU spécifique ou d'autres dispositifs de calcul pour l'exécution du modèle.

En outre, les arguments de visualisation suivants sont disponibles :

Argument Type Défaut Description
show bool False Si Trueaffiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour d'information visuel immédiat pendant le développement ou les tests.
line_width None or int None Spécifie la largeur de ligne des boîtes de délimitation. Si les NoneLa largeur de la ligne est automatiquement ajustée en fonction de la taille de l'image. Permet une personnalisation visuelle pour plus de clarté.

Applications de la segmentation des instances

La segmentation des instances avec YOLO11 a de nombreuses applications réelles dans divers secteurs :

Gestion des déchets et recyclage

YOLO11 peut être utilisé dans les installations de gestion des déchets pour identifier et trier différents types de matériaux. Le modèle peut segmenter les déchets plastiques, le carton, le métal et d'autres matières recyclables avec une grande précision, ce qui permet aux systèmes de tri automatisés de traiter les déchets plus efficacement. Cela est d'autant plus important que seulement 10 % des 7 milliards de tonnes de déchets plastiques produits dans le monde sont recyclés.

Véhicules autonomes

Dans les voitures autonomes, la segmentation des instances permet d'identifier et de suivre les piétons, les véhicules, les panneaux de signalisation et d'autres éléments de la route au niveau du pixel. Cette compréhension précise de l'environnement est cruciale pour les décisions de navigation et de sécurité. Les performances en temps réel de YOLO11 en font la solution idéale pour ces applications sensibles au facteur temps.

Imagerie médicale

La segmentation des instances permet d'identifier et de délimiter les tumeurs, les organes ou les structures cellulaires dans les scanners médicaux. La capacité de YOLO11 à délimiter précisément les frontières des objets le rend précieux pour les diagnostics médicaux et la planification des traitements.

Suivi de chantier

Sur les chantiers de construction, la segmentation des instances permet de suivre les machines lourdes, les travailleurs et les matériaux. Cela permet de garantir la sécurité en surveillant la position des équipements et en détectant lorsque les travailleurs pénètrent dans des zones dangereuses, tout en optimisant le flux de travail et l'affectation des ressources.

Note

Pour toute question, n'hésitez pas à poster vos questions dans la section "Ultralytics Issue Section" ou dans la section de discussion mentionnée ci-dessous.

FAQ

Comment effectuer une segmentation des instances à l'aide de Ultralytics YOLO11 ?

Pour effectuer une segmentation d'instance à l'aide de Ultralytics YOLO11 , initialisez le modèle YOLO avec une version de segmentation de YOLO11 et traitez les images vidéo à travers lui. Voici un exemple de code simplifié :

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init InstanceSegmentation
isegment = solutions.InstanceSegmentation(
    show=True,  # display the output
    model="yolo11n-seg.pt",  # model="yolo11n-seg.pt" for object segmentation using YOLO11.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break
    results = isegment(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Pour en savoir plus sur la segmentation des instances, consultez le guideUltralytics YOLO11 .

Quelle est la différence entre la segmentation des instances et le suivi des objets dans Ultralytics YOLO11 ?

La segmentation des instances permet d'identifier et de délimiter des objets individuels dans une image, en donnant à chaque objet une étiquette et un masque uniques. Le suivi d'objets étend ce principe en attribuant des identifiants cohérents aux objets sur l'ensemble des images vidéo, ce qui facilite le suivi continu des mêmes objets au fil du temps. En les combinant, comme dans la mise en œuvre de YOLO11, vous obtenez de puissantes capacités d'analyse du mouvement et du comportement des objets dans les vidéos, tout en conservant des informations précises sur les limites.

Pourquoi devrais-je utiliser Ultralytics YOLO11 pour la segmentation et le suivi par exemple, plutôt que d'autres modèles comme Mask R-CNN ou Faster R-CNN ?

Ultralytics YOLO11 offre des performances en temps réel, une précision supérieure et une facilité d'utilisation par rapport à d'autres modèles comme Mask R-CNN ou Faster R-CNN. YOLO11 traite les images en un seul passage (détection en une seule étape), ce qui le rend nettement plus rapide tout en conservant une grande précision. Il offre également une intégration transparente avec Ultralytics HUB, permettant aux utilisateurs de gérer efficacement les modèles, les ensembles de données et les pipelines d'entraînement. Pour les applications nécessitant à la fois vitesse et précision, YOLO11 offre un équilibre optimal.

Existe-t-il des ensembles de données fournis par Ultralytics qui conviennent à l'entraînement des modèles YOLO11 , par exemple pour la segmentation et le suivi ?

Oui, Ultralytics propose plusieurs ensembles de données adaptés à l'entraînement des modèles YOLO11 pour la segmentation des instances, notamment COCO-Seg, COCO8-Seg (un sous-ensemble plus petit pour des tests rapides), Package-Seg et Crack-Seg. Ces ensembles de données sont accompagnés d'annotations au niveau du pixel nécessaires pour les tâches de segmentation d'instances. Pour des applications plus spécialisées, vous pouvez également créer des ensembles de données personnalisés en suivant le format Ultralytics . Des informations complètes sur les jeux de données et des instructions d'utilisation sont disponibles dans la documentation sur les jeux de donnéesUltralytics .

📅C réé il y a 1 an ✏️ Mis à jour il y a 8 jours

Commentaires