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

SegFormer医学影像微调时如何正确准备数据集生成语义分割图

问题原因与修复方案

你报错的核心原因是get_semantic_bitmap的入参要求和你传入的内容完全不匹配:

  • 这个方法是专门给Segments标注平台导出的结构化标注数据做格式转换用的,第二个入参要求传入带类别、标注几何信息的可迭代标注对象,不是直接传PIL格式的掩码图片,你直接塞单张PNG掩码进去,自然会触发"PNG对象不可迭代"的类型错误。
  • 你的场景是单病灶二值分割,完全没必要用这个工具,直接把本地的二值掩码转成SegFormer要求的整数ID格式就行,操作步骤如下:
    • 把PIL格式的标签转成numpy数组,你的标签是mode=1的二值图,像素值只有0和255两种,直接把非0像素映射成病灶类别ID 1,0保留为背景ID 0,就得到了标准的语义分割掩码
    • 预处理阶段直接把转换好的整数掩码和原图一起送入SegFormer的图像处理器即可,不需要额外做位图转换,参考代码如下:
import numpy as np

def preprocess_example(example):
    image = example["image"]
    # 二值PIL掩码转整数语义标签
    raw_mask = np.array(example["label"])
    seg_mask = np.where(raw_mask > 0, 1, 0).astype(np.uint8)
    # 调用你加载的SegFormer特征提取器/图像处理器完成预处理
    processed_inputs = feature_extractor(
        images=image,
        segmentation_maps=seg_mask,
        return_tensors="pt"
    )
    return processed_inputs

补充说明:如果后续要扩展成多病灶分割,只需要给每个病灶类别分配唯一的整数ID,保证掩码中每个像素的取值对应该像素所属类别的ID即可,全程不需要依赖segments-ai的转换工具,那个工具只适配Segments平台导出的特定格式标注,不适用于本地自制的掩码数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:42:16