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

рд╕реБрд░рдХреНрд╖рд╛ рдЕрд▓рд╛рд░реНрдо рд╕рд┐рд╕реНрдЯрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Ultralytics YOLOv8

рд╕реБрд░рдХреНрд╖рд╛ рдЕрд▓рд╛рд░реНрдо рд╕рд┐рд╕реНрдЯрдо

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

  • рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ: YOLOv8рдХреА рджрдХреНрд╖рддрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдЕрд▓рд╛рд░реНрдо рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдХреЛ рдХрдо рдХрд░рддреА рд╣реИред
  • рдпрдерд╛рд░реНрдерддрд╛: YOLOv8 рд╡рд╕реНрддреБ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдЗрд╕рдХреА рд╕рдЯреАрдХрддрд╛, рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЕрд▓рд╛рд░реНрдо рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдПрдХреАрдХрд░рдг рдХреНрд╖рдорддрд╛рдПрдВ: рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдореМрдЬреВрджрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рд╕рдореЗрдХрд┐рдд рд░реВрдк рд╕реЗ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмреБрджреНрдзрд┐рдорд╛рди рдирд┐рдЧрд░рд╛рдиреА рдХреА рдПрдХ рдЙрдиреНрдирдд рдкрд░рдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред



рд╕рддрд░реНрдХрддрд╛: рд╕реБрд░рдХреНрд╖рд╛ рдЕрд▓рд╛рд░реНрдо рд╕рд┐рд╕реНрдЯрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде Ultralytics YOLOv8 рд╡рд╕реНрддреБ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛

рдХреЛрдб

рд╕рдВрджреЗрд╢ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ

рдиреЛрдЯ

рдРрдк рдкрд╛рд╕рд╡рд░реНрдб рдЬрдирд░реЗрд╢рди рдЬрд░реВрд░реА рд╣реИ

  • рдРрдк рдкрд╛рд╕рд╡рд░реНрдб рдЬреЗрдирд░реЗрдЯрд░ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ, "рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ" рдЬреИрд╕реЗ рдРрдк рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ 16-рдЕрдВрдХреАрдп рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЗрд╕ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдиреБрд╕рд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред
password = ""
from_email = ""  # must match the email used to generate the password
to_email = ""  # receiver email

рд╕рд░реНрд╡рд░ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

import smtplib

server = smtplib.SMTP("smtp.gmail.com: 587")
server.starttls()
server.login(from_email, password)

рдИрдореЗрд▓ рднреЗрдЬреЗрдВ рд╕рдорд╛рд░реЛрд╣

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText


def send_email(to_email, from_email, object_detected=1):
    """Sends an email notification indicating the number of objects detected; defaults to 1 object."""
    message = MIMEMultipart()
    message["From"] = from_email
    message["To"] = to_email
    message["Subject"] = "Security Alert"
    # Add in the message body
    message_body = f"ALERT - {object_detected} objects has been detected!!"

    message.attach(MIMEText(message_body, "plain"))
    server.sendmail(from_email, to_email, message.as_string())

рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдФрд░ рдЕрд▓рд░реНрдЯ рдкреНрд░реЗрд╖рдХ

from time import time

import cv2
import torch

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


