рдХреЙрд▓рдмреИрдХ
рдХреЙрд▓рдмреИрдХ
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)