AI达人创造营:数据获取与处理(以CV任务为主)
课程目的
1. 数据的获取途径
2. 数据处理与标注
3. 数据预处理方法
4. 模型训练评估
一、数据的获取
1. 主要有kaggle、天池、Aistudio平台,讯飞比赛等竞赛平台或开源社区。
2. 此外,还有Imagenet,coco等公开数据集官网。
3. 深度学习与人工智能相关的论文文献所涉及的数据集,可以通过观看文献等查找。
二、数据处理与标注
2.1 图片数据获取
2.2 图片数据清洗
----初步了解数据,筛选掉不合适的图片
2.3 图片数据标注
2.4图片数据预处理data preprocessing。
----标准化 standardlization
一 中心化 = 去均值 mean normallization
一 将各个维度中心化到0
一 目的是加快收敛速度,在某些激活函数上表现更好
一 归一化 = 除以标准差
一 将各个维度的方差标准化处于[-1,1]之间
一 目的是提高收敛效率,统一不同输入范围的数据对于模型学习的影响,映射到激活函数有效梯度的值域
2.5 图片数据准备data preparation(训练+测试阶段)
----划分训练集,验证集,以及测试集
2.6 图片数据增强data augjmentation(训练阶段 )
----CV常见的数据增强
· 随机旋转
· 随机水平或者重直翻转
· 缩放
· 剪裁
· 平移
· 调整亮度、对比度、饱和度、色差等等
· 注入噪声
· 基于生成对抗网络GAN做数搪增强AutoAugment等
图 1 去中心化和归一化结果
三、数据的处理与标准
3.1 数据标注 Labelimg,Labelme,ppocr等标注软件。
3.2 数据格式 VOC数据集格式 COCO数据集格式 VOC与COCO数据集格式之间的转换
COCO数据集格式样例:
COCO_2017/ ├── val2017 # 总的验证集 ├── train2017 # 总的训练集 ├── annotations # COCO标注 │ ├── instances_train2017.json # object instances(目标实例) ---目标实例的训练集标注 │ ├── instances_val2017.json # object instances(目标实例) ---目标实例的验证集标注 │ ├── person_keypoints_train2017.json # object keypoints(目标上的关键点) ---关键点检测的训练集标注 │ ├── person_keypoints_val2017.json # object keypoints(目标上的关键点) ---关键点检测的验证集标注 │ ├── captions_train2017.json # image captions(看图说话) ---看图说话的训练集标注 │ ├── captions_val2017.json # image captions(看图说话) ---看图说话的验证集标注
VOC数据集格式样例:
VOC_2017/ ├── Annotations # 每张图片相关的标注信息,xml格式 ├── ImageSets │ ├── Main # 各个类别所在图片的文件名 ├── JPEGImages # 包括训练验证测试用到的所有图片 ├── label_list.txt # 标签的类别数 ├── train_val.txt #训练集 ├── val.txt # 验证集
四、数据集制作
将自己的数据集通过数据标注软件Labelimg,Labelme,ppocr等进行标注。
五、数据处理
5.1 数据的本质
位图
由像素点定义一放大会糊
文件体积较大
色彩表现丰富逼真
矢量图的特点:
超矢量定义
放太不模糊
文件体积较小
表现力差
5.2 数据增强的本质
是因为很多深度学习的模型复杂度太高了,且在数据量少的情况下,比较容易造成过拟合(通俗来说就是训练的这个模型它太沉浸在这个训练样本当中的一些特质上面了),表现为的这个模型呢受到了很多无关因素的影响。 所得出的结果就是在没有看到过的样本上对它做出预测呢就表现的不太好。
六、模型的训练与评估
后续结合超参数调优再作详细介绍。
图 2