рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рднрд╛рдЬрди рдФрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ Ultralytics YOLOv8 ЁЯЪА

рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдХреНрдпрд╛ рд╣реИ?

Ultralytics YOLOv8 рдЙрджрд╛рд╣рд░рдг рд╡рд┐рднрд╛рдЬрди рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд╕реНрддреБрдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдФрд░ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рд╕реНрдерд╛рдирд┐рдХ рд╡рд┐рддрд░рдг рдХреА рд╡рд┐рд╕реНрддреГрдд рд╕рдордЭ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓реЗрдмрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдФрд░ рдореЗрдбрд┐рдХрд▓ рдЗрдореЗрдЬрд┐рдВрдЧ рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдореЗрдВ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдЯреНрд░реИрдХрд┐рдВрдЧ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ Ultralytics рдкреИрдХреЗрдЬ:

  • рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди: рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рд╡рд╕реНрддреБ рдХреЛ рд╕реНрдкрд╖реНрдЯ рджреГрд╢реНрдп рдкреГрдердХреНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд░рдВрдЧ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред

  • рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди: рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░реИрдХ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд░рдВрдЧ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрд╕рд╛рди рдкрд╣рдЪрд╛рди рдФрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдорд┐рд▓рддреА рд╣реИред



рд╕рддрд░реНрдХрддрд╛: рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди Ultralytics YOLOv8

рдирдореВрдиреЗ

рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди + рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ
Ultralytics рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди Ultralytics рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди
Ultralytics рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди ЁЯШН Ultralytics рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ ЁЯФе рдХреЗ рд╕рд╛рде рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди

рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдФрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ

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()
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors

from collections import defaultdict

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 рддрд░реНрдХ

рдирд╛рдо рдкреНрд░рдХрд╛рд░ рдЪреВрдХ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо
mask array None рд╡рд┐рднрд╛рдЬрди рдореБрдЦреМрдЯрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ
mask_color tuple (255, 0, 255) рд╣рд░ рдЦрдВрдбрд┐рдд рдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдХ рд░рдВрдЧ
det_label str None рдЦрдВрдбрд┐рдд рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рд▓реЗрдмрд▓
track_label str None рдЦрдВрдбрд┐рдд рдФрд░ рдЯреНрд░реИрдХ рдХрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд▓реЗрдмрд▓

рдиреЛрдЯ

рдХрд┐рд╕реА рднреА рдкреВрдЫрддрд╛рдЫ рдХреЗ рд▓рд┐рдП, рдореЗрдВ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ Ultralytics рдореБрджреНрджрд╛ рдЕрдиреБрднрд╛рдЧ рдпрд╛ рдиреАрдЪреЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЪрд░реНрдЪрд╛ рдЕрдиреБрднрд╛рдЧред



2023-12-18 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-03-03
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (6), рд░рд┐рдЬрд╝рд╡рд╛рдирдореБрдирд╡реНрд╡рд░ (2)

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