─░├žeri─če ge├ž

Ultralytics YOLOv8 kullanarak ├ľrnek Segmentasyonu ve Takibi ­čÜÇ

├ľrnek Segmentasyonu Nedir?

Ultralytics YOLOv8 ├ľrnek segmentasyonu, bir g├Âr├╝nt├╝deki tek tek nesnelerin tan─▒mlanmas─▒n─▒ ve ana hatlar─▒n─▒n belirlenmesini i├žerir ve uzamsal da─č─▒l─▒m─▒n ayr─▒nt─▒l─▒ bir ┼čekilde anla┼č─▒lmas─▒n─▒ sa─člar. Anlamsal segmentasyondan farkl─▒ olarak, her nesneyi benzersiz bir ┼čekilde etiketler ve kesin olarak tan─▒mlar, bu da nesne alg─▒lama ve t─▒bbi g├Âr├╝nt├╝leme gibi g├Ârevler i├žin ├žok ├Ânemlidir.

Ultralytics paketinde iki t├╝r ├Ârnek segmentasyon takibi mevcuttur:

  • S─▒n─▒f Nesneleri ile ├ľrnek Segmentasyonu: Net bir g├Ârsel ayr─▒m i├žin her s─▒n─▒f nesnesine benzersiz bir renk atan─▒r.

  • Nesne ─░zleri ile ├ľrnek Segmentasyonu: Her iz farkl─▒ bir renkle temsil edilir, bu da kolay tan─▒mlama ve izlemeyi kolayla┼čt─▒r─▒r.



─░zle: Nesne Takibi ile ├ľrnek Segmentasyonu Ultralytics YOLOv8

├ľrnekler

├ľrnek Segmentasyonu ├ľrnek Segmentasyonu + Nesne Takibi
Ultralytics ├ľrnek Segmentasyonu Ultralytics Nesne Takibi ile ├ľrnek Segmentasyonu
Ultralytics ├ľrnek Segmentasyonu ­čśŹ Ultralytics Nesne Takibi ile ├ľrnek Segmentasyonu ­čöą

├ľrnek Segmentasyonu ve ─░zleme

import cv2

from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors

model = YOLO("yolov8n-seg.pt")  # segmentation model
names = model.model.names
cap = cv2.VideoCapture("path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))

while True:
    ret, im0 = cap.read()
    if not ret:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = model.predict(im0)
    annotator = Annotator(im0, line_width=2)

    if results[0].masks is not None:
        clss = results[0].boxes.cls.cpu().tolist()
        masks = results[0].masks.xy
        for mask, cls in zip(masks, clss):
            annotator.seg_bbox(mask=mask, mask_color=colors(int(cls), True), det_label=names[int(cls)])

    out.write(im0)
    cv2.imshow("instance-segmentation", im0)

    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

out.release()
cap.release()
cv2.destroyAllWindows()
from collections import defaultdict

import cv2

from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors

track_history = defaultdict(lambda: [])

model = YOLO("yolov8n-seg.pt")  # segmentation model
cap = cv2.VideoCapture("path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter("instance-segmentation-object-tracking.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))

while True:
    ret, im0 = cap.read()
    if not ret:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    annotator = Annotator(im0, line_width=2)

    results = model.track(im0, persist=True)

    if results[0].boxes.id is not None and results[0].masks is not None:
        masks = results[0].masks.xy
        track_ids = results[0].boxes.id.int().cpu().tolist()

        for mask, track_id in zip(masks, track_ids):
            annotator.seg_bbox(mask=mask, mask_color=colors(track_id, True), track_label=str(track_id))

    out.write(im0)
    cv2.imshow("instance-segmentation-object-tracking", im0)

    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

out.release()
cap.release()
cv2.destroyAllWindows()

seg_bbox Arg├╝manlar

─░sim Tip Varsay─▒lan A├ž─▒klama
mask array None Segmentasyon maskesi koordinatlar─▒
mask_color tuple (255, 0, 255) Her b├Âl├╝mlenmi┼č kutu i├žin maske rengi
det_label str None B├Âl├╝mlere ayr─▒lm─▒┼č nesne i├žin etiket
track_label str None Segmente edilen ve izlenen nesne i├žin etiket

Not

Sorular─▒n─▒z i├žin Ultralytics Sorun B├Âl├╝m├╝ne veya a┼ča─č─▒da belirtilen tart─▒┼čma b├Âl├╝m├╝ne sorular─▒n─▒z─▒ g├Ândermekten ├žekinmeyin.



Created 2023-12-18, Updated 2024-06-10
Authors: glenn-jocher (9), IvorZhu331 (1), RizwanMunawar (2)

Yorumlar