You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YOLOv7中--save-txt参数输出路径修改方法咨询

YOLOv7 修改检测结果TXT文件保存路径问题

问题描述

我使用YOLOv7预训练模型进行目标检测,运行命令为:python detect.py --source human.jpg --save-txt。--save-txt参数会生成包含坐标信息的.txt文件,默认保存路径为runs/detect/exp/labels,但我希望将其保存到runs/data/train路径下。

找到相关代码(第108行):

txt_path = str(save_dir / 'labels' / p.stem) + ('' if dataset.mode == 'image' else f'_{frame}')  # img.txt

我尝试修改为:

txt_path = 'runs/data/train'  # img.txt

但无法正确设置文件名,求正确修改txt_path变量的方法。


解决方案

你需要保留原有的文件名生成逻辑(比如图片的文件名主体、视频帧的编号后缀),同时替换保存路径,以下是两种可行方法:

方法一:直接硬改路径(适合固定需求)

直接将目标路径与原文件名逻辑拼接,确保生成的路径包含完整的文件名:

# 方式1:使用pathlib拼接(跨平台兼容,推荐)
from pathlib import Path  # 代码顶部未导入的话需要添加这行
target_dir = 'runs/data/train'
txt_path = str(Path(target_dir) / p.stem) + ('' if dataset.mode == 'image' else f'_{frame}')

# 方式2:字符串拼接(简单直接)
txt_path = f'runs/data/train/{p.stem}' + ('' if dataset.mode == 'image' else f'_{frame}')

补充:确保目标目录存在

如果runs/data/train目录还未创建,YOLOv7不会自动生成自定义路径的目录,可手动创建,或者在代码里添加目录创建逻辑(放在txt_path定义前即可):

Path(target_dir).mkdir(parents=True, exist_ok=True)

方法二:添加命令行参数(灵活适配不同需求)

如果需要经常切换保存路径,可在detect.py的参数解析区域添加自定义参数:

parser.add_argument('--txt-save-path', type=str, default='runs/detect/exp/labels', help='Path to save txt labels')

然后修改txt_path的定义:

txt_path = str(Path(opt.txt_save_path) / p.stem) + ('' if dataset.mode == 'image' else f'_{frame}')

之后运行命令时,可通过--txt-save-path runs/data/train指定路径,无需每次修改代码。


内容的提问来源于stack exchange,提问作者Yusuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:45:34