查看: 5905|回复: 3

[分享] 使用eIQ Toolkit进行数据增强训练(5)

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3299

    主题

    6546

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32024
    最后登录
    2024-4-25
    发表于 2022-3-10 09:40:02 | 显示全部楼层 |阅读模式
    使用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:编辑增广选项,如下图:
    14.png
    NEW按钮新建增广项:New Pipeline
    使用ADD添加特效
    眼睛图标按钮显示预览效果
    Probability表示该特效生效的概率。比如训练集有100张图片,0.5表示其中50张图片添加该特效。
    Limit表示特效强度范围参数。
    目前支持13种特效:
    15.png
    Save Changes保存配置

    Step 4:训练阶段打开增广增强:AUGMENTATION SETTING中选择New Pipeline
    16.png
    Step 5:开始训练。在每一轮训练时,data generator会根据New Pipeline中的选项来给图片增加特效。数据集大小保持不变,在不增加数据集占用空间和模型的训练时间情况下,模型得到了增广的训练数据训练,从而更适应图像中更多干扰和工作条件的变化。

    接下来让我们实际验证一下增广的效果。
    我们选择一个变化较大的特效:旋转。

    新建New Pipeline只选择Rotate一个特效(将旋转的图片保存下来做测试使用):
    17.png
    备注:上图中的数据集来自CIFAR-10。eIQ toolkit已包含导入cifar-10的方法。

    第一次训练使用原数据集(CIFAR-10),学习率设置0.001,batch大小为50,decay rate设置0.94训练25轮。得到模型验证精度76%。

    用训练完成的模型分别推理原图和旋转后图片,得到的分类类别分别是0(正确)和9(错误):没有经过增广的模型无法识别旋转的飞机图片。
    18.png
    第二次训练基于第一次训练基础上继续训练,设置同样的参数,选择增广选项New Pipeline训练25轮,得到模型精度68%。

    从下图所示,由于在New Pipeline中增广概率是1意味所有数据集都会有随机旋转。经过两轮训练后模型参数既有原始图片又包含了旋转后的图片。
    19.png
    用训练完成的模型分别推理原图和旋转后图片,得到结果都是0。基于增广训练的模型很好的识别了两种情况下的飞机图片,模型的鲁棒性更好。
    20.png
    总结一下:各位同学需要根据自己的实际情况来选择和配置增广属性,增广是基于原始数据集的增强不是扩充。
    模型训练时要灵活控制增广选项不能一味死操作。如果增广选项对原图干扰过大,一开始训练就增广数据集,会使数据集一下子变难,可能导致模型训练的参数不容易收敛到兼顾各种变化的情况,模型的精度也会下降。

    模型可以基于原始数据开始训练,在此基础上继续学习增广的特征值,这样模型参数更容易完整表达所有的数据特征。









    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-7-4 21:47
  • 签到天数: 165 天

    [LV.7]常住居民III

    1

    主题

    410

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    1335
    最后登录
    2024-2-29
    发表于 2022-9-30 20:34:03 | 显示全部楼层
    请问训练模型时报错怎么解决啊,我用的win11系统
    Snipaste_2022-09-30_20-33-01.png
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    8
    最后登录
    2023-11-17
    发表于 2023-11-16 17:39:52 | 显示全部楼层
    博主可以出训练对象检测模型教程?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    8
    最后登录
    2023-11-17
    发表于 2023-11-16 18:45:26 | 显示全部楼层
    博主有没有遇到过导出模型后使用tensorflow lite 中报错Input tensor has type kTfLiteFloat32: it requires specifying NormalizationOptions metadata to preprocess input images. 是不是EIQ导出的检测模型没有设置元数据信息?如果是应该在哪里设置元数据信息?
            
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-26 03:15 , Processed in 0.126012 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表