
这些参数主要用于定义模型的基本运行模式和任务类型。在实际应用中,应根据具体需求和场景选择合适的 task 和 mode。
注意:如果目的是在一个新的数据集上训练一个目标检测模型,那么 task 应设置为 detect,而 mode 应设置为 train。
实例:
from ultralytics import YOLO
model = YOLO("./yolov8n.pt")
result1 = model(mode='predict',task='detect',source="./imgs/dance_girl_001.jpg", save=True)
model = YOLO("./yolov8n-seg.pt")
result2 = model(mode='predict', task='segment',source="./imgs/dance_girl_001.jpg", save=True)
model = YOLO("./yolov8n-cls.pt")
result3 = model(mode='predict',task='classify',source="./imgs/dance_girl_001.jpg", save=True)
model = YOLO("./yolov8n-pose.pt")
result4 = model(mode='predict', task='pose',source="./imgs/dance_girl_001.jpg", save=True)
也可以使用yolo cli命令测试不同的任务。
#目标检查模型
yolo task=detect mode=predict model=yolov8n.pt source='./imgs/dance_girl_001.jpg'
#目标分割模型
yolo task=segment mode=predict model=yolov8n-seg.pt source = './imgs/dance_girl_001.jpg'
#目标分类模型
yolo task=classify mode=predict model=yolov8n-cls.pt source = './imgs/dance_girl_001.jpg'
#目标姿态模型
yolo task=pose mode=predict model=yolov8n-pose.pt source = './imgs/dance_girl_001.jpg'
YOLOv8现在可以接受输入很多,如下表所示。包括图像、URL、PIL图像、OpenCV、NumPy数组、Torch张量、CSV文件、视频、目录、通配符、YouTube视频和视频流。表格✅指示了每个输入源是否可以在流模式下使用,并给出了每个输入源使用流模式的示例参数。

下面是每个参数的解释:
实例:
import ultralytics
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('./model/predict/yolov8n.pt')
print(model.names)
# 预测图片里的人
# model.predict('./images/xian_power001.jpg', classes=[0,5], conf=0.1, save=True)
# model.predict('./images/xian_power001.jpg', classes=[0, 5], conf=0.1, save=True, save_txt=True, device='0')
# model.predict('./images/girl001.jpg', classes=[0, 5], conf=0.1, save=True, save_txt=True, device='0',line_width=1)
#model.predict('./images/girl001.jpg', classes=[0, 5], conf=0.1, show=True, save=True, save_txt=True, device='0',line_width=1)
results = model(['./images/girl001.jpg','./images/bus001.png','https://img.simoniu.com/yolov8%E6%B5%8B%E8%AF%95%E5%9B%BE%E7%89%87001.png'])
print(len(results)) #2
icount=0
for result in results:
filename = f'dest{icount}.jpg'
result.show()
#把预测结果保存到指定的目录。
result.save(f'./output/{filename}')
icount+=1