对于每个图像,我都有一个二进制蒙版,每个蒙版像素的值都为0或255。现在,由于我的图像分割需要固定大小的图像,因此必须调整图像和蒙版的大小。但是,当我调整图像大小时,蒙版中会有一些值大于0但小于255的地方。我怎么知道要保留哪个?因为库要求只有0或255。请帮助我,非常感谢。
答案 0 :(得分:2)
如果要调整图像大小并希望结果图像仅具有原始范围内的值,则可以使用最近邻插值。
答案 1 :(得分:0)
如果您使用除最近邻以外的插值调整大小,您确实会得到 [0, 255] 范围内的值。这不一定是坏事。如果您的损失函数是交叉熵,您可以将这些值视为“软标签”。也就是说,该像素没有对任何目标进行“硬”分配,而是对两者进行“软”、概率分配。
将其推广到多标签分割掩码,以及更复杂的几何增强(例如,旋转、仿射等)。问题是
如何正确地将增强应用于离散目标图像?
例如,您有一个包含 81 个类别的语义分割掩码(即,每个像素在 {0, 1, ..., 80}
中都有值指示该像素的类别。
这些目标掩码存储为 indexed RGB images。
您想对输入图像和目标掩码应用一些几何增强。
“快速而肮脏”的方法是使用最近邻插值,如 Amitay Nachmani 所提议的那样。
更“准确”和“正确”的方法是将目标掩码从 HxW
离散(整数)掩码转换为 CxHxW
概率图:即,每个通道将对应每个像素属于81个类别中的每个类别的概率。
请注意,这不是预测的分割(网络的输出),而是网络应该预测的目标。通过这种方式,您可以将每个目标像素表示为 1-hot 81-dim 向量。
通过这种表示,您可以使用与用于输入图像本身(通常是双三次)的相同的插值方法将增强分别应用于每个通道。
现在,对于每个目标像素,它属于 81 个类别中的每一个的概率,这些向量不再是 1-hot(由于插值和变换)。您可以使用 argmax
将此地图转换回每像素类的硬分配,或修改损失函数以使用这些软标签以更好地捕获图像中不同区域之间的边界.