DataWhale 零基础入门语义分割-地表建筑物识别-Task2

本文是DataWhale零基础入门语义分割系列的第二部分,主要讲解数据扩增在地表建筑物识别任务中的应用。内容涵盖数据扩增的重要性,使用OpenCV进行图像翻转和裁剪,利用albumentations库进行复杂的数据增强,以及PyTorch数据集的定义和实例化。

DataWhale 零基础入门语义分割-地表建筑物识别-Task2


数据扩增

对语义分割任务中常见的数据扩增方法进行介绍,并使用OpenCV 和albumentations 两个库完成具体的数据扩增操作。
主要内容为数据扩增方法、OpenCV 数据扩增、albumentations 数据扩增和Pytorch 读取赛题数据四个部分组成。


一、数据扩增方法

数据扩增是一种有效的正则化方法,可以防止模型过拟合,在深度学习模型的训练过程中应用广泛。
数据扩增的目的是增加数据集中样本的数据量,同时也可以有效增加样本的语义空间。
需注意:

  1. 不同的数据,拥有不同的数据扩增方法;
  2. 数据扩增方法需要考虑合理性,不要随意使用;
  3. 数据扩增方法需要与具体任何相结合,同时要考虑到标签的变化;

对于图像分类,数据扩增方法可以分为两类:

  1. 标签不变的数据扩增方法:数据变换之后图像类别不变;
  2. 标签变化的数据扩增方法:数据变换之后图像类别变化;
    而对于语义分割而言,常规的数据扩增方法都会改变图像的标签。如水平翻转、垂直翻转、旋转90

二、OpenCV 数据扩增

1.读取原始数据

代码如下:

img = cv2.imread(train_mask[’name’].iloc[0])
mask = rle_decode(train_mask[’mask’].iloc[0])

2.使用OpenCv进行翻转

代码如下:

'''
filename 是文件名称;filecode是进行的操作
filecode = 1 水平翻转
filecode = 0 垂直翻转
filecode = -1 水平垂直翻转
'''
cv2.flip(filename, filecode)

3.对图像进行随机裁剪

代码如下(以256*256为例):

x, y = np.random.randint(0, 256), np.random.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值