(4)图像增强

torchvision.transforms包括很多图像增强的方法

(1)Scale 对图像尺寸进行缩小和放大

(2)CenterCrop 对图像正中心进行给定大小的裁剪

(3)RandomCrop 对图像进行给定大小的随机裁剪

(4)RandomHorizaontalFlip 对图像做概率为0.5的随机水平翻转

(5)RandomSizedCrop 对图片进行随机尺寸的裁剪 最后缩放到统一大小

(6) Pad  对边界进行0填充

相关 代码  



           if transforms is None:

            #这里的参数是预训练模型中的参数

            normalize = T.Normalize(mean = [0.485, 0.456, 0.406], 

                                     std = [0.229, 0.224, 0.225])

            if  self.test or not train:

                self.transforms = T.Compose([#将多个transform组合起来使用。

                    T.Scale(224),#将输入的`PIL.Image`重新改变大小成给定的`size`,`size`是最小边的边长。举个例子,如果原图的`height>width`,那么改变大小后的图片大小是`(size*height/width, size)`。

                    T.CenterCrop(224),#将给定的PIL.Image进行中心切割,得到给定的size,size可以是tuple,(target_height, target_width)。size也可以是一个Integer,在这种情况下,切出来的图片的形状是正方形。

                    T.ToTensor(),

                    normalize

                    ])

            else :

                self.transforms = T.Compose([

                    T.Scale(256),

                    T.RandomSizedCrop(224),#先将给定的PIL.Image随机切,然后再resize成给定的size大小。

                    T.RandomHorizontalFlip(),#随机水平翻转给定的PIL.Image,概率为0.5。即:一半的概率翻转,一半的概率不翻转。

                    T.ToTensor(),#把一个取值范围是[0,255]的PIL.Image或者shape为(H,W,C)的numpy.ndarray,转换成形状为[C,H,W],取值范围是[0,1.0]的torch.FloadTensor,#将PIL的图片类型转换成tensor,这样pytorch才可以对其做处理#取值在0-1之间这样可以使得输入的分布变化不是太大,影响学习

                    normalize#给定均值:(R,G,B) 方差:(R,G,B),将会把Tensor biaozhunhua。即:Normalized_image=(image-mean)/std。

                    ])



你可能感兴趣的:((4)图像增强)