当前位置: 首页 > news >正文

【ML】Image Augmentation)的作用、使用方法及其分类

图像增强(Image Augmentation)的作用、使用方法及其分类

      • 1. 图像增强的定义
      • 2. 图像增强的作用
      • 3. 什么时候使用图像增强?
      • 4. 图像增强详细方法分类梳理
      • 4.1 图像增强方法列表
      • 4.2 边界框增强方法
      • 5. 参考资料

  1. yolov3(一:模型训练)
  2. yolov3(二:车牌识别)
  3. yolov3(四:车牌识别及算法解析)

1. 图像增强的定义

图像增强(Image Augmentation)是一种技术,它通过对原始图像进行各种变换或操作,生成新的图像数据。这些变换包括旋转、翻转、裁剪、调节亮度、添加噪声等。图像增强主要用于扩充训练数据集,以提高机器学习模型的鲁棒性和泛化能力

2. 图像增强的作用

  1. 扩充数据集:在数据有限的情况下,图像增强可以人为增加数据量,生成更多的训练样本,从而避免模型过拟合。

  2. 提高模型鲁棒性:通过对图像进行不同形式的变换,可以让模型学习到更具多样性的特征,从而提高模型在面对未知数据时的表现。例如,旋转、翻转可以让模型更好地应对不同的视角变化。

  3. 模拟真实场景:图像增强技术可以模拟现实世界中可能出现的各种情况,如光照变化、噪声干扰、模糊等,增强模型的实用性。

  4. 防止过拟合:在训练模型时,过拟合是一个常见问题,特别是在数据集较小的情况下。通过图像增强,可以有效地降低模型对特定样本的依赖性,提升模型的泛化能力。

3. 什么时候使用图像增强?

  1. 数据集较小:当训练数据不足时,图像增强是扩充数据量的有效方法。

  2. 模型过拟合:如果模型在训练集上表现很好,但在验证集或测试集上表现较差,图像增强可以帮助缓解过拟合问题。

  3. 多样性不足:当数据集中的样本具有较大相似性,或缺乏不同环境、不同条件下的样本时,图像增强可以增加数据的多样性。

  4. 应用场景复杂:当模型应用于复杂或多变的场景时,通过图像增强可以提前模拟这些变化,提高模型的适应能力。

总的来说,图像增强是提升模型性能的重要手段,特别是在数据有限或需要面对复杂场景时尤为有用。
在这里插入图片描述

4. 图像增强详细方法分类梳理

4.1 图像增强方法列表

增强方法详细说明特点
Flip将图像水平翻转或垂直翻转,使图像左右或上下颠倒。对称性增强,避免模型依赖方向信息。
90° Rotate将图像按90度、180度或270度旋转。增强模型对不同旋转角度的鲁棒性。
Crop裁剪图像的某一部分以生成一个新的子图像。关注特定区域,防止模型对背景信息的依赖。
Rotation任意角度旋转图像而不是90度的倍数。提供多样化的视角,增强模型对不同角度的适应性。
Shear对图像进行倾斜变换,将图像的形状进行拉伸或扭曲。增强模型对几何变形的鲁棒性。
Grayscale将图像转换为灰度图像,仅保留亮度信息。去除颜色信息,关注亮度和形状特征。
Hue改变图像的色调,调整图像的整体颜色。模拟不同的光照条件,增强模型对颜色变化的适应性。
Saturation调整图像的饱和度,使颜色更加鲜艳或更加黯淡。增强模型对颜色强度变化的鲁棒性。
Exposure调整图像的曝光度,使图像变得更亮或更暗。增强模型对不同光照条件的适应性。
Blur对图像应用模糊滤镜,降低图像的清晰度。模拟相机对焦不准确的情况,增强模型的鲁棒性。
Noise向图像中添加随机噪声,如高斯噪声或椒盐噪声。增强模型对噪声的鲁棒性,模拟传感器噪声或压缩失真。
Cutout在图像上随机遮挡一个或多个区域,用纯黑色或其他颜色填充遮挡区域。使模型更关注整体特征,避免过度依赖某一特定区域。
Mosaic将多个图像组合在一起生成一个新图像,通常将图像分成不同的区域,然后重新排列。提供更多样的训练样本,增加模型的泛化能力。

4.2 边界框增强方法

