分类图像可以resize,分割图像真的不行的原因

1.2.3 数据预处理

在语义分割中,我们一般是将图像裁剪为固定尺寸(使用图像增广中的随机裁剪transforms.RandomCrop,裁剪输入图像和标签(图片)的相同区域)
之所以要RandomCrop裁剪是因为图片大小不一样。图片分类中我们可以把图片resize到统一大小。但是语义分割的标签是包含一个个像素的标签的,resize之后需要将预测的像素类别重新映射回原始尺寸的输入图像。 这样的映射可能不够精确,尤其在不同语义的分割区域。(resize拉伸的时候中间多的像素是通过插值法插进去的。而标号是不好插值的,飞机中间拉伸的标粉红色还是啥都不好操作,所以语义分割的图像不用resize)

#@save
def voc_rand_crop(feature, label, height, width):
    """随机裁剪特征feature和标签图像label"""
    
    """
    get_params允许裁剪之后的区域返回边框的坐标数值(边界框)
    *rect就是把边界框四个坐标展开,这样对图片和标号做同样的裁剪
	"""
    rect = torchvision.transforms.RandomCrop.get_params(
        feature, (height, width))
    feature = torchvision.transforms.functional.crop(feature, *rect)
    label = torchvision.transforms.functional.crop(label, *rect)
    return feature, label

imgs = []
for _ in range(n):
	#随机裁剪出200*300的区域
    imgs += voc_rand_crop(train_features[0], train_labels[0], 200, 300)

imgs = [img.permute(1, 2, 0) for img in imgs]
d2l.show_images(imgs[::2] + imgs[1::2], 2, n);

原文链接:https://blog.csdn.net/qq_56591814/article/details/124934701

你可能感兴趣的:(分类,python,数据挖掘)