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

Python рдЙрдкрдпреЛрдЧ

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



рд╕рддрд░реНрдХрддрд╛: рдорд╛рд╣рд┐рд░ Ultralytics YOLOv8: Python

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

Python

from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO('yolov8n.yaml')

# Load a pretrained YOLO model (recommended for training)
model = YOLO('yolov8n.pt')

# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data='coco8.yaml', epochs=3)

# Evaluate the model's performance on the validation set
results = model.val()

# Perform object detection on an image using the model
results = model('https://ultralytics.com/images/bus.jpg')

# Export the model to ONNX format
success = model.export(format='onnx')

рд░реЗрд▓рдЧрд╛рдбрд╝реА

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

рд░реЗрд▓рдЧрд╛рдбрд╝реА

from ultralytics import YOLO

model = YOLO('yolov8n.pt') # pass any model type
results = model.train(epochs=5)
from ultralytics import YOLO

model = YOLO('yolov8n.yaml')
results = model.train(data='coco8.yaml', epochs=5)
model = YOLO("last.pt")
results = model.train(resume=True)

рдЯреНрд░реЗрди рдЙрджрд╛рд╣рд░рдг

рд╡реИрд▓

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

рд╡реИрд▓

  from ultralytics import YOLO

  model = YOLO('yolov8n.yaml')
  model.train(data='coco8.yaml', epochs=5)
  model.val()  # It'll automatically evaluate the data you trained.
  from ultralytics import YOLO

  model = YOLO("model.pt")
  # It'll use the data YAML file in model.pt if you don't set data.
  model.val()
  # or you can set the data you want to val
  model.val(data='coco8.yaml')

рд╡реИрд▓ рдЙрджрд╛рд╣рд░рдг

рднрд╡рд┐рд╖реНтАНрдпрд╡рд╛рдгреА рдХрд░рдирд╛

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

рднрд╡рд┐рд╖реНтАНрдпрд╡рд╛рдгреА рдХрд░рдирд╛

from ultralytics import YOLO
from PIL import Image
import cv2

model = YOLO("model.pt")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True) # Display preds. Accepts all YOLO predict arguments

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # save plotted images

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels

# from list of PIL/ndarray
results = model.predict(source=[im1, im2])
# results would be a list of Results object including all the predictions by default
# but be careful as it could occupy a lot memory when there're many images,
# especially the task is segmentation.
# 1. return as a list
results = model.predict(source="folder")

# results would be a generator which is more friendly to memory by setting stream=True
# 2. return as a generator
results = model.predict(source=0, stream=True)

for result in results:
    # Detection
    result.boxes.xyxy   # box with xyxy format, (N, 4)
    result.boxes.xywh   # box with xywh format, (N, 4)
    result.boxes.xyxyn  # box with xyxy format but normalized, (N, 4)
    result.boxes.xywhn  # box with xywh format but normalized, (N, 4)
    result.boxes.conf   # confidence score, (N, 1)
    result.boxes.cls    # cls, (N, 1)

    # Segmentation
    result.masks.data      # masks, (N, H, W)
    result.masks.xy        # x,y segments (pixels), List[segment] * N
    result.masks.xyn       # x,y segments (normalized), List[segment] * N

    # Classification
    result.probs     # cls prob, (num_class, )

# Each result is composed of torch.Tensor by default,
# in which you can easily use following functionality:
result = result.cuda()
result = result.cpu()
result = result.to("cpu")
result = result.numpy()

рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░реЗрдВ

рдирд┐рд░реНрдпрд╛рддрд┐рдд рдорд╛рд▓

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

рдирд┐рд░реНрдпрд╛рддрд┐рдд рдорд╛рд▓

рдПрдХ рдЕрдзрд┐рдХрд╛рд░реА рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ YOLOv8n рдореЙрдбрд▓ рдХреЛ ONNX рдЧрддрд┐рд╢реАрд▓ рдмреИрдЪ-рдЖрдХрд╛рд░ рдФрд░ рдЫрд╡рд┐-рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рдеред

  from ultralytics import YOLO

  model = YOLO('yolov8n.pt')
  model.export(format='onnx', dynamic=True)

