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

为YOLO v5构建均衡数据集:多标注图像的类别筛选问询

批量提取YOLOv5标注文件中指定类别的行

核心实现(Python脚本)

直接用Python写个批量处理脚本,遍历所有标注文件,只保留你需要的类别行:

import os

# 配置参数
TARGET_CLASSES = [0, 27]  # 你要保留的类别ID
ANNOT_DIR = "./labels"     # 标注文件所在文件夹
OUTPUT_DIR = "./filtered_labels"  # 处理后标注文件保存路径

# 创建输出文件夹
os.makedirs(OUTPUT_DIR, exist_ok=True)

# 遍历所有标注文件
for filename in os.listdir(ANNOT_DIR):
    if not filename.endswith(".txt"):
        continue
    annot_path = os.path.join(ANNOT_DIR, filename)
    output_path = os.path.join(OUTPUT_DIR, filename)
    
    # 读取并筛选行
    filtered_lines = []
    with open(annot_path, "r", encoding="utf-8") as f:
        for line in f:
            line = line.strip()
            if not line:
                continue
            # 提取类别ID
            cls_id = int(line.split()[0])
            if cls_id in TARGET_CLASSES:
                filtered_lines.append(line + "\n")
    
    # 保存筛选后的内容
    with open(output_path, "w", encoding="utf-8") as f:
        f.writelines(filtered_lines)

print("批量处理完成!")

使用说明

  1. 修改TARGET_CLASSES为你需要保留的类别ID列表
  2. 调整ANNOT_DIR为你的标注文件实际路径,OUTPUT_DIR为处理后文件的保存路径(建议单独存储,避免覆盖原数据)
  3. 运行脚本即可完成批量筛选

额外提示

  • 如果需要统计各类别数量来实现“等量选取”,可以在遍历文件时添加计数逻辑,统计每个类别对应的标注行所属图片,后续根据计数筛选出等量的图片及对应标注
  • 处理前建议备份原标注文件,避免操作失误丢失数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:10:38