在本指南中,将详细介绍如何利用Roboflow平台部署YOLOv5,YOLOv8等模型。首先,确保模型是在正确的ultralytics版本上训练的。例如,YOLOv8模型需要在ultralytics 8.0.196版本上训练,而YOLOv11模型则需要在ultralytics 8.3.0或更高版本上训练。目前,Roboflow支持上传以下模型权重:
YOLOv5系列模型支持对象检测和实例分割;YOLOv7和YOLOv8模型除了支持对象检测和实例分割外,还支持分类和关键点检测;YOLOv9和YOLOv10模型专注于对象检测;YOLOv11模型则支持对象检测和实例分割。此外,还有YOLO-NAS模型,支持对象检测。
在成功训练模型后,可以使用.deploy()函数将模型权重上传回Roboflow对象检测项目。请注意,只有尚未训练的版本(即尚未使用Roboflow Train训练,且未上传模型权重)才能上传模型权重。
值得注意的是,较大的模型尺寸可以提供更好的训练结果。然而,模型尺寸越大,训练时间和推理(模型预测)速度就越慢。因此,需要根据实际需求来选择模型尺寸。如果需要对快速移动的对象或视频流进行实时推理,建议使用较小的模型;如果更关心更高的预测准确性,并且是在数据收集后进行处理,那么可以选择较大的模型。
要使用Python SDK上传自定义权重,需要安装roboflow>=1.0.1。使用model.deploy()方法可以上传权重。例如,以下是上传YOLOv8模型权重的代码示例:
version = project.version(1)
version.deploy("yolov8", "training1", "model1.pt")
# 或者,如果目录路径是 "training1/weights/best.pt" 对于 yolov8 模型
version.deploy("yolov8", "training1")
目前支持的模型类型包括:yolov5, yolov5-seg, yolov7, yolov7-seg, yolov8, yolov8-seg, yolov8-cls, yolov8-pose, yolov9, yolov10, yolonas, yolov11(支持所有任务类型)。
如果尝试为已经训练过的版本上传权重(无论是RoboflowTrain模型还是已上传的自定义模型),将收到一个RuntimeError,提示“此版本已有训练模型。请生成并训练一个新版本以便上传模型到Roboflow。”如果尝试上传的模型架构尚未支持权重上传,将收到一个ValueError。