Matriks augmentasi

Menetapkan knob augmentasi tidak menjamin nilainya mencapai pipeline. Halaman ini mencatat cara setiap family yang dapat dilatih memperlakukan setiap knob pada TrainConfig, menggunakan tabel deklaratif bawaan library sebagai satu-satunya sumber kebenaran.

Knob

Berikut adalah nama field TrainConfig, bukan ejaan CLI. CLI memetakan aliasnya sendiri ke field tersebut, sehingga --mosaic menetapkan mosaic_prob.

KnobArti
mosaic_probProbabilitas membangun sampel mosaic 4 gambar
mixup_probProbabilitas memadukan sampel kedua
hsv_probProbabilitas jitter warna HSV
flip_probProbabilitas pembalikan horizontal
degreesRentang rotasi acak untuk affine warp, dalam derajat
translateFraksi translasi acak untuk affine warp
mosaic_scaleRentang skala acak untuk affine warp
mixup_scaleRentang skala jitter yang diterapkan pada gambar pasangan MixUp
shearRentang shear acak untuk affine warp, dalam derajat
perspectiveMagnitudo projective warp untuk affine warp
flipudProbabilitas pembalikan vertikal
no_aug_epochsEpoch terakhir yang dilatih dengan augmentasi kuat dinonaktifkan
auto_augmentKebijakan AutoAugment classification: randaugment, autoaugment, atau augmix
erasingProbabilitas RandomErasing classification
mixupProbabilitas batch-MixUp classification, dengan soft label
cutmixProbabilitas batch-CutMix classification, dengan soft label

Empat knob terakhir adalah paket classification. Family deteksi mengabaikannya. mixup adalah knob khusus API: --mixup pada CLI merupakan alias untuk mixup_prob milik deteksi.

Tanyakan langsung kepada spec
from libreyolo.data.augment.spec import (    AUG_KNOBS,    aug_support,    ignored_aug_params,    uses_mosaic_gating,) print(sorted(AUG_KNOBS)) table = aug_support("yolo9")print(table["mixup_prob"].status, table["mixup_prob"].note) print(sorted(ignored_aug_params("dfine")))print(uses_mosaic_gating("yolo9"), uses_mosaic_gating("yolonas"))

Tiga status

StatusArti
usedKnob mencapai pipeline pelatihan family dan mengubah sampel
gated_by_mosaicKnob hanya berlaku pada sampel yang melewati cabang mosaic, sehingga tidak pernah aktif ketika mosaic_prob == 0
ignoredKnob tidak pernah mencapai pipeline; menetapkannya tidak berpengaruh

ignored adalah status yang perlu diperiksa sebelum run karena tidak ada proses yang gagal. CLI memperingatkan jika parameter pelatihan yang ditetapkan secara eksplisit diabaikan oleh family terpilih, dan trainer memperingatkan ketika mixup_prob > 0 tidak dapat aktif karena family membatasi MixUp pada mosaic sementara mosaic_prob bernilai nol.

Arketipe pipeline

Setiap family yang dicakup mengikuti salah satu dari enam pipeline, dengan beberapa deviasi per family yang tercantum di bawah.

KnobGaya YOLOXYOLO-NASGaya DETRClassificationSemanticRestore
mosaic_probusedignoredignoredignoredignoredignored
mixup_probgatedusedignoredignoredignoredignored
hsv_probusedusedignoredignoredignoredignored
flip_probusedusedusedignoredignoredignored
degreesgatedusedignoredignoredignoredignored
translategatedusedignoredignoredignoredignored
mosaic_scalegatedusedignoredignoredignoredignored
mixup_scalegatedusedignoredignoredignoredignored
sheargatedusedignoredignoredignoredignored
perspectivegatedusedignoredignoredignoredignored
flipudusedusedignoredignoredignoredignored
no_aug_epochsusedusedusedusedusedused
auto_augmentignoredignoredignoredusedignoredignored
erasingignoredignoredignoredusedignoredignored
mixupignoredignoredignoredusedignoredignored
cutmixignoredignoredignoredusedignoredignored

Dalam pipeline bergaya YOLOX, preprocessing per sampel menerapkan jitter HSV dan flip, sedangkan affine warp dan MixUp hanya berjalan dalam cabang mosaic. YOLO-NAS menjalankan affine per sampel yang selalu aktif, mengabaikan mosaic, dan menerapkan MixUp secara independen dengan menggunakan kembali mosaic_scale sebagai rentang skala affine.

Pipeline bergaya DETR adalah transform pass-through tanpa mosaic. Distorsi fotometrik, zoom-out, dan IoU-crop merupakan konstanta resep, bukan knob yang dapat dikonfigurasi. Karena itu, hsv_prob dan knob geometri tidak pernah mencapainya. Pipeline classification menggunakan transform ImageFolder dengan flip horizontal tetap sebesar 0.5, bukan flip_prob. Jitter skala semantic dan HSV berasal dari atribut kelas family, bukan knob konfigurasi, sedangkan flip restoration merupakan operasi input-dan-target berpasangan dengan probabilitas tetap 0.5.

