在线时间4067 小时
UID3441752
注册时间2017-11-21
NXP金币754069
TA的每日心情 | 开心 2024-3-26 15:16 |
---|
签到天数: 266 天 [LV.8]以坛为家I
管理员
- 积分
- 32024
- 最后登录
- 2024-4-25
|
使用eIQ Toolkit进行数据增强训练(5)
看过“eIQ Toolkit上手指南”系列推文的同学想必已经了解怎么训练部署模型。
还没看过这个系列的同学,可以先去看看:
eIQ Toolkit上手指南(一)
eIQ Toolkit上手指南(二)
eIQ Toolkit上手指南(三)
eIQ Toolkit上手指南(4)
今天小编来讲讲eIQ Toolkit的另一个强大的功能:图像数据增强。在正式介绍该功能之前,我们先来复习一下数据在机器学**的重要性。
熟悉神经网络的同学都知道,神经网络是由多个计算层也就是算子组合而成,训练模型就是使用数据集,通过反向传播更新算子参数的过程。可以说数据决定了模型的质量,那么其重要性不言而喻。
相信很多同学遇到过模型训练的精度很高,验证结果也不错,可一到实际运行中准确性差了一大截,让人大跌眼镜,重新设计模型提高精准度也无济于事。这一切的原因不是模型结构的问题,而是现实数据和训练数据差别过大,训练后的模型不适应现实情况。
现实中摄像头很容易受到环境干扰:强光照射、光线太弱、还有焦距不同、拍摄角度不同。还有运动状态下焦距不准导致图像模糊,图像变形,图像遮挡不全等等。而训练集中的图像常常是理想状态下的图像,无法覆盖到这些情况。
要解决这些问题就要增强数据集,以引入模拟上述干扰条件下的图像数据。然而通过手动去模拟环境、抓取数据无疑是一个巨大的工作而且很多环境无法模拟,那么就需要引入一个工具,来通过软件模拟的方式对数据集进行增强。
eIQ Portal集成Augmentation Tool,支持常见的干扰模拟。用户可以设置模拟强度、随机性,也可以组合多个增广项混合使用。
详细使用方法如下:
Step 1:打开eIQ工程进入数据集预览界面
Step 2:IMPORT一张图片,点击新增图片进入预览界面,点击AUGMENTATION TOOL按钮进入图像增广界面
Step 3:编辑增广选项,如下图:
NEW按钮新建增广项:New Pipeline
使用ADD添加特效
眼睛图标按钮显示预览效果
Probability表示该特效生效的概率。比如训练集有100张图片,0.5表示其中50张图片添加该特效。
Limit表示特效强度范围参数。
目前支持13种特效:
Save Changes保存配置
Step 4:训练阶段打开增广增强:AUGMENTATION SETTING中选择New Pipeline
Step 5:开始训练。在每一轮训练时,data generator会根据New Pipeline中的选项来给图片增加特效。数据集大小保持不变,在不增加数据集占用空间和模型的训练时间情况下,模型得到了增广的训练数据训练,从而更适应图像中更多干扰和工作条件的变化。
接下来让我们实际验证一下增广的效果。
我们选择一个变化较大的特效:旋转。
新建New Pipeline只选择Rotate一个特效(将旋转的图片保存下来做测试使用):
备注:上图中的数据集来自CIFAR-10。eIQ toolkit已包含导入cifar-10的方法。
第一次训练使用原数据集(CIFAR-10),学习率设置0.001,batch大小为50,decay rate设置0.94训练25轮。得到模型验证精度76%。
用训练完成的模型分别推理原图和旋转后图片,得到的分类类别分别是0(正确)和9(错误):没有经过增广的模型无法识别旋转的飞机图片。
第二次训练基于第一次训练基础上继续训练,设置同样的参数,选择增广选项New Pipeline训练25轮,得到模型精度68%。
从下图所示,由于在New Pipeline中增广概率是1意味所有数据集都会有随机旋转。经过两轮训练后模型参数既有原始图片又包含了旋转后的图片。
用训练完成的模型分别推理原图和旋转后图片,得到结果都是0。基于增广训练的模型很好的识别了两种情况下的飞机图片,模型的鲁棒性更好。
总结一下:各位同学需要根据自己的实际情况来选择和配置增广属性,增广是基于原始数据集的增强不是扩充。
模型训练时要灵活控制增广选项不能一味死操作。如果增广选项对原图干扰过大,一开始训练就增广数据集,会使数据集一下子变难,可能导致模型训练的参数不容易收敛到兼顾各种变化的情况,模型的精度也会下降。
模型可以基于原始数据开始训练,在此基础上继续学习增广的特征值,这样模型参数更容易完整表达所有的数据特征。
|
|