如何以正确的顺序在分割掩码中获取通道?
How to get channels in a segmentation mask in proper order?
我正在尝试解决 Covid-19 CT 扫描分割问题,我尝试使用 MedSeg 免费浏览器内工具 (https://www.medseg.ai/) 为自己分割图像。我想这样做是为了增加我现在有 4 类 的数据集:毛玻璃、实变、肺其他和背景。我发现了一个仅包含带有毛玻璃标签的面具的数据集。我想在其中手动分割其他肺部和背景。但是,这些手动分割的蒙版的通道顺序与我的其他图像不同:
手动分割蒙版:
- 0 - 背景
- 1 - 毛玻璃
- 2 - 整合
- 3 - 肺部其他
合适的口罩:
- 0 - 毛玻璃
- 1 - 整合
- 2 - 肺其他
- 3 - 背景
当我下载准备好的手动分割蒙版时,它的形状是 (41, 512, 512)。下载后我最后加了一维,变成了(41, 512, 512, 1)。比起我将此功能与此调色板 = [[0]、[1]、[2]、[3]](适用于我的旧数据集掩码):
def mask_to_onehot(mask, palette):
"""
Converts a segmentation mask (H, W, C) to (H, W, K) where the last dim is a one
hot encoding vector, C is usually 1 or 3, and K is the number of class.
"""
semantic_map = []
for colour in palette:
#print('colour',colour)
equality = np.equal(mask, colour)
#print('equality',equality)
class_map = np.all(equality, axis=-1)
semantic_map.append(class_map)
semantic_map = np.stack(semantic_map, axis=-1).astype(np.float32)
return torch.from_numpy(semantic_map)
然后新面具变得与旧面具不同。有人可以请建议吗?我做错了什么?提前致谢。
您可以在 MedSeg 中打开设置菜单(已打开带有掩码的数据)并使用“将掩码值从...更改为...”。以下顺序应该适合您:0 到 5,然后 1 到 0,然后 2 到 1,然后 3 到 2,然后 5 到 3。
类似的事情当然也可以在python中自动完成,例如mask[mask==0]=5,mask[mask==1]=0等等。
我正在尝试解决 Covid-19 CT 扫描分割问题,我尝试使用 MedSeg 免费浏览器内工具 (https://www.medseg.ai/) 为自己分割图像。我想这样做是为了增加我现在有 4 类 的数据集:毛玻璃、实变、肺其他和背景。我发现了一个仅包含带有毛玻璃标签的面具的数据集。我想在其中手动分割其他肺部和背景。但是,这些手动分割的蒙版的通道顺序与我的其他图像不同:
手动分割蒙版:
- 0 - 背景
- 1 - 毛玻璃
- 2 - 整合
- 3 - 肺部其他
合适的口罩:
- 0 - 毛玻璃
- 1 - 整合
- 2 - 肺其他
- 3 - 背景
当我下载准备好的手动分割蒙版时,它的形状是 (41, 512, 512)。下载后我最后加了一维,变成了(41, 512, 512, 1)。比起我将此功能与此调色板 = [[0]、[1]、[2]、[3]](适用于我的旧数据集掩码):
def mask_to_onehot(mask, palette):
"""
Converts a segmentation mask (H, W, C) to (H, W, K) where the last dim is a one
hot encoding vector, C is usually 1 or 3, and K is the number of class.
"""
semantic_map = []
for colour in palette:
#print('colour',colour)
equality = np.equal(mask, colour)
#print('equality',equality)
class_map = np.all(equality, axis=-1)
semantic_map.append(class_map)
semantic_map = np.stack(semantic_map, axis=-1).astype(np.float32)
return torch.from_numpy(semantic_map)
然后新面具变得与旧面具不同。有人可以请建议吗?我做错了什么?提前致谢。
您可以在 MedSeg 中打开设置菜单(已打开带有掩码的数据)并使用“将掩码值从...更改为...”。以下顺序应该适合您:0 到 5,然后 1 到 0,然后 2 到 1,然后 3 到 2,然后 5 到 3。
类似的事情当然也可以在python中自动完成,例如mask[mask==0]=5,mask[mask==1]=0等等。