
Ultralytics YOLO 數據增強參數權威參考augmentation-args 逐項詳解與源碼印證【免費下載鏈接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking項目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics數據增強是 YOLO 訓練流程中提升模型泛化能力、抑制過擬合的核心手段。Ultralytics 將全部可調增強參數統一收斂在一份參數宏docs/macros/augmentation-args.md中并通過頁面引用渲染進訓練與配置文檔。本文以這份參數宏為骨架結合倉庫中的默認配置、增強流水線源碼與配套指南逐項解析每個增強參數的類型、默認值、取值范圍、適用任務與底層實現幫助你快速定位并調優自己訓練任務的增強策略。這份參數宏是什么、在哪里被引用docs/macros/augmentation-args.md是 Ultralytics 文檔體系中的可復用 Jinja 參數宏由 docs/build_docs.py 中定義的render_jinja_macros()渲染。它在當前倉庫中被兩處文檔頁以{% include macros/augmentation-args.md %}的方式引入從而保證一份表格、多處同步顯示訓練模式文檔的增強設置小節配置參數文檔的 Augmentation Settings 小節宏表中的默認值全部以{{ hsv_h }}、{{ mosaic }}等模板占位符書寫構建文檔時由 docs/build_docs.py 讀取 ultralytics/cfg/default.yaml 中的同名鍵并自動填入。也就是說本文表格中展示的默認值即當前倉庫的全局訓練默認值改default.yaml或通過 Python/CLI/YAML 傳入同名參數即可覆蓋。增強參數總覽表下表完整復刻參數宏的 21 個增強參數含類型、當前倉庫默認值、適用任務與取值范圍。各參數對應的視覺示例與擴展說明見文末關聯的數據增強指南。ArgumentTypeDefaultSupported TasksRangeDescriptionhsv_hfloat0.015detect,segment,semantic,depth,classify,pose,obb0.0 - 1.0以色輪的比例調整圖像色相引入色彩多樣性幫助模型在不同光照條件下泛化。對classify僅在auto_augmentNone時生效hsv_sfloat0.7detect,segment,semantic,depth,classify,pose,obb0.0 - 1.0按比例改變圖像飽和度色彩強度用于模擬不同環境條件。對classify僅在auto_augmentNone時生效hsv_vfloat0.4detect,segment,semantic,depth,classify,pose,obb0.0 - 1.0按比例改變圖像明度亮度幫助模型在多種光照下穩定工作。對classify僅在auto_augmentNone時生效degreesfloat0.0detect,segment,semantic,depth,pose,obb0.0 - 180在指定角度范圍內隨機旋轉圖像提升模型對不同朝向目標的識別能力translatefloat0.1detect,segment,semantic,depth,pose,obb0.0 - 1.0按圖像尺寸比例在水平和垂直方向平移圖像幫助學習檢測部分可見目標scalefloat \| tuple0.5detect,segment,semantic,depth,classify,pose,obb0 - 1浮點或顯式(min, max)元組不適用于classify按增益系數縮放圖像模擬相機距離不同時目標的大小變化shearfloat0.0detect,segment,semantic,depth,pose,obb-180 - 180按角度對圖像進行剪切變形模擬目標從不同視角被觀察的效果perspectivefloat0.0detect,segment,semantic,depth,pose,obb0.0 - 0.001對圖像施加隨機透視變換增強模型對三維空間中目標的理解能力flipudfloat0.0detect,segment,semantic,depth,classify,pose,obb0.0 - 1.0以指定概率上下翻轉圖像在不改變目標特征的前提下增加數據多樣性fliplrfloat0.5detect,segment,semantic,depth,classify,pose,obb0.0 - 1.0以指定概率左右翻轉圖像有助于學習對稱目標、增加數據集多樣性bgrfloat0.0detect,segment,semantic,depth,pose,obb0.0 - 1.0以指定概率將圖像通道從 RGB 交換為 BGR提升對錯誤通道順序的魯棒性mosaicfloat1.0detect,segment,semantic,pose,obb0.0 - 1.0將四張訓練圖像拼接為一張模擬不同的場景構成與目標交互對復雜場景理解非常有效mixupfloat0.0detect,segment,semantic,pose,obb0.0 - 1.0將兩張圖像及其標簽混合成合成圖通過引入標簽噪聲與視覺變化增強泛化能力cutmixfloat0.0detect,segment,pose,obb0.0 - 1.0將兩張圖像的部分區域組合在保持區域分界清晰的同時制造部分遮擋場景提升魯棒性copy_pastefloat0.0segment,obb0.0 - 1.0被粘貼的合格目標占比flip模式在圖像內鏡像復制目標mixup模式中該值同時作為跨圖應用概率copy_paste_modestrflipsegment,obb-指定 copy-paste 策略可選flip與mixupauto_augmentstrrandaugmentclassify-應用預定義增強策略randaugment、autoaugment或augmix以通過視覺多樣性提升模型性能erasingfloat0.4classify0.0 - 1.0訓練期間隨機擦除圖像局部區域促使模型關注不那么明顯的特征augmentationslistNonedetect,segment,semantic,depth,pose,obb-自定義 Albumentations 變換僅 Python API。接受變換對象列表滿足定制化增強需求說明scale若傳入(min, max)元組形式僅對幾何類任務生效分類訓練會從浮點值推導自身裁剪范圍1.0 - scale到1.0傳入元組會拋出TypeError詳見 scale 小節。顏色空間類增強HSV 三分量hsv_h、hsv_s、hsv_v三者的語義都是圍繞當前值做對稱隨機偏移參數值為增益幅度實際偏移量在-hsv_*與hsv_*之間均勻隨機。三者默認值0.015 / 0.7 / 0.4來自 ultralytics/cfg/default.yaml。hsv_h色相注意當取值超過0.5時色相會在色輪上回繞因此0.5與-0.5的表現一致。適合戶外光照劇烈變化、同一物體顏色隨環境偏移的場景如陽光下的香蕉偏黃、室內偏青綠。hsv_s飽和度模擬天氣與相機設置差異。例如晴天鮮艷的紅色交通標志在霧天會顯得灰暗。hsv_v明度模擬光照強弱差異例如陽光下亮眼的蘋果在陰影中會明顯變暗。對分類任務的特別限制三者僅在auto_augmentNone即未啟用自動增強策略時才被應用見宏表描述與 classify_augmentations() 實現。源碼實現三個參數在 v8_transforms() 中被合并為單個RandomHSV(hgain, sgain, vgain)變換一次完成類實現見 RandomHSV。幾何類增強旋轉、平移、縮放、剪切與透視這五個參數都作用于空間仿射/透視矩陣在源碼中統一由 RandomPerspective 負責并由 v8_transforms() 傳入。偏移量在-value與value之間隨機采樣其中translate、shear、perspective在 x、y 兩個軸各采樣一次獨立隨機值。degrees0.0 - 180旋轉范圍[-degrees, degrees]。默認0.0關閉。航拍無人機等目標朝向任意的場景建議開啟。translate0.0 - 1.0平移量為圖像尺寸的比例。默認0.1訓練默認已有輕微平移。幫助模型處理部分出畫的目標。scale浮點或元組這是幾何參數中唯一支持兩種形態的參數。浮點形態scale0.5表示縮放因子在1 - scale到1 scale即 0.5x - 1.5x間采樣元組形態scale(0.5, 2.0)直接設定縮放范圍。浮點值超出0.0 - 1.0會觸發ValueError需要超過 2 倍放大時請改用元組。默認值0.5意味著默認訓練中圖像縮放可上下浮動 50%。shear-180 - 180剪切變形會迅速扭曲圖像建議從小值起步逐步增大。與透視不同剪切保持對邊平行、不引入消失點可模擬非垂直視角拍攝。perspective0.0 - 0.001數值極小但效果顯著模擬深度/角度變化下的透視縮短適用于無人機傾斜視角等場景。圖像翻轉與通道擾動flipud/fliplr概率參數由 RandomFlip 實現。取值即翻轉概率1.0表示全部翻轉、0.0關閉。默認flipud0.0、fliplr0.5左右翻轉是訓練默認開啟的。注意姿態估計任務依賴data.yaml中的flip_idx關鍵點索引映射若數據集中未定義flip_idx源碼會直接關閉fliplr/flipud并給出警告見 v8_transforms 中的邏輯。bgr概率參數交換 RGB/BGR 通道順序由 Format 變換在輸出階段處理用于提升對相機庫通道順序不一致的魯棒性。組合式圖像級增強Mosaic、MixUp 與 CutMix三者都會把多張圖的信息合并進同一張訓練樣本源碼上都繼承自BaseMixTransform需要從數據集中額外采樣圖像。mosaic默認1.0將當前圖與另外 3 張圖拼接為 4 宮格實現在 Mosaic。對小目標檢測與上下文理解幫助很大。四條值得注意的行為拼接中心隨機決定可能在圖像內部也可能在外部另外 3 張圖從近期已加載圖像緩沖區采樣cacheram時從整個數據集采樣采用有放回采樣同一圖像可在一張 mosaic 中出現多次mosaic 中心位置、拼接難度會拖慢收斂屬于更難但更魯棒的增強可通過close_mosaic默認 10見 default.yaml在訓練末尾關閉設epochs200、close_mosaic20即第 180 個 epoch 起關閉。mixup默認0.0按概率將兩張圖按比例像素混合標簽同步混合實現在 MixUp。混合比例來自np.random.beta(32.0, 32.0)分布即每張圖大約各占一半并略有波動。cutmix默認0.0從一張圖裁剪矩形貼到另一張圖實現在 CutMix。與 mixup 的全局像素混合不同cutmix 保留貼入區域的原像素強度與局部特征用于制造真實遮擋場景。算法細節貼入區域不能與已有框重疊且只有保留面積足夠的目標框才會被保留——檢測標簽的閾值是0.110%帶分割多邊形標簽時為0.011%該閾值當前實現不可修改。統一關閉行為close_mosaic觸發時mosaic、copy_paste、mixup、cutmix四種多圖變換在同一個 epoch同時關閉而幾何、HSV、翻轉與 Albumentations 變換繼續運行。Copy-Paste 增強copy_paste與copy_paste_modeCopy-Paste 需要多邊形segment或旋轉框obb標簽在 CopyPaste 中實現具體語義由copy_paste_mode決定flip模式默認copy_paste表示被復制的合格目標占比對象來自當前圖像自身的水平鏡像。例如一張圖有 6 個合格目標、copy_paste0.5則會新增 3 份鏡像副本。mixup模式對象從隨機采樣的另一張數據圖像復制此時copy_paste同時作為該操作是否執行的概率。IoA 沖突檢測任何模式下待粘貼目標都會與目標圖中已有目標計算 IoA相交面積比僅當所有 IoA 均低于0.330%時才允許粘貼該閾值當前不可修改。此邏輯在 get_params() 方法中基于bbox_ioa實現。流水線位置差異flip模式作用于單張圖像插入到仿射變換之前mixup模式需要跨圖操作作為帶pre_transform的組合追加在流水線末尾見 v8_transforms() 中的分支邏輯。這也解釋了文檔中copy_paste默認flip模式在單圖內工作而mixup模式跨圖組合的表述。分類任務專屬auto_augment與erasing這兩個參數只作用于classify任務使用獨立的 torchvision 訓練流水線 classify_augmentations()auto_augment默認randaugment三選一的自動策略——randaugment隨機選擇變換并配以統一幅值計算開銷小autoaugment應用從 ImageNet、CIFAR10、SVHN 等數據集上學習到的預定義策略只能選用無法在 Torchvision 內訓練新策略augmix通過隨機組合簡單變換制造多樣性。傳None即關閉自動策略此時hsv_h/hsv_s/hsv_v才對分類生效。erasing默認0.4隨機擦除概率對應 torchvision 的RandomErasing。其scale、ratio、value子參數在當前實現中不可調整固定為(0.02, 0.33)、(0.3, 3.3)與0。高級定制自定義 Albumentations 變換augmentationsaugmentations是一個僅 Python API 可用的列表參數接收 Albumentations 變換對象由 Albumentations 變換應用。注意以下行為傳入后完全替換默認的 Albumentations 變換集默認集見 類的默認列表Blur、MedianBlur、ToGray、CLAHHE各p0.01另有p0的RandomBrightnessContrast、RandomGamma、ImageCompression。頁面上的mosaic、hsv_h、degrees等其他增強不受影響、仍獨立運行。訓練器保存 checkpoint 時會用A.to_dict()序列化這些變換因此序列化后的列表可以在 YAML/CLI 中往返傳遞這保證了resume恢復訓練時能還原自定義變換。注意空間類變換會改變幾何Ultralytics 會自動調整標注框但復雜變換可能仍需額外配置疊加過多或過重的變換會明顯拖慢每個 epoch。適用范圍是detect/segment/semantic/depth/pose/obb不含classify分類走獨立流水線。官方示例要求 Albumentations 1.4.22即 Python 3.9。import albumentations as A from ultralytics import YOLO model YOLO(yolo26n.pt) # 加載預訓練模型 # 定義自定義 Albumentations 變換替換內置默認集 custom_transforms [ A.Blur(blur_limit7, p0.5), A.GaussNoise(std_range(0.0124, 0.0277), p0.3), A.CLAHE(clip_limit4.0, p0.5), A.RandomBrightnessContrast(brightness_limit0.2, contrast_limit0.2, p0.5), A.HueSaturationValue(hue_shift_limit20, sat_shift_limit30, val_shift_limit20, p0.5), ] model.train(datacoco8.yaml, epochs100, augmentationscustom_transforms, imgsz640)三種配置方式與底層流水線所有上表參數均可通過 Python、CLI 或 YAML 自定義文件傳入自定義 YAML 會整體覆蓋 ultralytics/cfg/default.yamlmode僅在 CLI 下必填。from ultralytics import YOLO model YOLO(yolo26n.pt) # 方式一Python 關鍵字參數 model.train(datacoco8.yaml, epochs100, hsv_h0.03, hsv_s0.6, hsv_v0.5) # 方式二全部關閉未列出的參數保持默認 model.train( datacoco8.yaml, epochs100, hsv_h0.0, hsv_s0.0, hsv_v0.0, translate0.0, scale0.0, fliplr0.0, mosaic0.0, erasing0.0, auto_augmentNone, )# CLI 方式 yolo detect train datacoco8.yaml modelyolo26n.pt epochs100 hsv_h0.03 hsv_s0.6 hsv_v0.5# train_custom.yamlmode 僅 CLI 必需 mode: train data: coco8.yaml model: yolo26n.pt epochs: 100 hsv_h: 0.03 hsv_s: 0.6 hsv_v: 0.5從源碼看檢測/分割等任務非分類的增強最終由 v8_transforms() 組裝為一條確定順序的Compose流水線Mosaic概率mosaicCopyPasteflip模式插在仿射前mixup模式以組合形式追加在末尾RandomPerspective合并degrees/translate/scale/shear/perspectiveMixUp與CutMix均以pre_transform組合為輸入各自按概率觸發Albumentationsp1.0內置默認集或自定義augmentationsRandomHSVhsv_h/hsv_s/hsv_v垂直/水平RandomFlipflipud/fliplr。理解這條順序有助于解釋一些現象例如 Copy-Paste 在仿射之前基于原圖粘貼而 mixup/cutmix 是在仿射之后再做多圖合成。選型與調參建議默認值已是穩妥起點默認的hsv_h0.015、hsv_s0.7、hsv_v0.4通常無需大改多數目標檢測任務可直接沿用mosaic1.0、fliplr0.5、scale0.5的默認組合。相機視角是否固定是幾何增強的開關若部署時相機位姿固定不變可考慮關閉degrees/translate/scale/shear/perspective以加速收斂若視角多變則保留它們換取魯棒性。mosaic需謹慎評估它會讓標簽語義產生局部目標 多目標的樣本。若這類遮擋/多目標情況在你的業務中不可接受可調低概率或調大close_mosaic讓它更早退出訓練。小目標與類別不均衡場景mosaic對小目標、copy_paste對罕見類別的實例分割/旋轉框任務價值突出。保持簡單從最小增強集開始按需逐步疊加任何增強都應盡量模擬生產環境的真實數據分布避免引入與線上無關的分布偏差。Albumentations 是否啟用訓練日志中出現albumentations: Blur[...]即說明albumentations包已安裝并應用了默認低概率變換每個p0.01。這些默認變換無法通過default.yaml參數關閉——需要卸載該包或通過augmentations參數傳入自定義列表來整體替換。延伸閱讀倉庫內完整教程YOLO 數據增強指南含每個參數的開啟/關閉對比圖增強實現類參考文檔 augment 模塊 與源碼 ultralytics/data/augment.py全局默認值ultralytics/cfg/default.yaml宏表默認值的唯一來源包含本宏的頁面訓練模式文檔、配置參數文檔相關集成指南Albumentations 集成【免費下載鏈接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking項目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考