CutMix
了解 CutMix 数据增强技术如何防止过拟合。学习如何轻松将其应用于训练稳健的 Ultralytics YOLO26 模型。
CutMix 是一种先进的数据增强技术,通过将一张图像中的矩形区域剪切并粘贴到目标图像上来训练鲁棒的计算机视觉模型。与调整亮度或旋转等简单的增强方法不同,CutMix 改变了训练样本的基本构成。当像素被替换时,相应的地面实况标签也会根据剪切区域的面积按比例进行混合。这有助于人工神经网络学习从局部视图识别对象,迫使模型依赖多个特征,而不是仅仅关注对象中最具区分度的部分。它首次在2019 年学术论文中被引入,现已成为深度学习框架中的标准操作,用于防止过拟合并改善在大规模数据集上的泛化能力。
Link to this section该技术的工作原理#
During model training, the algorithm randomly selects a center coordinate and a box size to extract a region from a secondary image. This patch is then overlaid directly onto a primary image within the active batch. If the primary image contained a dog and the secondary contained a cat, the final image would feature a cat patch replacing a portion of the dog. The classification labels are updated using linear interpolation based on the exact patch area—for example, yielding a label of 0.7 dog and 0.3 cat. In object detection tasks, bounding boxes that retain at least a certain percentage (often 10%) of their original area within the pasted region are preserved. This technique is natively supported as a cutmix training hyperparameter in Ultralytics YOLO, allowing practitioners to easily define the probability of this transformation.
Link to this section区分 MixUp 和 Cutout#
CutMix 与其他两种重要的数据增强技术密切相关,但它解决了它们特定的局限性:
- MixUp 增强:MixUp 通过计算两张图像像素值的加权平均值来全局混合它们。虽然有效,但它往往会产生不自然、半透明的虚影图像,这可能会通过破坏局部空间相关性来混淆模型。相比之下,CutMix 保留了剪切区域内的原始像素强度,研究人员在 Attentive CutMix 等方法中进一步优化了这一点。
- Cutout 增强:Cutout 通过用黑色像素或数据集均值遮盖随机矩形区域来丢弃信息。虽然它鼓励模型观察整个对象,但它浪费了宝贵的训练张量。CutMix 用来自其他图像的有信息的图像分类补丁替换了缺失的空间,提高了整体学习效率。
Link to this section实际应用#
通过训练模型识别被严重遮挡的对象,CutMix 显著提升了各行各业的机器学习性能。
- 汽车 AI 与自动驾驶:在自动驾驶汽车中,它教会系统识别行人或车辆,即使它们被交通标志部分遮挡,从而增强了拥挤环境中的安全性。
- 医学诊断与器官分割:在医疗保健领域,此方法被广泛用于器官和肿瘤分割,即使在解剖结构重叠时,也能让模型识别复杂的组织边界。
- 卫星图像遥感:此策略保留了空中视图中如建筑物和植被等密集、重叠的类别。目前正积极研究先进的变体,以改善在高度不平衡数据上的长尾识别能力。
Link to this section实践中的实现#
将此增强技术集成到 AI 流水线中非常简单。大多数高级库都原生支持它,例如 PyTorch Transforms 和 Keras Preprocessing Layers。
当训练像 YOLO26 这样的模型时,配置此增强只需调整一个参数。这会自动处理图像打补丁和复杂的边界框裁剪逻辑。
from ultralytics import YOLO
# Initialize the recommended Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model with CutMix enabled at a 50% probability
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, cutmix=0.5)对于管理大规模视觉工作流的团队,Ultralytics Platform 通过允许用户直接从云界面调整这些数据增强最佳实践简化了这一过程,从而精简了从标注到模型部署的路径。