class ObjectDetection:
    def __init__(self, capture_index):
        """Initializes an ObjectDetection instance with a given camera index."""
        self.capture_index = capture_index
        self.email_sent = False

        # model information
        self.model = YOLO("yolov8n.pt")

        # visual information
        self.annotator = None
        self.start_time = 0
        self.end_time = 0

        # device information
        self.device = "cuda" if torch.cuda.is_available() else "cpu"

    def predict(self, im0):
        """Run prediction using a YOLO model for the input image `im0`."""
        results = self.model(im0)
        return results

    def display_fps(self, im0):
        """Displays the FPS on an image `im0` by calculating and overlaying as white text on a black rectangle."""
        self.end_time = time()
        fps = 1 / round(self.end_time - self.start_time, 2)
        text = f"FPS: {int(fps)}"
        text_size = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, 1.0, 2)[0]
        gap = 10
        cv2.rectangle(
            im0,
            (20 - gap, 70 - text_size[1] - gap),
            (20 + text_size[0] + gap, 70 + gap),
            (255, 255, 255),
            -1,
        )
        cv2.putText(im0, text, (20, 70), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 0), 2)

    def plot_bboxes(self, results, im0):
        """Plots bounding boxes on an image given detection results; returns annotated image and class IDs."""
        class_ids = []
        self.annotator = Annotator(im0, 3, results[0].names)
        boxes = results[0].boxes.xyxy.cpu()
        clss = results[0].boxes.cls.cpu().tolist()
        names = results[0].names
        for box, cls in zip(boxes, clss):
            class_ids.append(cls)
            self.annotator.box_label(box, label=names[int(cls)], color=colors(int(cls), True))
        return im0, class_ids

    def __call__(self):
        """Run object detection on video frames from a camera stream, plotting and showing the results."""
        cap = cv2.VideoCapture(self.capture_index)
        assert cap.isOpened()
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
        frame_count = 0
        while True:
            self.start_time = time()
            ret, im0 = cap.read()
            assert ret
            results = self.predict(im0)
            im0, class_ids = self.plot_bboxes(results, im0)

            if len(class_ids) > 0:  # Only send email If not sent before
                if not self.email_sent:
                    send_email(to_email, from_email, len(class_ids))
                    self.email_sent = True
            else:
                self.email_sent = False

            self.display_fps(im0)
            cv2.imshow("YOLOv8 Detection", im0)
            frame_count += 1
            if cv2.waitKey(5) & 0xFF == 27:
                break
        cap.release()
        cv2.destroyAllWindows()
        server.quit()

рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреНрд▓рд╛рд╕ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдЕрдиреБрдорд╛рди рдЪрд▓рд╛рдПрдВ

detector = ObjectDetection(capture_index=0)
detector()

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

рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдирдореВрдирд╛

рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдирдореВрдирд╛

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

рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ Ultralytics YOLOv8 рд╕реБрд░рдХреНрд╖рд╛ рдЕрд▓рд╛рд░реНрдо рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░?

Ultralytics YOLOv8 рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╡рд╕реНрддреБ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рджреЗрдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реБрд░рдХреНрд╖рд╛ рдЕрд▓рд╛рд░реНрдо рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЙрдиреНрдирдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЦрддрд░реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдмрдврд╝реА рд╣реБрдИ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЛ рдореМрдЬреВрджрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рд╕рдореЗрдХрд┐рдд рд░реВрдк рд╕реЗ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдордЧреНрд░ рдирд┐рдЧрд░рд╛рдиреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдЙрдиреНрдирдпрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ Ultralytics YOLOv8 рдореЗрд░реЗ рдореМрдЬреВрджрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде?

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

рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░рдг рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдХреНрдпрд╛ рд╣реИрдВ Ultralytics YOLOv8?

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

рдХреНрдпрд╛ рдмрдирд╛рддрд╛ рд╣реИ Ultralytics YOLOv8 рдлрд╛рд╕реНрдЯрд░ рдЖрд░-рд╕реАрдПрдирдПрди рдпрд╛ рдПрд╕рдПрд╕рдбреА рдЬреИрд╕реЗ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдореЙрдбрд▓ рд╕реЗ рдЕрд▓рдЧ?

Ultralytics YOLOv8 рдЕрдкрдиреА рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдбрд┐рдЯреЗрдХреНрд╢рди рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рддреЗрдЬрд╝ R-CNN рдпрд╛ SSD рдЬреИрд╕реЗ рдореЙрдбрд▓реЛрдВ рдкрд░ рдмрдврд╝рдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреА рдЕрдиреВрдареА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЗрд╕реЗ рд╕рдЯреАрдХрддрд╛ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдЕрд▓рд╛рд░реНрдо рд╕рд┐рд╕реНрдЯрдо рдЬреИрд╕реЗ рд╕рдордп-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рдмрди рдЬрд╛рддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдореЙрдбрд▓ рдХреА рд╡реНрдпрд╛рдкрдХ рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╣рдорд╛рд░реЗ рдЧрд╛рдЗрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЕрдкрдиреА рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдХреИрд╕реЗ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ Ultralytics YOLOv8?

рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ Ultralytics YOLOv8 рдореЙрдбрд▓ рдХреЛ рдПрдХ рд╡рд┐рд╡рд┐рдз рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рдХрд░рдирд╛ рдФрд░ рдирдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдореЙрдбрд▓ рдХреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╕реНрддреГрдд рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рддрдХрдиреАрдХ рд╣рдорд╛рд░реЗ рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдЧрд╛рдЗрдб рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред


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