YOLOv8保存推理结果至自定义文件夹报错:'list'无'save'属性
YOLOv8视频推理结果保存到自定义文件夹的问题解决
问题原因
model.predict()返回的是Result对象的列表(每个元素对应视频的一帧),不是单个Result实例,所以直接调用results.save()会触发AttributeError——列表本身没有save方法。另外你错误地把save_dir设成了输入视频路径,应该指定你定义的output_dir。
正确解决方案
方法1:在predict时直接指定保存参数(推荐)
YOLOv8的predict方法支持直接传入保存相关参数,无需手动调用save,操作更简洁高效:
from ultralytics import YOLO model = YOLO('yolov8n.pt') # 输入视频路径 input_path = r"C:\Users\user\PycharmProjects\Gen\Users\Per\pre_video\BAACAgIAAxkBAAICPGSP5ivdrC9mmwABPTyoVDnBtEAhswACHCcAAu5agEgK3IT3udd3Yy8E.mp4" # 输出目录 output_dir = r"C:\Users\user\PycharmProjects\Gen\Users\Pre\post_video" # 直接在predict中配置保存规则 model.predict( source=input_path, conf=0.45, save=True, # 开启保存功能 save_dir=output_dir,# 指定自定义保存目录 show=False # 不需要实时显示画面可关闭 )
方法2:遍历Result列表手动保存
如果需要对每帧结果做额外处理后再保存,可以遍历results列表,对每个Result实例单独调用save:
from ultralytics import YOLO model = YOLO('yolov8n.pt') input_path = r"C:\Users\user\PycharmProjects\Gen\Users\Per\pre_video\BAACAgIAAxkBAAICPGSP5ivdrC9mmwABPTyoVDnBtEAhswACHCcAAu5agEgK3IT3udd3Yy8E.mp4" output_dir = r"C:\Users\user\PycharmProjects\Gen\Users\Pre\post_video" results = model.predict(source=input_path, conf=0.45) # 逐个处理并保存每帧结果 for result in results: result.save(save_dir=output_dir)
注意事项
- 确保
output_dir对应的文件夹已经存在,YOLOv8会自动创建不存在的目录,但手动创建可避免潜在权限问题。 - 方法1会自动保存完整的处理后视频;方法2是逐帧保存图片,可根据实际需求选择。
内容的提问来源于stack exchange,提问作者LTS FG
相关产品推荐
相关产品推荐

