任务简介
数据读取与数据扩增
学习目标
1、学习Python和Pytorch中的图像读取
2、学会增广方法和Pytorch读取赛题数据
数据读取
图像读取
1、Pillow(可参考廖雪峰的教程中的介绍)
2、OpenCV
开源计算机视觉库(Open Source Computer Vision Library)
解释:是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上
优点:执行速度快,有很多图像相关的操作,内置图像特征处理算法(如:关键点检测,边缘检测,直线检测)后期再深入了解
数据扩增方法
个人理解
数据量通常都很有限,这样的情况下我们需要想办法使数据量增多,这样的方法称之为数据扩增方法。相当于对数据做一些大小,颜色,角度等等的改变,在不改变性质的情况下使得图像数据变多
(类似是在模拟生活中物体的颜色不同,看物体的角度不同等情况)
常见的数据扩增方法
- transforms.CenterCrop 对图片中心进行裁剪
- transforms.ColorJitter 对图像颜色的对比度、饱和度和亮度进行变换
- transforms.FiveCrop 对图像四个角和中心进行裁剪得到五分图
- transforms.Grayscale 对图像进行灰度变换
- transforms.Pad 使用固定值进行像素填充
- transforms.RandomAffine 随机仿射变换
- transforms.RandomCrop 随机区域裁剪
- transforms.RandomHorizontalFlip 随机水平翻转
- transforms.RandomRotation随机旋转
- transforms.RandomVerticalFlip 随机垂直翻转
注意:类似数据9和6,旋转和转置会改变数值,不可以的
常用的数据扩增库
torchvision
pytorch官方提供的数据扩增库,提供了基本的数据数据扩增方法,可以无缝与torch进行集成;但数据扩增方法种类较少,且速度中等;
imgaug
imgaug是常用的第三方数据扩增库,提供了多样的数据扩增方法,且组合起来非常方 便,速度较快;
albumentations
是常用的第三方数据扩增库,提 供了多样的数据扩增方法,对图像分类、语义分割、物体检测和关键点检测都支持,速度较快。 albumentations 是我个人比较喜欢的,也是用的次数最多的。
Pytorch读取赛题数据
在Pytorch中数据是通过Dataset进行封装的,并通过DataLoder进行并读取
Dataset是一个包装类,用来将数据包装为Dataset类,然后传入DataLoader中,我们再使用DataLoader这个类来更加快捷的对数据进行操作。
DataLoader是一个比较重要的类,它为我们提供的常用操作有:batch_size(每个batch的大小), shuffle(是否进行shuffle操作), num_workers(加载数据的时候使用几个子进程)
以上原文链接