【问题标题】:how to mask the segmented area in a image?如何掩盖图像中的分割区域?
【发布时间】:2020-07-30 00:16:12
【问题描述】:

我想创建一个语义分割模型,它可以使用 U-net 在 USG 中分割毛囊。我已经使用 Labelme 标记了我的训练数据。标记区域的颜色为#800000。如何以黑白形式屏蔽此图像。我已经用#ffffff 替换了颜色。但是在训练模型时,它给出了一个错误:0img.png 违反范围 [0, 1]。找到最大像素值 255。请帮我解决这个问题。图像如下。提前致谢。

【问题讨论】:

  • 您需要黑色的 8 位 (0,0,0) 结果和白色 (255,255,255) 的结果作为 3 个通道还是一个通道?还是您需要黑色的结果为 0,白色的结果为 1?保存结果需要什么图片格式?

标签: unity3d-unet semantic-segmentation white-labelling


【解决方案1】:

聚会可能有点晚了,但我发现最好编写一个单独的代码来使用 OpenCV 生成掩码。

    import json
    import cv2
    import os
    import numpy as np
    from glob import glob
    
    
    output_dir = "masks/"
    #creating the ground_truth folder if it doesn't exist
    os.makedirs(output_dir, exist_ok=True)
    
    json_files = glob("dataset/*.json")
    #loading the json file
    for image_json in json_files:
        with open(image_json) as file:
            data = json.load(file)
        filename = data["imagePath"].split(".")[0]
        
        # creating a new ground truth image
        mask = np.zeros((data["imageHeight"], data["imageWidth"]), dtype='uint8')
        for shape in data['shapes']:
            mask = cv2.fillPoly(mask, [np.array(shape['points'], dtype=np.int32)], 255)
    
        # saving the ground truth masks
        cv2.imwrite(os.path.join(output_dir,filename) + ".png", mask)

此代码回答了您的问题“如何生成黑白蒙版?”。但另一件事,即“最大值为 255”,可能是因为您在训练之前没有对图像数组进行归一化。我之前在做一个分割项目,我在使用 LabelMe 后使用过这段代码,尽管在读取图像时我通过将其除以 255 对其进行了归一化。

【讨论】:

    【解决方案2】:

    请问您使用的是什么语言和框架?但是在不失一般性的情况下,假设在 Python 中,由于您使用保存多边形注释顶点的 Labelme 标记数据,您可以使用 OpenCV 的 API cv2.fillPoly() 函数来填充零矩阵(将大小保存为输入图像) 具有指定的颜色。这一步制作了可视化的蒙版。

    在此之后,需要在颜色和标签之间进行手动映射。标签通常存储在 1 通道矩阵中(而不是具有 3 或 4 通道的彩色图像),其他形状与输入图像相同。如果您只有两个类,您可以将零值标记为背景(例如 0),将其他颜色标记为 1,并将其保存在矩阵文件中以供进一步使用。因此,彩色图像只是用于目视检查,而不是用于训练。模型需要的只是一些简单而不同的数字。例如,现在人们使用“logits”来输出每个类的像素的概率,并选择概率的 argmax(),它返回每个像素的标签。

    因此,也许尝试用 [0,num_of_classes - 1] 中的元素值制作一个矩阵将有助于解决问题。

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 1970-01-01
      • 2023-03-18
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 2021-04-03
      • 1970-01-01
      相关资源
      最近更新 更多