增强方法详细说明特点
Flip对图像中的边界框进行水平或垂直翻转。保持目标物体的定位不变,但方向改变。
90° Rotate将包含边界框的图像旋转90度。增强模型对不同旋转角度的目标检测能力。
Crop裁剪图像和相应的边界框。可以生成更加局部的检测目标,防止模型依赖背景信息。
Rotation任意角度旋转图像中的目标和边界框。增加检测目标的多样性和角度变化的适应性。
Shear对图像及其边界框进行剪切变换。提供对变形目标的检测能力,增强模型的几何鲁棒性。
Brightness调整图像的亮度,同时对边界框不产生影响。增强模型在不同光照条件下的目标检测能力。
Exposure调整图像的曝光度,处理高曝光或低曝光图像中的目标检测。增强模型对不同曝光条件的目标检测能力。
Blur对图像进行模糊处理,目标仍然被边界框标记。模拟相机对焦不准的情况,增强模型的鲁棒性。
Noise向图像中添加随机噪声,仍保持边界框标注的准确性。增强模型在噪声环境下的目标检测能力。

这些增强方法有助于在图像分类、目标检测等任务中生成更多样化的训练样本,增强模型的鲁棒性和泛化能力。

5. 参考资料

  1. Introducing Bounding Box Level Augmentations

相关文章:

【ML】Image Augmentation)的作用、使用方法及其分类

