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

рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рднрд╛рдЬрди рдФрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ 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):
            color = colors(int(cls), True)
            txt_color = annotator.get_txt_color(color)
            annotator.seg_bbox(mask=mask, mask_color=color, label=names[int(cls)], txt_color=txt_color)

    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):
            color = colors(int(track_id), True)
            txt_color = annotator.get_txt_color(color)
            annotator.seg_bbox(mask=mask, mask_color=color, label=str(track_id), txt_color=txt_color)

    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 RGB (255, 0, 255) рд╣рд░ рдЦрдВрдбрд┐рдд рдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдХ рд░рдВрдЧ
label str None рдЦрдВрдбрд┐рдд рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рд▓реЗрдмрд▓
txt_color RGB None рдЦрдВрдбрд┐рдд рдФрд░ рдЯреНрд░реИрдХ рдХрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд▓реЗрдмрд▓ рд░рдВрдЧ

рдиреЛрдЯ

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

рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди

рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рднрд╛рдЬрди рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реВрдВ Ultralytics YOLOv8?

рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рднрд╛рдЬрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Ultralytics YOLOv8, рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ YOLO рдХреЗ рд╡рд┐рднрд╛рдЬрди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдореЙрдбрд▓ YOLOv8 рдФрд░ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдлреНрд░реЗрдо рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЙрджрд╛рд╣рд░рдг

import cv2

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

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.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))

while True:
    ret, im0 = cap.read()
    if not ret:
        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=model.model.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()

рдореЗрдВ рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рднрд╛рдЬрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВ Ultralytics YOLOv8 рдорд╛рд░реНрдЧрджрд░реНрд╢рдХред

рдЙрджрд╛рд╣рд░рдг рд╡рд┐рднрд╛рдЬрди рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ Ultralytics YOLOv8?

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

рдореБрдЭреЗ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП Ultralytics YOLOv8 рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рд╕реНрдХ рдЖрд░-рд╕реАрдПрдирдПрди рдпрд╛ рддреЗрдЬрд╝ рдЖрд░-рд╕реАрдПрдирдПрди рдЬреИрд╕реЗ рдЕрдиреНрдп рдореЙрдбрд▓реЛрдВ рдкрд░ рд╡рд┐рднрд╛рдЬрди рдФрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ?

Ultralytics YOLOv8 рдорд╛рд╕реНрдХ рдЖрд░-рд╕реАрдПрдирдПрди рдпрд╛ рддреЗрдЬрд╝ рдЖрд░-рд╕реАрдПрдирдПрди рдЬреИрд╕реЗ рдЕрдиреНрдп рдореЙрдбрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдкреНрд░рджрд░реНрд╢рди, рдмреЗрд╣рддрд░ рд╕рдЯреАрдХрддрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред YOLOv8 рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╣рдЬ рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ Ultralytics HUB, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдореЙрдбрд▓, рдбреЗрдЯрд╛рд╕реЗрдЯ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЗ рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВ YOLOv8 рдореЗрдВ Ultralytics рдмреНрд▓реЙрдЧред

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

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

рдЙрджрд╛рд╣рд░рдг

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:
        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()

рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдФрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬрд╝реНрдпрд╛рджрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рдПрдВ.

рдХреНрдпрд╛ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХреЛрдИ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╣реИрдВ Ultralytics рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд YOLOv8 рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓: рд╡рд┐рднрд╛рдЬрди рдФрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ?

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



рдмрдирд╛рдпрд╛ рдЧрдпрд╛ 2023-12-18, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-07-14
рд▓реЗрдЦрдХ: рд░рд┐рдЬрд╡рд╛рди рдореБрдирд╡реНрд╡рд░ (2), рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (10), рдЗрд╡реЛрд░рдЭреВ331 (1)

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