今天进行数据读取与数据扩增。
首先进行图像的读取。在python中有很多库可以进行这类操作,我们现在可以选用pillow库或者OpenCV库。
from PIL import Image
# 导入Pillow库
# 读取图片
im =Image.open('./cat.png')
我们可以尝试对照片进行模糊处理。
from PIL import Image, ImageFilter
im = Image.open('./cat.png')
# 应用模糊滤镜
im2 = im.filter(ImageFilter.BLUR)
im2.save('blur.jpg', 'jpeg')
就可以得到一张模糊的小猫照片
还可以进行缩小的操作。
from PIL import Image
# 打开一个jpg图像文件,注意是当前路径
im = Image.open('./cat.jpg')
im.thumbnail((w//2, h//2))
im.save('thumbnail.jpg', 'jpeg')
说完pillow库,我们可以再尝试一下OpenCV库。它的功能比pillow库强大很多。
比如我们希望得到一张灰度的小猫图案。
import cv2
# 导入Opencv库
img = cv2.imread('./cat.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 转换为灰度图
进行一下边缘检测。
import cv2
# 导入Opencv库
img = cv2.imread('./cat.jpg')
img =cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 转换为灰度图
# Canny边缘检测
edges = cv2.Canny(img, 30, 70)
cv2.imwrite('canny.jpg', edges)
我们还需进行数据扩增操作。
数据扩增方法非常重要,数据扩增可以增加训练集的样本,同时也可以有效缓解模型过拟合的情况,也可以给模型带来的更强的泛化能力。
数据扩增的方法有很多,但要记住,不能够随意扩增。比如应用翻转这一方法时,就要注意到图片上是否有文字和数字,翻转之后就会使得意思发生改变。
常用的数据扩增库有不少,主要用到的有:
1、Torchvision
2、imgaug
3、albumentations
今天就先写到这里啦。