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

如何从图像分割输出的tensor array生成图像?

从图像分割的Tensor数组生成输出图像

先明确Tensor的常见结构

图像分割模型的输出Tensor通常有两种形式:

  • 单通道二分类:形状一般为(batch_size, 1, height, width),值是0/1的掩码或0-1的概率值
  • 多通道多分类:形状为(batch_size, num_classes, height, width)(PyTorch)或(batch_size, height, width, num_classes)(TensorFlow),每个通道对应一类的概率

PyTorch环境下的处理步骤

  1. 提取单张图像样本
    如果是批量输出,先取出其中一张:seg_tensor = seg_tensor[0]
  2. 处理二分类输出
    如果输出是概率值,用阈值截断得到掩码:mask = (seg_tensor > 0.5).float()
  3. 处理多分类输出
    取通道维度的最大值得到类别索引:class_mask = seg_tensor.argmax(dim=0)
  4. 转为NumPy数组
    若Tensor在GPU上,先移到CPU再转:numpy_mask = seg_tensor.cpu().numpy()
  5. 调整维度(可选)
    单通道掩码可以去掉冗余的通道维度:numpy_mask = numpy_mask.squeeze()
  6. 可视化或保存图像
    import matplotlib.pyplot as plt
    import numpy as np
    from PIL import Image
    
    # 显示掩码(二分类用gray,多分类用viridis区分类别)
    plt.imshow(numpy_mask, cmap='gray')
    plt.axis('off')
    plt.show()
    
    # 保存为图像文件
    # 转成0-255的uint8格式
    img_data = (numpy_mask * 255).astype(np.uint8) if numpy_mask.max() <=1 else numpy_mask.astype(np.uint8)
    img = Image.fromarray(img_data)
    img.save('segmentation_result.png')
    

TensorFlow/Keras环境下的处理步骤

  1. 提取单张图像样本
    seg_tensor = seg_tensor[0]
  2. 处理二分类输出
    阈值截断:mask = tf.cast(seg_tensor > 0.5, tf.float32)
  3. 处理多分类输出
    取最后一个维度的最大值得到类别索引:class_mask = tf.argmax(seg_tensor, axis=-1)
  4. 转为NumPy数组
    numpy_mask = seg_tensor.numpy()
  5. 调整维度(可选)
    单通道情况:numpy_mask = np.squeeze(numpy_mask)
  6. 可视化或保存
    import matplotlib.pyplot as plt
    import numpy as np
    from PIL import Image
    
    plt.imshow(numpy_mask, cmap='viridis')
    plt.axis('off')
    plt.show()
    
    # 保存多分类掩码
    img_data = class_mask.numpy().astype(np.uint8)
    img = Image.fromarray(img_data)
    img.save('multi_class_result.png')
    

关键注意点

  • GPU上的Tensor必须先转到CPU才能转为NumPy数组(PyTorch需显式调用.cpu(),TensorFlow自动处理)
  • 浮点型的概率值必须转为0-255的uint8格式才能保存为标准图像
  • 多分类可视化时,用不同的颜色映射(如viridis)能更清晰区分不同类别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:15:03