You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成Albumentations后,训练YOLOv5是否需指定--hyp参数?

问题与解答

问题描述

已修改YOLOv5的/utils/augmentations.py文件,集成了多种Albumentations数据增强变换,并在Albumentations类中定义了一系列变换操作(代码见下文)。现咨询:使用这些Albumentations训练YOLO模型时,是否需要添加--hyp选项?或者无需该选项也能在训练中应用这些增强?

解答

--hyp选项的作用是加载YOLOv5的超参数配置文件,文件中主要包含学习率、动量、权重衰减,以及YOLO原生数据增强(如随机翻转、缩放、色域变换等)的概率/强度参数,和你自定义的Albumentations增强没有直接关联。

你在Albumentations类中定义的增强变换,只要Albumentations包安装满足版本要求(代码中已校验1.0.3+),YOLOv5的数据加载流程会自动调用这些变换,无论训练命令是否添加--hyp选项,自定义的Albumentations增强都会生效。

简单来说:

  • 加--hyp是为了指定训练的超参数(含原生增强配置),不影响自定义Albumentations的启用
  • 不加--hyp会使用YOLOv5默认超参数,自定义Albumentations依然会正常应用

训练命令说明

两条命令均能正常应用你自定义的Albumentations增强,区别仅在于是否指定超参数文件:

  1. 指定超参数文件的训练命令:
python train.py --img 512 --batch 16 --epochs 1000 --data consider.yaml --weights yolov5s.pt --hyp hyp.scratch-med.yaml --cache --cuda
  1. 使用默认超参数的训练命令:
python train.py --img 512 --batch 16 --epochs 1000 --data consider.yaml --weights yolov5s.pt --cache --cuda

自定义Albumentations类代码

class Albumentations:
    # YOLOv5 Albumentations class (optional, only used if package is installed)
    def __init__(self, size=640):
        self.transform = None
        prefix = colorstr('albumentations: ')
        try:
            import albumentations as A
            check_version(A.__version__, '1.0.3', hard=True)  # version requirement

            T = [
                A.RandomResizedCrop(height=size, width=size, scale=(0.8, 1.0), ratio=(0.9, 1.11), p=0.1),
                A.Blur(p=0.1),
                A.MedianBlur(p=0.1),
                A.ToGray(p=0.1),
                A.CLAHE(p=0.1),
                A.RandomBrightnessContrast(p=0.1),
                A.RandomGamma(p=0.1),
                A.ImageCompression(quality_lower=75, p=0.1),
                A.HueSaturationValue(hue_shift_limit=25, sat_shift_limit=40, val_shift_limit=0, p=0.1),
                A.ColorJitter(p=0.1), A.Defocus(p=0.1), A.Downscale(p=0.1), A.Emboss(p=0.1), 
                A.FancyPCA(p=0.1), A.GaussNoise(p=0.1), A.HueSaturationValue(p=0.1), A.ToRGB(p=0.1),
                A.ISONoise(p=0.1), A.ImageCompression(p=0.1), A.MultiplicativeNoise(p=0.1), 
                A.Posterize(p=0.1), A.RGBShift(p=0.1), A.RandomBrightnessContrast(p=0.1), A.CLAHE(p=0.1),
                A.RandomGamma(p=0.1), A.RingingOvershoot(p=0.1), A.Sharpen(p=0.1), A.UnsharpMask(p=0.1)
        ]  # transforms
            self.transform = A.Compose(T, bbox_params=A.BboxParams(format='yolo', label_fields=['class_labels']))

            LOGGER.info(prefix + ', '.join(f'{x}'.replace('always_apply=False, ', '') for x in T if x.p))
        except ImportError:  # package not installed, skip
            pass
        except Exception as e:
            LOGGER.info(f'{prefix}{e}')

内容的提问来源于stack exchange,提问作者nikhil int

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:40:13