写点什么

地表建筑物识别 Dayo2

用户头像
Tango
关注
发布于: 2021 年 02 月 23 日

数据扩增方法


常见的方法有:

OpenCV 和 albumentations 两个库

OpeCV

OpenCV 是计算机视觉必备的库,可以很方便的完成数据读取、图像变化、边缘检测和模式识别等任务。为了加深各位对数据可做的影响,这里首先介绍 OpenCV 完成数据扩增的操作。

# 首先读取原始图片img = cv2.imread(train_mask['name'].iloc[0])mask = rle_decode(train_mask['mask'].iloc[0])
plt.figure(figsize=(16, 8))plt.subplot(1, 2, 1)plt.imshow(img)
plt.subplot(1, 2, 2)plt.imshow(mask)

# 垂直翻转plt.figure(figsize=(16, 8))plt.subplot(1, 2, 1)plt.imshow(cv2.flip(img, 0))
plt.subplot(1, 2, 2)plt.imshow(cv2.flip(mask, 0))

# 水平翻转plt.figure(figsize=(16, 8))plt.subplot(1, 2, 1)plt.imshow(cv2.flip(img, 1))
plt.subplot(1, 2, 2)plt.imshow(cv2.flip(mask, 1))

# 随机裁剪x, y = np.random.randint(0, 256), np.random.randint(0, 256)
plt.figure(figsize=(16, 8))plt.subplot(1, 2, 1)plt.imshow(img[x:x+256, y:y+256])
plt.subplot(1, 2, 2)plt.imshow(mask[x:x+256, y:y+256])
复制代码

还有很多其他的方法,这里没有办法全部写完,完整的 OpenCV 后面慢慢更新。

albumentations

它可以对数据集进行逐像素的转换,如模糊、下采样、高斯造点、高斯模糊、动态模糊、RGB 转换、随机雾化等;也可以进行空间转换(同时也会对目标进行转换),如裁剪、翻转、随机裁剪等。

与 OpenCV 相比 albumentations 具有以下优点:

  • albumentations 支持的操作更多,使用更加方便;

  • albumentations 可以与深度学习框架(Keras 或 Pytorch)配合使用;

  • albumentations 支持各种任务(图像分流)的数据扩增操作

import albumentations as A
# 水平翻转augments = A.HorizontalFlip(p=1)(image=img, mask=mask)img_aug, mask_aug = augments['image'], augments['mask']
# 随机裁剪augments = A.RandomCrop(p=1, height=256, width=256)(image=img, mask=mask)img_aug, mask_aug = augments['image'], augments['mask']
# 旋转augments = A.ShiftScaleRotate(p=1)(image=img, mask=mask)img_aug, mask_aug = augments['image'], augments['mask']albumentations还可以组合多个数据扩增操作得到更加复杂的数据扩增操作:
trfm = A.Compose([ A.Resize(256, 256), A.HorizontalFlip(p=0.5), A.VerticalFlip(p=0.5), A.RandomRotate90(),])
augments = trfm(image=img, mask=mask)img_aug, mask_aug = augments['image'], augments['mask']plt.figure(figsize=(16, 8))plt.subplot(1, 2, 1)plt.imshow(augments['image'])
plt.subplot(1, 2, 2)plt.imshow(augments['mask'])
复制代码

这个库平时没有接触过,需要额外的学习一下。


Pytorch 数据读取

平时用的是 TF,接下来还要学习一下它的用法。

用户头像

Tango

关注

一个日语专业的程序猿。 2017.09.10 加入

【坐标】无锡 【元坐标】黑龙江/北极村 【软件技能】Java,C#,Python 【爱好】炉石传说 【B站】https://space.bilibili.com/397260706/ 【个人站】www.it-worker.club

评论

发布
暂无评论
地表建筑物识别 Dayo2