no_aug_epochs dipatuhi di semua tempat, meskipun yang dinonaktifkan berbeda: mosaic dan MixUp untuk gaya YOLOX, affine dan MixUp untuk YOLO-NAS, augmentasi fotometrik dan crop kuat beserta bagian akhir learning rate untuk gaya DETR, serta bagian akhir scheduler untuk yang lain.

Family menurut arketipe

ArketipeFamily
Gaya YOLOXyolox, yolo7, yolo9, yolo9_e2e, yolo9_p2, rtmdet, picodet, rtdetr, rtdetrv2, fomo
YOLO-NASyolonas
Gaya DETRdfine, domedetr, deim, deimv2, rtdetrv4, rfdetr, ec, dinov2
Classificationresnet, convnext, mobilenetv4, efficientnetv2
Semanticsegformer
Restorenafnet

Dua puluh lima family dicakup. Family di luar list ini mengembalikan kumpulan ignored kosong, sehingga tidak ada peringatan yang dikeluarkan.

Deviasi

FamilyPerbedaan dari arketipe
rtmdetflipud diabaikan: transform-nya tidak memiliki flip vertikal
picodetflipud diabaikan
rtdetrflipud diabaikan
rtdetrv2flipud diabaikan
fomoperspective dan flipud diabaikan
echsv_prob, degrees, dan translate digunakan, hanya untuk task="pose"; detect dan segment menggunakan resep fotometrik tetap
dinov2Paket classification digunakan, hanya untuk task="classify"

ec dan dinov2 adalah family multi-task, sehingga sebuah knob ditandai ignored hanya ketika semua task family yang dapat dilatih mengabaikannya. Hal ini mencegah peringatan CLI keliru untuk satu task meski benar bagi task lain.

Dome-DETR mewarisi transform D-FINE tanpa perubahan. Satu hal yang tidak dapat diterimanya adalah pelatihan multi-scale, yang dinonaktifkan konfigurasinya, bukan spec augmentasinya.

Knob khusus family

Beberapa family memiliki knob augmentasi pada subclass TrainConfig sendiri, bukan pada base. CLI tidak menyediakannya; tetapkan melalui API Python.

FamilyKnobArti
yolo9, yolo9_e2e, yolo9_p2copy_pasteProbabilitas augmentasi instance copy-paste, khusus task="segment"
yolo9, yolo9_e2e, yolo9_p2copy_paste_modeSumber copy-paste: flip mencerminkan sampel yang sama, mixup menggunakan sampel kedua
yolo9, yolo9_e2e, yolo9_p2rot90Probabilitas rotasi acak 90 derajat
rfdetrcopy_pasteProbabilitas copy-paste untuk task="segment", hanya mode flip
rfdetrcopy_paste_modeMode sumber copy-paste untuk task="segment"
rfdetrcrop_resize_probProbabilitas crop-resize acak dalam pipeline native
dfinecrop_resize_probProbabilitas crop-resize acak, task="segment"
eccrop_resize_probProbabilitas crop-resize acak, task="segment"
ec, yolonasbrightness_contrast_probProbabilitas jitter kecerahan dan kontras, task="pose"
ec, yolonasaffine_probProbabilitas affine yang memperhitungkan keypoint, task="pose"

rot90 berlaku untuk detect dan OBB pada yolo9.

Melakukan query pada spec

HelperMengembalikan
aug_support(family)Tabel knob-ke-Support, atau None untuk family tidak dikenal
ignored_aug_params(family)Kumpulan nama knob yang diabaikan family; kosong untuk family tidak dikenal
uses_mosaic_gating(family)Apakah MixUp family hanya aktif pada sampel mosaic
display_name(family)Nama family yang ditampilkan kepada pengguna dalam peringatan
mixup_gating_warning(family, mosaic_prob, mixup_prob)Teks peringatan ketika MixUp tidak mungkin aktif, atau None

Support adalah named tuple berisi status dan note, dengan catatan yang menjelaskan alasan sebuah knob diabaikan atau dibatasi untuk family tersebut.

Gate mosaic

Untuk family bergaya YOLOX, mixup_prob=0.5 dengan mosaic_prob=0 menonaktifkan MixUp sepenuhnya karena MixUp hanya berlaku pada sampel mosaic. Kombinasi ini mudah terjadi ketika mosaic dinonaktifkan menjelang akhir pelatihan. Trainer mencatat peringatan yang menyebutkan family, dan mixup_gating_warning adalah fungsi murni di baliknya.

List knob, status, arketipe, deviasi per family, dan fungsi helper dibaca dari libreyolo/data/augment/spec.py pada v1.5.0. Tabel tersebut dikaitkan ke pipeline nyata oleh tests/unit/test_augment_spec.py.