【CV实践】之零基础入门语义分割---Task2数据增强

参加本次活动的目标:通过本次赛题可以引导大家熟练掌握语义分割任务的定义具体的解题流程和相应的模型并掌握语义分割任务的发展

0x10:学习目标

  • 理解基础的数据扩增方法
  • 学习OpenCV 和 albumentations 完成数据扩增
  • Pytorch 完成赛题读取

0x20:常见的数据扩增方法

数据扩增是一种有效的正则化方法,可以防止模型过拟合。
数据扩增的目的是增加数据集钟样本的数据量,同时可以有效增加样本的语义空间。

注意:数据扩增方法需要与具体任何相结合,同时要考虑到标签的变化

对于图像分类,数据扩增可以分为两类:
标签不变的,数据变化之后图像类别不变。
标签变化的,数据变换之后图像类别变化。

对于语义分割而言,一般的数据扩增方法都会改变图像的标签。如:水平翻转(VerticalFlip),垂直翻转(HorizontalFlip),随机旋转n个90度(RandomRotate90)。

0x30:OpenCV数据扩增

0x40:albumentations 数据扩增

与OpenCV相比albumentation具有以下优点:
albumentation支持的操作更多,使用更加方便
albumentation可以和深度学习框架Pytorch配合使用
albumentation支持各种任务(图像分流)的数据扩增操作

albumentations库函数介绍

0x50:Pytorch 数据读取

使用Pytorch读取赛题数据。
在Pytorch钟数据是通过Dataset进行封装,并通过DataLoder进行并行读取。
我们只需重载以下数据读取的逻辑就可以完成数据的读取。

Dataset:数据集,对数据进行读取并进行数据扩增
DataLoder:数据读取器,对Dataset进行封装并进行批量读取。

0x60:课后作业

# 首先读取原始图片
img = cv2.imread(train_mask[’name’].iloc[0])
mask = rle_decode(train_mask[’mask’].iloc[0])



trmf = A.Compose([
	# 翻转
	A.Flip(p=0.5),
	#加噪声
     A.ISONoise(p=0.5),
     A.GaussNoise(p=0.5),
])

猜你喜欢

转载自blog.csdn.net/qq_45914759/article/details/114002970
今日推荐