Ultralytics YOLO提供了一系列回调函数,这些函数可以在模型操作的关键阶段被触发,例如训练、验证、导出和预测。通过这些回调函数,用户可以在特定点添加自定义功能,增强和修改工作流程。每个回调函数接受一个 Trainer、Validator 或 Predictor 对象,具体取决于操作类型。这些对象的属性可以在文档的参考部分找到详细信息。
在这个示例中,希望在每个结果对象中返回原始帧。以下是如何实现这一点的示例代码:
from ultralytics import YOLO
def on_predict_batch_end(predictor):
""“在预测批次结束时处理结果,将结果与对应的帧组合;修改预测器结果。”""
_, image, _, _ = predictor.batch
# 确保图像是一个列表
image = image if isinstance(image, list) else [image]
# 将预测结果与对应的帧组合
predictor.results = zip(predictor.results, image)
# 创建一个 YOLO 模型实例
model = YOLO("yolo11n.pt")
# 将自定义回调函数添加到模型
model.add_callback("on_predict_batch_end", on_predict_batch_end)
# 遍历结果和帧
for result, frame in model.predict():
pass
以下是所有支持的回调函数。有关更多详细信息,请参阅回调函数的源代码。
以下是一些训练过程中可用的回调函数及其描述:
以下是一些验证过程中可用的回调函数及其描述:
以下是一些预测过程中可用的回调函数及其描述:
以下是一些导出过程中可用的回调函数及其描述:
什么是 Ultralytics 回调函数,该如何使用它们?
Ultralytics 回调函数是在模型操作的关键阶段触发的专门入口点,如训练、验证、导出和预测。这些回调函数允许在过程中的特定点添加自定义功能,增强和修改工作流程。要使用回调函数,可以定义一个函数,然后使用 add_callback 方法将其添加到模型中。
如何使用回调函数自定义 Ultralytics 训练例程?
要使用回调函数自定义 Ultralytics 训练例程,可以在训练过程的特定阶段注入逻辑。Ultralytics YOLO提供了多种训练回调函数,如 on_train_start、on_train_end 和 on_train_batch_end。这些允许添加自定义度量、处理或日志记录。
为什么要在 Ultralytics YOLO 中使用验证回调函数?
在 Ultralytics YOLO 中使用验证回调函数可以增强模型评估,允许自定义处理、日志记录或度量计算。回调函数如 on_val_start、on_val_batch_end 和 on_val_end 提供了注入自定义逻辑的入口点,确保详细和全面的验证过程。
如何为 Ultralytics YOLO 的预测模式附加自定义回调函数?
要为 Ultralytics YOLO 的预测模式附加自定义回调函数,需要定义一个回调函数并将其注册到预测过程中。常见的预测回调函数包括 on_predict_start、on_predict_batch_end 和 on_predict_end。这些允许修改预测输出并集成额外的功能,如数据日志记录或结果转换。
在Ultralytics YOLO中使用回调函数的一些实际示例是什么?
Ultralytics YOLO 支持各种实际的回调函数实现,以增强和自定义不同阶段,如训练、验证和预测。一些实际示例包括:
from ultralytics import YOLO
def on_predict_batch_end(predictor):
""“在预测批次结束时处理结果,将结果与对应的帧组合;修改预测器结果。”""
_, image, _, _ = predictor.batch
image = image if isinstance(image, list) else [image]
predictor.results = zip(predictor.results, image)
model = YOLO("yolo11n.pt")
model.add_callback("on_predict_batch_end", on_predict_batch_end)
for result, frame in model.predict():
pass