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

如何将YOLOv5检测的交通标志Bounding Box保存至自定义文件夹?需改文件吗?

实现YOLOv5保存交通标志Bounding Box区域为图片的方法

需要修改YOLOv5的相关代码,因为默认YOLOv5只负责绘制检测框和输出结果图,没有自动裁剪保存检测区域的功能。下面是两种简单的实现方式:

方法一:直接在detect.py中添加裁剪逻辑

  1. 打开YOLOv5根目录下的detect.py文件,找到处理单张图片的循环段(for path, img, im0s, vid_cap in dataset:)。
  2. 在处理检测结果(pred)的代码块中,添加以下逻辑:
    # 自定义保存文件夹,可自行修改路径
    save_crop_dir = './cropped_traffic_signs'
    # 自动创建文件夹,不存在则新建
    os.makedirs(save_crop_dir, exist_ok=True)
    
    # 遍历当前图片的所有检测结果
    for i, det in enumerate(pred):
        if len(det):
            # 将检测框坐标转换为原始图片的尺寸
            det[:, :4] = scale_coords(img.shape[2:], det[:, :4], im0s.shape).round()
            # 逐个处理每个检测框
            for idx, (*xyxy, conf, cls) in enumerate(det):
                # 提取检测框的坐标值并转为整数
                x1, y1, x2, y2 = map(int, xyxy)
                # 从原始图片中裁剪出检测框区域
                cropped_sign = im0s[y1:y2, x1:x2]
                # 生成不重复的保存文件名,避免覆盖
                base_name = os.path.basename(path).split('.')[0]
                save_name = f"{base_name}_sign_{idx}_cls{int(cls)}.jpg"
                save_path = os.path.join(save_crop_dir, save_name)
                # 保存裁剪后的图片
                cv2.imwrite(save_path, cropped_sign)
    
  3. 确保代码顶部已经导入os模块,如果没有就添加:import os。

方法二:在绘制检测框的函数中添加保存逻辑

如果希望每次绘制检测框时自动保存裁剪区域,可以修改utils/plots.py中的plot_one_box函数:

  1. 打开utils/plots.py,找到plot_one_box函数。
  2. 在函数内部(比如绘制完框之后)添加裁剪保存代码:
    # 自定义保存路径
    save_crop_dir = './cropped_traffic_signs'
    os.makedirs(save_crop_dir, exist_ok=True)
    # 提取坐标并裁剪
    x1, y1, x2, y2 = map(int, xyxy)
    cropped_sign = im[y1:y2, x1:x2]
    # 用UUID生成唯一文件名
    import uuid
    save_name = f"{str(uuid.uuid4())[:8]}_sign.jpg"
    cv2.imwrite(os.path.join(save_crop_dir, save_name), cropped_sign)
    
  3. 注意如果用UUID的话,需要在函数顶部导入uuid模块,或者直接用其他方式生成唯一文件名。

两种方法都能实现需求,推荐第一种,不需要改动其他函数的参数逻辑,更直接易懂。

内容的提问来源于stack exchange,提问作者HANEESH NAGA KRISHNA MEKALA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 05:10:00