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

рдХреЙрд▓рдмреИрдХ

рдХреЙрд▓рдмреИрдХ

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



рд╕рддрд░реНрдХрддрд╛: рдорд╛рд╣рд┐рд░ Ultralytics YOLOv8: рдХреЙрд▓рдмреИрдХ

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

рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЗ рд╕рд╛рде рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рдирд╛

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдгрд╛рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдореВрд▓ рдлреНрд░реЗрдо рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдРрд╕рд╛ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

from ultralytics import YOLO


def on_predict_batch_end(predictor):
    """Handle prediction batch end by combining results with corresponding frames; modifies predictor results."""
    _, image, _, _ = predictor.batch

    # Ensure that image is a list
    image = image if isinstance(image, list) else [image]

    # Combine the prediction results with the corresponding frames
    predictor.results = zip(predictor.results, image)


# Create a YOLO model instance
model = YOLO(f'yolov8n.pt')

# Add the custom callback to the model
model.add_callback("on_predict_batch_end", on_predict_batch_end)

# Iterate through the results and frames
for (result, frame) in model.predict():  # or model.track()
    pass

рд╕рднреА рдХреЙрд▓рдмреИрдХ

рдпрд╣рд╛рдВ рд╕рднреА рд╕рдорд░реНрдерд┐рдд рдХреЙрд▓рдмреИрдХ рд╣реИрдВред рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рд╕реНрд░реЛрдд рдХреЛрдб рджреЗрдЦреЗрдВред

рдЯреНрд░реЗрдирд░ рдХреЙрд▓рдмреИрдХ

рдХреЙрд▓рдмреИрдХ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо
on_pretrain_routine_start рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджрд┐рдирдЪрд░реНрдпрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_pretrain_routine_end рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджрд┐рдирдЪрд░реНрдпрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_train_start рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░
on_train_epoch_start рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдпреБрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░
on_train_batch_start рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдмреИрдЪ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
optimizer_step рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_before_zero_grad рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд╢реВрдиреНрдп рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_train_batch_end рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдмреИрдЪ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_train_epoch_end рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдпреБрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_fit_epoch_end рдкреНрд░рддреНрдпреЗрдХ рдлрд┐рдЯ рдпреБрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_model_save рдореЙрдбрд▓ рд╕рд╣реЗрдЬреЗ рдЬрд╛рдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_train_end рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_params_update рдореЙрдбрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
teardown рдЯреНрд░рд┐рдЧрд░ рдЬрдм рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЙрд▓рдмреИрдХ

рдХреЙрд▓рдмреИрдХ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо
on_val_start рд╕рддреНрдпрд╛рдкрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_val_batch_start рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрдпрд╛рдкрди рдмреИрдЪ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_val_batch_end рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрдпрд╛рдкрди рдмреИрдЪ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_val_end рд╕рддреНрдпрд╛рдкрди рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛

рдкреНрд░реЗрдбрд┐рдХреНрдЯрд░ рдХреЙрд▓рдмреИрдХ

рдХреЙрд▓рдмреИрдХ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо
on_predict_start рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_predict_batch_start рдкреНрд░рддреНрдпреЗрдХ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдмреИрдЪ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_predict_postprocess_end рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдкреЛрд╕реНрдЯрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_predict_batch_end рдкреНрд░рддреНрдпреЗрдХ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдмреИрдЪ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_predict_end рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛

рдирд┐рд░реНрдпрд╛рддрдХ рдХреЙрд▓рдмреИрдХ

рдХреЙрд▓рдмреИрдХ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо
on_export_start рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
on_export_end рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛


2023-11-12 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-05-03
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (4), рд░рд┐рдЬрд╝рд╡рд╛рдирдореБрдирд╡реНрд╡рд░ (1), рд▓рд╛рдлрд┐рдВрдЧ-рдХреНрдпреВ (1)

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