图像处理——mixup

mixup是图片分类中的一个非常有效的trick, 具体流程如下图所示:
在这里插入图片描述
简单来讲就是将两张图片通过不同的比例进行融合,同时图片对应的one-hot编码也以相同的比例相乘,从而构造出新的数据集。 本质上,mixup在成对样本及其标签的凸组合(convex combinations)上训练神经网络,可以规范神经网络,增强训练样本之间的线性表达。 其优点是:

  • 改善了网络模型的泛化能力
  • 减少对错误标签的记忆
  • 增加对抗样本的鲁棒性
  • 稳定训练过程

mixup效果受α,β值影响,Beta分布如下图:

在这里插入图片描述
具体请参考文章:数据增强之mixup算法详解

### YOLO 中 MixUp 数据增强方法的实现与应用 MixUp 是一种用于图像分类和目标检测的数据增强技术,通过线性插值的方式将两个样本及其标签进行组合来生成新的训练样例。这种方法可以有效增加数据多样性并减少过拟合的风险。 #### 基本原理 MixUp 的核心思想是通过对输入特征 \( X \) 和对应的标签 \( y \) 进行加权平均操作,从而创建一个新的合成样本。具体来说,给定两组图片和它们的目标框标注分别为 \( (X_1, y_1) \) 和 \( (X_2, y_2) \),可以通过如下方式计算得到新样本: \[ X_{new} = \lambda X_1 + (1-\lambda) X_2 \] 其中,\( \lambda \in [0, 1] \) 是一个随机数,通常从 Beta 分布中采样而来。对于目标框标注,则按照相同的比例调整权重[^1]: \[ y_{new} = \lambda y_1 + (1-\lambda) y_2 \] 这种处理不仅适用于简单的类别标签,在目标检测场景下也可以扩展到边界框坐标和其他属性上。 #### 在YOLO中的实现细节 在实际项目如 YoloX 当中实现了上述理论,并将其应用于多个版本模型之中(除了 nano 和 tiny 版本外)。以下是基于 Python 编写的简化版伪代码展示如何完成这一过程: ```python import numpy as np from PIL import Image def mixup(image1, image2, boxes1, boxes2): lam = np.random.beta(1.5, 1.5) # 超参数可调 height, width = max(image1.size), max(image2.size) mixed_img = Image.new('RGB', (width, height)) mixed_img.paste(image1.resize((width//2,height)), box=(0,0)) mixed_img.paste(image2.resize((width//2,height)), box=(width//2,0)) new_boxes = [] for b in boxes1: new_b = list(b[:]) new_b[0], new_b[2] = int(new_b[0]*lam*width/width),int(new_b[2]*lam*width/width) new_boxes.append(tuple(new_b)) for b in boxes2: new_b = list(b[:]) new_b[0], new_b[2]=int(width*(1-lam)+b[0]*(1-lam)*width/(image2.width-image2.left)),\ int(width*(1-lam)+b[2]*(1-lam)*width/(image2.right-image2.left)) new_boxes.append(tuple(new_b)) return mixed_img,new_boxes ``` 此函数接受两张原始图像以及各自对应的真实边界框列表作为输入参数;返回经过混合后的单张图像连同更新过的全部真实边界框集合。 #### 应用效果分析 研究表明,在复杂度较高的网络架构里引入 MixUp 技术能够显著提升性能表现。例如,在 YoloX s/m/l/x 各种规模下的实验结果显示,采用该策略后 [email protected] 提升约 1%-2% 不等[^2] 。然而值得注意的是,当面对较小尺寸或者结构相对简单些的小型化变体比如 Nano 或 Tiny 类型时则未必适用,因为这些轻量化设计本身已经具备较强泛化特性而无需额外依赖复杂的正则手段即可达到良好收敛状态。 另外需要注意一点,尽管 MixUp 可以为大多数情况带来正面影响,但它也可能引起某些特定条件下产生的负面影响——即所谓的“混淆效应”。因此合理设置超参范围显得尤为重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值