Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

CutMix

CutMix 会将一张训练图像的矩形区域粘贴到另一张图像上,并根据粘贴区域的面积混合两者的标签,从而提高准确率和定位性能。

CutMix 是一种数据增强技术:它从一张训练图像中裁出矩形区域,将其粘贴到另一张图像的相同位置,并根据两张图像各自所占的面积按比例混合标签。NAVER Clova AI Research 的 Sangdoo Yun 及其同事在一篇2019 年 ICCV 论文中提出了 CutMix,将两个早期方法结合起来:Cutout 移除随机区域,MixUp 混合标签。在 ImageNet 上,CutMix 将 ResNet-50 的 top-1 错误率从 23.68% 降至 21.40%,优于 MixUp 的 22.58% 和 Cutout 的 22.93%;使用 CutMix 预训练的模型在迁移到目标检测和图像描述生成任务时也表现更好。

CutMix 的工作原理#

对于每对图像 A 和 B,CutMix 会从 Beta 分布中采样混合比例 λ;默认参数 α = 1 时,该分布在 0 到 1 之间均匀分布。随后,它会绘制一个宽度和高度分别为图像宽度与高度乘以 √(1 − λ) 的方框,将其中心放在一个随机点上,再裁剪至图像边界,并把 B 中对应区域复制到 A 上。裁剪后,λ 会重新计算为 A 剩余部分所占的比例,标签则变为 λ 份 A 和 (1 − λ) 份 B。因此,在狗的图像上贴上面积占 30% 的猫图像块,目标标签就是 0.7 狗和 0.3 猫。训练时,模型会针对这个软标签最小化损失函数,方式与标签平滑相同。

PyTorch 的 torchvision 会将 CutMix 应用于整个批次,让每张图像与批次中的相邻图像配对:

import torch
from torchvision.transforms import v2

# A batch of 4 random 224x224 images labeled with classes 0-3 of 10
torch.manual_seed(0)
images = torch.rand(4, 3, 224, 224)
labels = torch.tensor([0, 1, 2, 3])

# Paste a random box from each image's neighbor in the batch and mix the labels by area
cutmix = v2.CutMix(num_classes=10)
mixed_images, mixed_labels = cutmix(images, labels)

# Image 0 received its patch from image 3
pasted = (mixed_images[0] != images[0]).any(dim=0).float().mean()
print(f"pasted area: {pasted:.3f}")
print(f"label weights for classes 0-3: {mixed_labels[0, :4].numpy().round(3)}")

输出显示粘贴区域占 0.187,类别 0 的标签权重为 0.813,类别 3 的标签权重为 0.187:目标分配给每个类别的比例,等于该类别贡献的像素比例。

CutMix 为何有效#

在整张图像上训练的图像分类模型,可能只需识别一个很小但极具区分度的部分(例如狗脸)就能正确分类。CutMix 用另一张图像遮住这部分后,模型必须根据狗的身体、腿部或毛发来识别狗,因此学会利用物体更多区域的信息,从而改善弱监督定位能力和遮挡鲁棒性。混合图像中的每个像素都来自真实照片,因此模型不会在空白区域或模糊重叠图像上训练。与其他强增强一样,CutMix 作为一种正则化方法可以减少过拟合;现代视觉 Transformer(ViT)训练方案也会同时应用 CutMix 和 MixUp,包括 Meta 的高效数据图像 Transformer(DeiT)所使用的方案。

  • MixUp:按权重 λ 逐像素混合两张完整图像,并以相同方式混合标签,因此会生成看起来不像任何真实场景的半透明叠加图像。
  • Cutout:用零值遮挡一个随机方块,并保留原始标签,因此被遮挡像素不包含任何训练信息。
  • Mosaic:将四张缩放后的图像拼成一张,这是训练目标检测器时常用的增强方法,可保留画面中每个物体的边界框标签。
  • 用于实例分割的复制粘贴:将分割后的物体实例而非矩形区域从一张图像粘贴到另一张图像中。

目标检测中的 CutMix#

目标检测保留所有硬标签:不使用混合后的类别向量,而是保留两张图像中仍可见物体的边界框。Ultralytics YOLO 的 cutmix 增强默认关闭,接受 0 到 1 之间的概率值。其实现会选择一个与目标图像现有边界框完全不重叠的裁剪区域,从第二张图像复制相同区域,并保留至少 10% 面积位于该区域内的每个粘贴边界框;对于分割标签,这一比例为 1%。默认情况下,训练最后 10 个 epoch 会关闭 CutMix 和 mosaic,该设置由 close_mosaic=10 控制。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来