Datawhale 零基础入门CV赛事-Task2 数据读取与数据扩增

数据读取与数据扩增

1、图像读取
在本赛题中,我们主要使用openCV,OpenCV是一个跨平台的计算机视觉库,最早由Intel开源得来。OpenCV发展的非常早,拥有众多的计算机视觉、数字图像处理和机器视觉等功能。


```python
img=cv2.imread('mchar_train/000003.png')
img=cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

``

2、Pytorch读取数据
在Pytorch中数据是通过Dataset进行封装,并通过DataLoder进行并行读取。

由于作者不懂Dataset和DataLoder的结构,先花了一天学习了基础教程。下面是一个Dataset的基础结构。

import torch
from torch.utils.data import Dataset#Dataset是抽象的类
from torch.utils.data import DataLoader#可实例化
class DiabetesDataset(Dataset):
    def __init__(self):
        pass#索引和路径
    def __getitem__(self, index):#下标
        pass
    def __len__(self):#使用len
        pass

dataset = DiabetesDataset()

train_loader = DataLoader(dataset=dataset,
                          batch_size=32,
                          shuffle=True,
                          num_workers=2)#2条线并行

if _name_=='_main_':
    for epoch in range(100):
        for i,data in enumerate(train_loader,0):
            #

明白了简单框架的原理后,再去解读后面的数据扩增就容易一些了。

3、数据扩增的步骤

data = SVHNDataset(train_path, train_label,
          transforms.Compose([
              # 缩放到固定尺寸
              transforms.Resize((64, 128)),

              # 随机颜色变换
              transforms.ColorJitter(0.2, 0.2, 0.2),

              # 加入随机旋转
              transforms.RandomRotation(5),

              # 将图片转换为pytorch 的tesntor
              # transforms.ToTensor(),

              # 对图像像素进行归一化
              # transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225])
            ]))

其他方式:
transforms.CenterCrop 对图片中心进行裁剪
transforms.ColorJitter 对图像颜色的对比度、饱和度和零度进行变换
transforms.FiveCrop 对图像四个角和中心进行裁剪得到五分图像
transforms.Grayscale 对图像进行灰度变换
transforms.Pad 使用固定值进行像素填充
transforms.RandomAffine 随机仿射变换
transforms.RandomCrop 随机区域裁剪
transforms.RandomHorizontalFlip 随机水平翻转
transforms.RandomRotation 随机旋转
transforms.RandomVerticalFlip 随机垂直翻转

你可能感兴趣的:(CV入门学习记录,opencv)