图像增强(Image Augmentation)的作用、使用方法及其分类 1. 图像增强的定义2. 图像增强的作用3. 什么时候使用图像增强?4. 图像增强详细方法分类梳理4.1 图像增强方法列表4.2 边界框增强方法5. 参考资料 yolov3(一:模型…...

设计模式六大原则(一)--单一职责原则

1. 简介 1.1. 概述 一个类或模块应该只负责完成一项任务或承担一个责任。如果一个类或模块承担了多个职责,那么当需要修改其中一个职责的功能时,就可能会对其他职责产生影响,从而导致代码耦合度增加,维护起来更加困难。 1.2. 主要特点 单一职责原则(Single Responsibi…...

c语言学习,malloc()函数分析

1:malloc() 函数说明: 申请配置size大小内存空间 2:函数原型: void *malloc(size_t size) 3:函数参数: 参数size,为申请内存大小 4:返回值: 配置成功则返回指针&#…...

【运维项目经历|041】上云项目-物理机迁移到阿里云

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 ​ 🏅阿里云ACE认证高级工程师 ​ 🏅阿里云开发者社区专家博主 💊交流社区:CSDN云计算交流社区欢迎您的加入! 目录 项目名称 项目背景 项目目标 项…...

分组并合并其它列的非空值 --Excel难题#83

Excel第1列是分类,第2-42列是平行的多个数据项列,下表用部分列示例。数据有X或null两种情况,同一个分类的同一列数据偶尔有重复。 ABCDE1IDCriteria1Criteria2Criteria3Criteria42FirstValueX3FirstValueX4FirstValueX5FirstValueX6SecondVa…...

VM相关配置及docker

NAT——VMnet8网卡 桥接——WLAN/网线 仅主机——VMnet1网卡 docker与虚拟机的区别 启动docker服务 systemctl start docker 重启 systemctl start docker关闭docker服务 systemctl stop docker.servicedocker的两大概念 镜像:images,应用程序的静态文…...

Redis中Set数据类型常用命令

目录 1. 添加元素 2. 移除元素 3. 检查成员是否存在 4. 获取集合成员 5. 获取集合成员数量 6. 随机获取集合中的一个成员 7. 集合运算 8. 集合的移值 9. 提供集合的随机元素 在Redis中,Set是一种无序且不重复的字符串集合。 1. 添加元素 SADD key member [member ..…...

mysql误删数据恢复记录

背景 1、数据库版本 5.7.36,由于误操作删掉了表的所有数据,但是数据库备份每天凌晨进行、只能从备份恢复昨日的全量数据,当日的数据将会丢失 查看binlog配置 binlog配置 [mysqld] #设置日志三种格式:STATEMENT、ROW、MIXED 。 bi…...

论文阅读:Real-time Controllable Denoising for Image and Video

这篇文章是 CVPR 2023 的一篇文章,探讨了在图像与视频降噪中,如何实时控制降噪强度的问题。 Abstract 图像或者视频降噪,是在细节与平滑度之间的一个微妙的平衡,因为噪声与细节都属于高频信息,降噪在去除噪声的同时&…...

【Kubernetes】虚拟 IP 与 Service 的代理模式

虚拟 IP 与 Service 的代理模式 1.userspace 代理模式2.iptables 代理模式3.IPVS 代理模式 由于 Service 的默认发布类型是 ClusterlP,因此也可以把 ClusterIP 地址叫作 虚拟 IP 地址。在 Kubernetes 创建 Service 时,每个节点上运行的 kube-proxy 会自动…...

深度学习·Pytorch

以下代码源自李沐 自定义模块类 继承module类 继承nn.Module重写构造函数前向传播 class MLP(nn.Module):# 用模型参数声明层。这里,我们声明两个全连接的层def __init__(self):# 调用MLP的父类Module的构造函数来执行必要的初始化。# 这样,在类实例…...

fastzdp_sqlmodel新增get_first和is_exitsts方法

说明 经过fastzdp_login的整合,我们发现,fastzdp_sqlmodel还可以继续封装两个便捷的方法。 get_first:获取查询结果集中的第一条数据is_exitsts:判断数据是否已存在 封装get_first方法 def get_first(engine, model, query_di…...

嵌入式软件--数电基础 DAY 3

一、二进制 (1)文字表述 二进制数只能取0,1两个数字,逢二进一。 通过二进制表达文字。如战争时代的电报。 通过电灯泡的亮灭传递出信息。可以对灯亮和灯灭富裕一些含义,就能传达出想要的消息。 这就是编码和解码两…...

【生成式人工智能-十五-经典的影像生成方法-GAN】

经典的影像生成方法-GAN GANDiscriminatorGenerator还需要加入额外信息么 GAN可以加在其他模型上面我们可以用影像生成模型做什么? 前面讲过VAE和Flow-based以及diffusion Model ,今天讲最后一种经典的生成方法GAN。 GAN 前面讲的几种模型都是用加入额外…...

python 已知x+y=8 求x*y*(x-y)的最大值

先用导数求解 已知xy8 求xy(x-y)的最大值 令y8-x 则 f(x)x⋅(8−x)⋅(x−(8−x))x⋅(8−x)⋅(2x−8) 导数方程为 f(x)-3x^2 24x - 32 求方程 − 3 x 2 24 x − 32 0 -3x^2 24x - 32 0 −3x224x−320 的根。 首先,我们可以尝试对方程进行因式分解。观察…...

windows平台的postgresql主从数据库流备份

主: 操作系统:windows10 数据库版本:postgresql-16.2 ip:192.168.3.254 从: 操作系统:windows10 数据库版本:postgresql-16.2 ip:192.168.3.253 配置主库 配置 pg_hba.conf 文件 在 pg 的安装目录下,找到 …...

Spring 常见设计模式

什么是设计模式? 设计模式(Design pattern)是为解决软件设计中通用问题而被提出的一套指导性思想。它是一种被反复验证、经过实践证明并被广泛应用的代码设计经验和思想总结,可以帮助开发者通过一定的模式来快速的开发高质量、可维…...

优化大量数据导出到Excel的内存消耗(二):如果数据超出Excel单表上限,则进行分表

优化前:优化大量数据导出到Excel的内存消耗_大文件异步导出 内存占用高-CSDN博客 写Excel文件报错:Invalid row number (1048576) outside allowable range (0..1048575) 写入Excel时遇到IllegalArgumentException,原因是超出允许的最大行数…...

rustrover打开会报Error: Invalid toolchain

如果 cargo --version 正常输出,但在使用 RustRover 时出现“Invalid toolchain”错误,可能是由于 RustRover 工具链配置有问题或路径指向错误。 解决步骤: 1. 检查 RustRover 的工具链配置 打开 RustRover,进入 Preferences 或…...

docker-compose 安装canal

创建 Canal 配置文件 /conf/canal.properties mkdir -p conf/ touch /conf/canal.properties # canal.properties# tcp bind ip canal.ip 0.0.0.0 canal.port 11111 canal.metrics.pull.port 11112# zookeeper 集群配置 canal.zkServers canal.zookeeper.sessionTimeout…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

ES6从入门到精通:前言

ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

测试markdown--肇兴

day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...