рдПрдХ рдЕрдзрд┐рдХрд╛рд░реА рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ YOLOv8n рдореЙрдбрд▓ рдХреЛ TensorRT рдкрд░ device=0 CUDA рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рддреНрд╡рд░рдг рдХреЗ рд▓рд┐рдПред

  from ultralytics import YOLO

  model = YOLO('yolov8n.pt')
  model.export(format='onnx', device=0)

рдирд┐рд░реНрдпрд╛рдд рдЙрджрд╛рд╣рд░рдг

рдЯреНрд░реИрдХ

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

рдЯреНрд░реИрдХ

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load an official detection model
model = YOLO('yolov8n-seg.pt')  # load an official segmentation model
model = YOLO('path/to/best.pt')  # load a custom model

# Track with the model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")

рдЯреНрд░реИрдХ рдЙрджрд╛рд╣рд░рдг

рдХрд╕реМрдЯреА

рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреА рдЧрддрд┐ рдФрд░ рд╕рдЯреАрдХрддрд╛ рдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ YOLOv8. рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдкреНрд░рд╛рд░реВрдк рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ mAP50-95 рдореЗрдЯреНрд░рд┐рдХреНрд╕ (рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдФрд░ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП) рдпрд╛ accuracy_top5 рдореАрдЯреНрд░рд┐рдХ (рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рд▓рд┐рдП), рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдкреНрд░рддрд┐ рдЫрд╡рд┐ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдЕрдиреБрдорд╛рди рд╕рдордп рдЬреИрд╕реЗ ONNX, OpenVINO, TensorRT рдФрд░ рдЕрдиреНрдпред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЧрддрд┐ рдФрд░ рд╕рдЯреАрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдирдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рд╛рд░реВрдк рдЪреБрдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред

рдХрд╕реМрдЯреА

рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдПрдХ рдЕрдзрд┐рдХрд╛рд░реА YOLOv8n рд╕рднреА рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдореЙрдбрд▓ред

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model='yolov8n.pt', data='coco8.yaml', imgsz=640, half=False, device=0)

рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЙрджрд╛рд╣рд░рдг

рдЦреЛрдЬрдпрд╛рддреНрд░реА

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

рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЦреЛрдЬ

from ultralytics import Explorer

# create an Explorer object
exp = Explorer(data='coco8.yaml', model='yolov8n.pt')
exp.create_embeddings_table()

similar = exp.get_similar(img='https://ultralytics.com/images/bus.jpg', limit=10)
print(similar.head())

# Search using multiple indices
similar = exp.get_similar(
                        img=['https://ultralytics.com/images/bus.jpg',
                             'https://ultralytics.com/images/bus.jpg'],
                        limit=10
                        )
print(similar.head())
from ultralytics import Explorer

# create an Explorer object
exp = Explorer(data='coco8.yaml', model='yolov8n.pt')
exp.create_embeddings_table()

similar = exp.get_similar(idx=1, limit=10)
print(similar.head())

# Search using multiple indices
similar = exp.get_similar(idx=[1,10], limit=10)
print(similar.head())

рдЦреЛрдЬрдпрд╛рддреНрд░реА

рдкреНрд░рд╢рд┐рдХреНрд╖рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

YOLO рдореЙрдбрд▓ рдХреНрд▓рд╛рд╕ рдЯреНрд░реЗрдирд░ рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЖрд╡рд░рдг рд╣реИред рд╣рд░ YOLO рдЯрд╛рд╕реНрдХ рдХрд╛ рдЕрдкрдирд╛ рдЯреНрд░реЗрдирд░ рд╣реИ рдЬреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддрд╛ рд╣реИ BaseTrainer.

рдбрд┐рдЯреЗрдХреНрд╢рди рдЯреНрд░реЗрдирд░ рдЙрджрд╛рд╣рд░рдг

```python
from ultralytics.models.yolo import DetectionTrainer, DetectionValidator, DetectionPredictor

# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best

# Validator
val = DetectionValidator(args=...)
val(model=trained_model)

# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)

# resume from last weight
overrides["resume"] = trainer.last
trainer = detect.DetectionTrainer(overrides=overrides)
```

рдЖрдк рдХрд╕реНрдЯрдо рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдпрд╛ рдЖрд░ рдПрдВрдб рдбреА рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд┐рдХреНрд╖рдХреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВ Trainers, Validators рдФрд░ Predictors рдЕрдиреБрдХреВрд▓рди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЕрдиреБрдХреВрд▓рди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓


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