在 Pytorch 中,如何对这样的灰度图像进行 one-hot 编码以进行语义分割?
pytorch 182
原文标题 :In Pytorch, how to one-hot encode a grayscale image like this for semantic segmentation?
我使用预训练的 DeeplabV3 模型进行图像分割,它给了我一个形状为 BxCxWxH 的输出,其中 B=batch size,C=number of classes,W=Width 和 H=Height。如果我采用 depth-wise argmax这个输出图像,我得到一个 WxH 结果,其中每个像素代表一个类。对于这个输出图像,我有一个灰度图像作为标签,具有 WxH 形状。但是,灰度标签图像中的像素值不在范围内0 到类数,但是在 0.0xx 到 0.2,所以我不能用它来计算损失。要做到这一点,我必须对标签图像进行 one-hot 编码,但我不知道该怎么做它。
例如,标签图像具有以下值:
tensor([[[0.0824, 0.0824, 0.0824, ..., 0.0431, 0.0431, 0.0317],
[0.0824, 0.0824, 0.0824, ..., 0.0431, 0.0431, 0.0317],
[0.0824, 0.0824, 0.0824, ..., 0.0431, 0.0431, 0.0317],
...,
[0.0275, 0.0275, 0.0275, ..., 0.0275, 0.0275, 0.0317],
[0.0275, 0.0275, 0.0275, ..., 0.0275, 0.0275, 0.0317],
[0.0275, 0.0275, 0.0275, ..., 0.0275, 0.0275, 0.0317]]])
具有 14152 个唯一像素值。图像大小为 1024×1024。我怎样才能对这个图像进行一次热编码?
数据集是 KITTI 语义像素级别。