最近因项目需求(吃饱了没事干想迁移下看看有没有效率上的提高),目标检测功能从yolov5换成了yolov8,不换不要紧,v8的代码结构安排的太紧凑了,想要修改结果的导出目录,发现无从下手,只能一个一个试,半小时试了出来,和yolov5改法相比,yolov8更直球
1:预测结果保存到指定文件名
from ultralytics import YOLO
model=YOLO(source='yolov8s.pt')
model(source='文件夹名称',save=True,name='文件夹名称')
2:遍历待检测文件夹并保存预测结果到相同文件夹下
我本以为for循环就行,但发现yolov8一旦跑起来就只认第一个保存路径,后来for循环重复了模型初始化这一步,达成了目的,我27个文件夹用yolov5跑是36秒,每帧5-6ms偶有11ms,用yolov8跑是42秒,每帧8-9ms,两者相除差不多
for i in os.listdir('root'):#i是待测文件夹
model = YOLO(model='yolov8s.pt')
model(source=f'root/{i}',save=True,save_txt=True,name=f'{i}')