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

MHP数据集语义分割任务如何匹配训练图像与对应首个分割掩码

MHP数据集语义分割任务 图像-首掩码列表构建实现

核心思路:放弃依赖文件资源管理器/系统接口返回的默认遍历顺序,直接通过数据集固定命名规则做精确匹配,从根源避免顺序错乱、匹配错误问题。

实现逻辑

  • MHP数据集训练原图为.jpg格式,对应多实例掩码命名规则为{图像ID}_02_{实例序号}.png,需要的每张图第一个掩码,固定是实例序号为01的文件,无需遍历所有掩码后再筛选排序。
  • 提取所有有效原图的ID后,直接拼接对应首掩码文件名,最后可按需按图像ID数值做升序排列,和示例序列对齐。

可直接运行的代码

提前把代码里的路径替换为本地实际存储路径即可:

import os

# 本地路径配置
TRAIN_IMG_DIR = "path/to/your/train/image/folder"  # 训练原图存放目录
TRAIN_MASK_DIR = "path/to/your/train/mask/folder"  # 掩码所在的train文件夹目录

img_list = []
mask_list = []

# 遍历目录提取所有jpg格式原图
for file_name in os.listdir(TRAIN_IMG_DIR):
    if not file_name.endswith(".jpg"):
        continue
    # 提取图像数字ID
    img_id = os.path.splitext(file_name)[0]
    # 拼接对应首掩码文件名
    expected_mask_name = f"{img_id}_02_01.png"
    # 校验掩码存在性,避免因数据集缺文件导致后续错误
    if os.path.exists(os.path.join(TRAIN_MASK_DIR, expected_mask_name)):
        img_list.append(file_name)
        mask_list.append(expected_mask_name)

# 按图像ID数值升序排序,和示例序列对齐,不需要可删除这段
img_list.sort(key=lambda x: int(os.path.splitext(x)[0]))
mask_list.sort(key=lambda x: int(x.split("_")[0]))

# 可打印前若干组结果校验匹配关系
for img, mask in zip(img_list[:10], mask_list[:10]):
    print(f"图像: {img} -> 首掩码: {mask}")

该方案匹配准确率100%,不会受不同操作系统文件默认排序规则影响。如果不需要固定ID升序的排列顺序,删除排序代码段也完全不影响图像和掩码的对应关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:15:11