数据集的获取和处理
收藏
一、数据集的获取
1、百度AI Studio(https://aistudio.baidu.com/aistudio/index) 进入飞桨官网,点击“数据集”,然后进行寻找。
2、kaggle(https://www.kaggle.com/)
4、DataFountain(https://www.datafountain.cn/)
7、图像处理完整流程
图片数据获取
图片数据清洗
----初步了解数据,筛选掉不合适的图片
图片数据标注
图片数据预处理data preprocessing。
----标准化 standardlization
一 中心化 = 去均值 mean normallization
一 将各个维度中心化到0
一 目的是加快收敛速度,在某些激活函数上表现更好
一 归一化 = 除以标准差
一 将各个维度的方差标准化处于[-1,1]之间
一 目的是提高收敛效率,统一不同输入范围的数据对于模型学习的影响,映射到激活函数有效梯度的值域
图片数据准备data preparation(训练+测试阶段)
----划分训练集,验证集,以及测试集
图片数据增强data augjmentation(训练阶段 )
----CV常见的数据增强
· 随机旋转
· 随机水平或者重直翻转
· 缩放
· 剪裁
· 平移
· 调整亮度、对比度、饱和度、色差等等
· 注入噪声
· 基于生成对抗网络GAN做数搪增强AutoAugment等
图片数据获取
图片数据清洗
----初步了解数据,筛选掉不合适的图片
图片数据标注
图片数据预处理data preprocessing。
----标准化 standardlization
一 中心化 = 去均值 mean normallization
一 将各个维度中心化到0
一 目的是加快收敛速度,在某些激活函数上表现更好
一 归一化 = 除以标准差
一 将各个维度的方差标准化处于[-1,1]之间
一 目的是提高收敛效率,统一不同输入范围的数据对于模型学习的影响,映射到激活函数有效梯度的值域
图片数据准备data preparation(训练+测试阶段)
----划分训练集,验证集,以及测试集
图片数据增强data augjmentation(训练阶段 )
----CV常见的数据增强
· 随机旋转
· 随机水平或者重直翻转
· 缩放
· 剪裁
· 平移
· 调整亮度、对比度、饱和度、色差等等
· 注入噪声
· 基于生成对抗网络GAN做数搪增强AutoAugment等
三、数据处理方法
3.1 图像的本质
我们常见的图片其实分为两种,一种叫位图,另一种叫做矢量图。如下图所示:
位图的特点:
由像素点定义一放大会糊
文件体积较大
色彩表现丰富逼真
矢量图的特点:
超矢量定义
放太不模糊
文件体积较小
表现力差
In [3]
%cd /home/aistudio/work/PaddleDetection
In [4]
import paddle
import paddlex as pdx
import numpy as np
import paddle.nn as nn
import paddle.nn.functional as F
import PIL.Image as Image
import cv2
import os
from random import shuffle
from paddlex.det import transforms as T
from PIL import Image, ImageFilter, ImageEnhance
In [29]
import matplotlib.pyplot as plt # plt 用于显示图片
path='dataset/MaskCOCOData/JPEGImages/maksssksksss195.png'
img = Image.open(path)
plt.imshow(img) #根据数组绘制图像
plt.show() #显示图像
# 灰度图
img = np.array(Image.open(path).convert('L'), 'f')
plt.imshow(img,cmap="gray") #根据数组绘制图像
plt.show() #显示图像
#小Tips:jupyter notebook中plt显示灰度图异常,需要使用plt.imshow(gray,cmap="gray")方法正常显示灰度图。
In [31]
#原图
img = cv2.imread(path)
plt.subplot(221)
plt.imshow(img,cmap="gray")
# matplotlib 按照RGB顺序展示原图
plt.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))
plt.subplot(222)
plt.imshow(img)
plt.subplot(223)
plt.imshow(cv2.resize(img, (32, 32)))
In [ ]
#图像处理示例 目标视野里比较多重叠,或者有点模糊的适用
path='dataset/MaskCOCOData/JPEGImages/maksssksksss443.png'
img = Image.open(path)
plt.imshow(img)
plt.show()
#锐化
img = img.filter(ImageFilter.SHARPEN)
img = img.filter(ImageFilter.SHARPEN)
plt.imshow(img)
plt.show()
#亮度变换
bright_enhancer = ImageEnhance.Brightness(img) # 传入调整系数亮度
img = bright_enhancer.enhance(1.6)
plt.imshow(img)
plt.show()
#提高对比度
contrast_enhancer = ImageEnhance.Contrast(img) # 传入调整系数对比度
img = contrast_enhancer.enhance(1.9)
plt.imshow(img)
plt.show()
0
收藏
请登录后评论