L'aumento dei dati è una tecnica cruciale nella computer vision che espande artificialmente il tuo set di dati di addestramento applicando varie trasformazioni alle immagini esistenti. Durante l'addestramento di modelli di deep learning come Ultralytics YOLO, l'aumento dei dati aiuta a migliorare la robustezza del modello, riduce l'overfitting e migliora la generalizzazione a scenari del mondo reale.
Guarda: Come utilizzare Mosaic, MixUp e altre tecniche di Data Augmentation per aiutare i modelli Ultralytics YOLO a generalizzare meglio 🚀
Perché l'aumento dei dati è importante
L'aumento dei dati svolge molteplici scopi fondamentali nell'addestramento di modelli di computer vision:
Dataset espanso: Creando variazioni delle immagini esistenti, è possibile aumentare efficacemente le dimensioni del dataset di training senza raccogliere nuovi dati.
Generalizzazione migliorata: I modelli imparano a riconoscere gli oggetti in varie condizioni, rendendoli più robusti nelle applicazioni del mondo reale.
Riduzione dell'Overfitting: Introducendo variabilità nei dati di addestramento, è meno probabile che i modelli memorizzino caratteristiche specifiche delle immagini.
Prestazioni Migliorate: I modelli addestrati con un'adeguata augmentation in genere raggiungono una migliore accuratezza sui set di convalida e di test.
L'implementazione di Ultralytics YOLO fornisce una suite completa di tecniche di aumento dei dati, ognuna delle quali serve a scopi specifici e contribuisce alle prestazioni del modello in modi diversi. Questa guida esplorerà in dettaglio ogni parametro di aumento dei dati, aiutandoti a capire quando e come utilizzarli efficacemente nei tuoi progetti.
Configurazioni di esempio
Puoi personalizzare ogni parametro utilizzando l'API Python, l'interfaccia a riga di comando (CLI) o un file di configurazione. Di seguito sono riportati esempi di come impostare l'aumento dei dati in ciascun metodo.
Esempi di configurazione
fromultralyticsimportYOLO# Load a modelmodel=YOLO("yolo11n.pt")# Training with custom augmentation parametersmodel.train(data="coco.yaml",epochs=100,hsv_h=0.03,hsv_s=0.6,hsv_v=0.5)# Training without any augmentations (disabled values omitted for clarity)model.train(data="coco.yaml",epochs=100,hsv_h=0.0,hsv_s=0.0,hsv_v=0.0,translate=0.0,scale=0.0,fliplr=0.0,mosaic=0.0,erasing=0.0,auto_augment=None,)
# Training with custom augmentation parameters
yolodetecttraindata=coco8.yamlmodel=yolo11n.ptepochs=100hsv_h=0.03hsv_s=0.6hsv_v=0.5
Utilizzo di un file di configurazione
Puoi definire tutti i parametri di training, inclusi gli aumenti, in un file di configurazione YAML (ad esempio, train_custom.yaml). L'argomento mode parametro è richiesto solo quando si utilizza la CLI. Questo nuovo file YAML sovrascriverà quindi quello predefinito situato in ultralytics package.
# train_custom.yaml# 'mode' is required only for CLI usagemode:traindata:coco8.yamlmodel:yolo11n.ptepochs:100hsv_h:0.03hsv_s:0.6hsv_v:0.5
Quindi avvia l'addestramento con l'API Python:
Esempio di addestramento
fromultralyticsimportYOLO# Load a COCO-pretrained YOLO11n modelmodel=YOLO("yolo11n.pt")# Train the model with custom configurationmodel.train(cfg="train_custom.yaml")
# Train the model with custom configuration
yolodetecttrainmodel="yolo11n.pt"cfg=train_custom.yaml
Aumenti dello spazio colore
Regolazione della tonalità (hsv_h)
Intervallo: 0.0 - 1.0
Predefinito: 0.015
Utilizzo: Sposta i colori dell'immagine preservandone le relazioni. The hsv_h L'iperparametro definisce l'entità dello spostamento, con la regolazione finale scelta casualmente tra -hsv_h e hsv_h. Ad esempio, con hsv_h=0.3, lo spostamento viene selezionato casualmente all'interno di-0.3 a 0.3. Per valori superiori a 0.5, lo spostamento di tonalità si avvolge attorno alla ruota dei colori, ecco perché le aumentazioni appaiono uguali tra 0.5 e -0.5.
Scopo: Particolarmente utile per scenari all'aperto in cui le condizioni di illuminazione possono influenzare notevolmente l'aspetto degli oggetti. Ad esempio, una banana potrebbe apparire più gialla sotto la luce del sole intensa, ma più verdognola al chiuso.
Utilizzo: Modifica l'intensità dei colori nell'immagine. Il parametro hsv_h L'iperparametro definisce l'entità dello spostamento, con la regolazione finale scelta casualmente tra -hsv_s e hsv_s. Ad esempio, con hsv_s=0.7, l'intensità viene selezionata casualmente all'interno di-0.7 a 0.7.
Scopo: Aiuta i modelli a gestire diverse condizioni meteorologiche e impostazioni della telecamera. Ad esempio, un segnale stradale rosso potrebbe apparire molto vivido in una giornata di sole, ma apparire opaco e sbiadito in condizioni di nebbia.
Utilizzo: Modifica la luminosità dell'immagine. Il parametro hsv_v L'iperparametro definisce l'entità dello spostamento, con la regolazione finale scelta casualmente tra -hsv_v e hsv_v. Ad esempio, con hsv_v=0.4, l'intensità viene selezionata casualmente all'interno di-0.4 a 0.4.
Scopo: Essenziale per l'addestramento di modelli che devono funzionare in diverse condizioni di illuminazione. Ad esempio, una mela rossa potrebbe apparire brillante alla luce del sole, ma molto più scura all'ombra.
Utilizzo: Ruota le immagini in modo casuale entro l'intervallo specificato. The degrees L'iperparametro definisce l'angolo di rotazione, con la regolazione finale scelta casualmente tra -degrees e degrees. Ad esempio, con degrees=10.0, la rotazione viene selezionata casualmente all'interno di-10.0 a 10.0.
Scopo: Fondamentale per le applicazioni in cui gli oggetti possono apparire con orientamenti diversi. Ad esempio, nelle immagini aeree dei droni, i veicoli possono essere orientati in qualsiasi direzione, richiedendo ai modelli di riconoscere gli oggetti indipendentemente dalla loro rotazione.
Utilizzo: Sposta le immagini orizzontalmente e verticalmente di una frazione casuale della dimensione dell'immagine. The translate L'iperparametro definisce l'entità dello spostamento, con la regolazione finale scelta casualmente due volte (una per ciascun asse) all'interno dell'intervallo -translate e translate. Ad esempio, con translate=0.5, la traslazione viene selezionata casualmente all'interno di-0.5 a 0.5 sull'asse x, e un altro valore casuale indipendente viene selezionato nello stesso intervallo sull'asse y.
Scopo: Aiuta i modelli a imparare a rilevare oggetti parzialmente visibili e migliora la robustezza alla posizione dell'oggetto. Ad esempio, nelle applicazioni di valutazione dei danni ai veicoli, le parti dell'auto possono apparire completamente o parzialmente nell'inquadratura a seconda della posizione e della distanza del fotografo; l'aumento della traslazione insegnerà al modello a riconoscere queste caratteristiche indipendentemente dalla loro completezza o posizione.
Nota: Per semplicità, le traslazioni applicate di seguito sono le stesse ogni volta per entrambi i parametri x e y assi. Valori -1.0 e 1.0non vengono mostrate perché tradurrebbero completamente l'immagine fuori dal frame.
-0.5
-0.25
0.0
0.25
0.5
Scala (scale)
Intervallo: ≥0.0
Predefinito: 0.5
Utilizzo: Ridimensiona le immagini di un fattore casuale all'interno dell'intervallo specificato. Il parametro scale L'iperparametro definisce il fattore di scala, con la regolazione finale scelta casualmente tra 1-scale e 1+scale. Ad esempio, con scale=0.5, il ridimensionamento viene selezionato casualmente all'interno di0.5 a 1.5.
Scopo: Permette ai modelli di gestire oggetti a distanze e dimensioni diverse. Ad esempio, nelle applicazioni di guida autonoma, i veicoli possono apparire a varie distanze dalla telecamera, richiedendo al modello di riconoscerli indipendentemente dalle loro dimensioni.
Il valore -1.0 non viene mostrato perché farebbe scomparire l'immagine, mentre 1.0 si traduce semplicemente in uno zoom 2x.
I valori visualizzati nella tabella sottostante sono quelli applicati tramite l'iperparametro scale, non il fattore di scala finale.
Se scale è maggiore di 1.0, l'immagine può essere molto piccola o capovolta, poiché il fattore di scala è scelto casualmente tra 1-scale e 1+scale. Ad esempio, con scale=3.0, il ridimensionamento viene selezionato casualmente all'interno di-2.0 a 4.0. Se viene scelto un valore negativo, l'immagine viene capovolta.
-0.5
-0.25
0.0
0.25
0.5
Cisalgiamento (shear)
Intervallo: -180 a +180
Predefinito: 0.0
Utilizzo: Introduce una trasformazione geometrica che distorce l'immagine lungo entrambi gli assi x e y, spostando efficacemente parti dell'immagine in una direzione mantenendo le linee parallele. Il parametro shear L'iperparametro definisce l'angolo di taglio, con la regolazione finale scelta casualmente tra -shear e shear. Ad esempio, con shear=10.0, il taglio viene selezionato casualmente all'interno di-10 a 10 sull'asse x, e un altro valore casuale indipendente viene selezionato nello stesso intervallo sull'asse y.
Scopo: Aiuta i modelli a generalizzare le variazioni degli angoli di visualizzazione causate da leggere inclinazioni o punti di vista obliqui. Ad esempio, nel monitoraggio del traffico, oggetti come auto e segnali stradali possono apparire inclinati a causa di posizionamenti non perpendicolari della telecamera. L'applicazione dell'aumento di shear assicura che il modello impari a riconoscere gli oggetti nonostante tali distorsioni oblique.
shear valori possono distorcere rapidamente l'immagine, quindi si consiglia di iniziare con valori piccoli e aumentarli gradualmente.
A differenza delle trasformazioni prospettiche, lo shear non introduce profondità o punti di fuga, ma distorce la forma degli oggetti modificandone gli angoli mantenendo paralleli i lati opposti.
-10
-5
0.0
5
10
Prospettiva (perspective)
Intervallo: 0.0 - 0.001
Predefinito: 0.0
Utilizzo: Applica una trasformazione prospettica completa lungo entrambi gli assi x e y, simulando l'aspetto degli oggetti quando vengono visualizzati da diverse profondità o angolazioni. Il parametro perspective L'iperparametro definisce l'entità della prospettiva, con la regolazione finale scelta casualmente tra -perspective e perspective. Ad esempio, con perspective=0.001, la prospettiva viene selezionata casualmente all'interno di-0.001 a 0.001 sull'asse x, e un altro valore casuale indipendente viene selezionato nello stesso intervallo sull'asse y.
Scopo: L'aumento della prospettiva è fondamentale per gestire cambiamenti estremi del punto di vista, specialmente in scenari in cui gli oggetti appaiono scorciati o distorti a causa di cambiamenti di prospettiva. Ad esempio, nel rilevamento di oggetti basato su drone, edifici, strade e veicoli possono apparire allungati o compressi a seconda dell'inclinazione e dell'altitudine del drone. Applicando trasformazioni prospettiche, i modelli imparano a riconoscere gli oggetti nonostante queste distorsioni indotte dalla prospettiva, migliorando la loro robustezza nelle implementazioni del mondo reale.
Utilizzo: Esegue un ribaltamento verticale invertendo l'immagine lungo l'asse y. Questa trasformazione specchia l'intera immagine capovolta, ma preserva tutte le relazioni spaziali tra gli oggetti. L'iperparametro flipud definisce la probabilità di applicare la trasformazione, con un valore di flipud=1.0 garantendo che tutte le immagini vengano capovolte e un valore di flipud=0.0 disabilitando completamente la trasformazione. Ad esempio, con flipud=0.5, ogni immagine ha una probabilità del 50% di essere capovolta verticalmente.
Scopo: Utile per scenari in cui gli oggetti possono apparire capovolti. Ad esempio, nei sistemi di visione robotica, gli oggetti sui nastri trasportatori o sui bracci robotici possono essere prelevati e posizionati in vari orientamenti. Il ribaltamento verticale aiuta il modello a riconoscere gli oggetti indipendentemente dal loro posizionamento dall'alto verso il basso.
Utilizzo: Esegue un ribaltamento orizzontale specchiando l'immagine lungo l'asse x. Questa trasformazione scambia i lati sinistro e destro mantenendo la coerenza spaziale, il che aiuta il modello a generalizzare gli oggetti che appaiono in orientamenti speculari. Il parametro fliplr L'iperparametro definisce la probabilità di applicare la trasformazione, con un valore di fliplr=1.0 garantendo che tutte le immagini vengano capovolte e un valore di fliplr=0.0 disabilitando completamente la trasformazione. Ad esempio, con fliplr=0.5, ogni immagine ha una probabilità del 50% di essere capovolta orizzontalmente.
Scopo: Il ribaltamento orizzontale è ampiamente utilizzato nel rilevamento di oggetti, nella stima della posa e nel riconoscimento facciale per migliorare la robustezza contro le variazioni sinistra-destra. Ad esempio, nella guida autonoma, veicoli e pedoni possono apparire su entrambi i lati della strada e il ribaltamento orizzontale aiuta il modello a riconoscerli ugualmente bene in entrambi gli orientamenti.
Utilizzo: Scambia i canali di colore di un'immagine da RGB a BGR, alterando l'ordine in cui i colori sono rappresentati. The bgr L'iperparametro definisce la probabilità di applicare la trasformazione, con bgr=1.0 garantendo che tutte le immagini vengano sottoposte allo scambio di canali e bgr=0.0 disabilitandolo. Ad esempio, con bgr=0.5, ogni immagine ha una probabilità del 50% di essere convertita da RGB a BGR.
Scopo: Aumenta la robustezza a diversi ordinamenti dei canali di colore. Ad esempio, quando si addestrano modelli che devono funzionare su vari sistemi di telecamere e librerie di imaging in cui i formati RGB e BGR possono essere utilizzati in modo incoerente, o quando si distribuiscono modelli in ambienti in cui il formato colore di input potrebbe differire dai dati di addestramento.
Utilizzo: Combina quattro immagini di training in una sola. Il parametro mosaic L'iperparametro definisce la probabilità di applicare la trasformazione, con mosaic=1.0 garantendo che tutte le immagini siano combinate e mosaic=0.0 disabilitando la trasformazione. Ad esempio, con mosaic=0.5, ogni immagine ha una probabilità del 50% di essere combinata con altre tre immagini.
Scopo: Altamente efficace per migliorare il rilevamento di piccoli oggetti e la comprensione del contesto. Ad esempio, nei progetti di conservazione della fauna selvatica in cui gli animali possono apparire a varie distanze e scale, l'aumento a mosaico aiuta il modello a imparare a riconoscere la stessa specie attraverso diverse dimensioni, occlusioni parziali e contesti ambientali creando artificialmente campioni di addestramento diversi da dati limitati.
Anche se il mosaic L'aumento dei dati rende il modello più robusto, ma può anche rendere il processo di addestramento più impegnativo.
Il mosaic augmentation can be disabled near the end of training by setting close_mosaic al numero di epoche prima del completamento, quando dovrebbe essere disattivato. Ad esempio, se epochs è impostato su 200 e close_mosaic è impostato su 20, la funzione mosaic l'aumento dei dati verrà disabilitato dopo 180 epoche. Se close_mosaic è impostato su 0, la funzione mosaic l'aumento dei dati sarà abilitato per l'intero processo di addestramento.
Il centro del mosaic generato è determinato utilizzando valori casuali e può trovarsi all'interno o all'esterno dell'immagine.
L'implementazione attuale del mosaic augmentation combines 4 images picked randomly from the dataset. If the dataset is small, the same image may be used multiple times in the same mosaic.
mosaic off
mosaic su
Mixup (mixup)
Intervallo: 0.0 - 1.0
Predefinito: 0.0
Utilizzo: Combina due immagini e le relative etichette con una data probabilità. Il parametro mixup L'iperparametro definisce la probabilità di applicare la trasformazione, con mixup=1.0 garantendo che tutte le immagini siano miscelate e mixup=0.0 disabilitando la trasformazione. Ad esempio, con mixup=0.5, ogni immagine ha una probabilità del 50% di essere mescolata con un'altra immagine.
Scopo: Migliora la robustezza del modello e riduce l'overfitting. Ad esempio, nei sistemi di riconoscimento dei prodotti al dettaglio, mixup aiuta il modello a imparare caratteristiche più robuste mescolando immagini di prodotti diversi, insegnandogli a identificare gli articoli anche quando sono parzialmente visibili o oscurati da altri prodotti sugli scaffali affollati dei negozi.
Il mixup ratio è un valore casuale estratto da a np.random.beta(32.0, 32.0) distribuzione beta, il che significa che ogni immagine contribuisce per circa il 50%, con leggere variazioni.
Prima immagine, mixup off
Seconda immagine, mixup off
mixup su
CutMix (cutmix)
Intervallo: 0.0 - 1.0
Predefinito: 0.0
Utilizzo: Taglia una regione rettangolare da un'immagine e la incolla su un'altra immagine con una data probabilità. Il parametro cutmix L'iperparametro definisce la probabilità di applicare la trasformazione, con cutmix=1.0 garantendo che tutte le immagini vengano sottoposte a questa trasformazione e cutmix=0.0 disabilitandolo completamente. Ad esempio, con cutmix=0.5, ogni immagine ha una probabilità del 50% di avere una regione sostituita con una patch proveniente da un'altra immagine.
Scopo: Migliora le prestazioni del modello creando scenari di occlusione realistici, mantenendo al contempo l'integrità delle caratteristiche locali. Ad esempio, nei sistemi di guida autonoma, cutmix aiuta il modello a imparare a riconoscere veicoli o pedoni anche quando sono parzialmente occlusi da altri oggetti, migliorando la precisione del rilevamento in ambienti reali complessi con oggetti sovrapposti.
La dimensione e la posizione della regione tagliata sono determinate casualmente per ogni applicazione.
A differenza di mixup, che fonde i valori dei pixel a livello globale, cutmix mantiene le intensità dei pixel originali all'interno delle regioni tagliate, preservando le caratteristiche locali.
Una regione viene incollata nell'immagine di destinazione solo se non si sovrappone a nessun bounding box esistente. Inoltre, solo i bounding box che conservano almeno 0.1 (10%) della loro area originale all'interno della regione incollata vengono preservati.
Questa soglia minima dell'area del riquadro di delimitazione non può essere modificata con l'implementazione attuale ed è impostata su 0.1 per impostazione predefinita.
Prima immagine, cutmix off
Seconda immagine, cutmix off
cutmix su
Aumentazioni specifiche per la segmentazione
Copia-Incolla (copy_paste)
Intervallo: 0.0 - 1.0
Predefinito: 0.0
Utilizzo: Funziona solo per le attività di segmentazione; questa augmentation copia oggetti all'interno o tra le immagini in base a una probabilità specificata, controllata dal parametro copy_paste_mode. copy_paste L'iperparametro definisce la probabilità di applicare la trasformazione, con copy_paste=1.0 garantendo che tutte le immagini vengano copiate e copy_paste=0.0 disabilitando la trasformazione. Ad esempio, con copy_paste=0.5, ogni immagine ha una probabilità del 50% di avere oggetti copiati da un'altra immagine.
Scopo: Particolarmente utile per attività di segmentazione di istanze e classi di oggetti rari. Ad esempio, nel rilevamento di difetti industriali in cui alcuni tipi di difetti appaiono raramente, l'aumento di copia-incolla può aumentare artificialmente l'occorrenza di questi difetti rari copiandoli da un'immagine all'altra, aiutando il modello a imparare meglio questi casi sottorappresentati senza richiedere ulteriori campioni difettosi.
Come mostrato nella GIF qui sotto, il copy_paste augmentation can be used to copy objects from one image to another.
Una volta che un oggetto viene copiato, indipendentemente dal copy_paste_mode, la sua Intersection over Area (IoA) viene calcolata con tutti gli oggetti dell'immagine sorgente. Se tutti gli IoA sono inferiori a 0.3 (30%), l'oggetto viene incollato nell'immagine di destinazione. Se solo uno IoA è superiore 0.3, l'oggetto non viene incollato nell'immagine di destinazione.
La soglia IoA non può essere modificata con l'implementazione attuale ed è impostata su 0.3 per impostazione predefinita.
copy_paste off
copy_paste on con copy_paste_mode=flip
Visualizza il copy_paste processo
Modalità Copia-Incolla (copy_paste_mode)
Opzioni: 'flip', 'mixup'
Predefinito: 'flip'
Utilizzo: Determina il metodo utilizzato per copia-incolla aumento dei dati. Se impostato su 'flip', gli oggetti provengono dalla stessa immagine, mentre 'mixup' consente di copiare oggetti da immagini diverse.
Scopo: Consente flessibilità nel modo in cui gli oggetti copiati vengono integrati nelle immagini di destinazione.
Utilizzo: Applica policy di augmentation automatizzate per la classificazione. Il parametro 'randaugment' l'opzione utilizza RandAugment, 'autoaugment' utilizza AutoAugment, e 'augmix' utilizza AugMix. Impostazione su None disabilita l'aumento automatico.
Scopo: Ottimizza automaticamente le strategie di augmentation per le attività di classificazione. Le differenze sono le seguenti:
AutoAugment: Questa modalità applica policy di augmentation predefinite apprese da dataset come ImageNet, CIFAR10 e SVHN. Gli utenti possono selezionare queste policy esistenti ma non possono addestrarne di nuove all'interno di Torchvision. Per scoprire strategie di augmentation ottimali per dataset specifici, sarebbero necessarie librerie esterne o implementazioni personalizzate. Riferimento al paper di AutoAugment.
RandAugment: Applica una selezione casuale di trasformazioni con magnitudo uniforme. Questo approccio riduce la necessità di una fase di ricerca estensiva, rendendolo più efficiente dal punto di vista computazionale pur migliorando la robustezza del modello. Riferimento al paper di RandAugment.
AugMix: AugMix è un metodo di aumento dei dati che migliora la robustezza del modello creando diverse variazioni dell'immagine attraverso combinazioni casuali di trasformazioni semplici. Riferimento al paper di AugMix.
In sostanza, la differenza principale tra i tre metodi risiede nel modo in cui le policy di augmentation sono definite e applicate.
Puoi fare riferimento a questo articolo che confronta i tre metodi in dettaglio.
Random Erasing (erasing)
Intervallo: 0.0 - 0.9
Predefinito: 0.4
Utilizzo: Cancella casualmente porzioni dell'immagine durante il training di classificazione. Il parametro erasing L'iperparametro definisce la probabilità di applicare la trasformazione, con erasing=0.9 garantendo che quasi tutte le immagini vengano cancellate e erasing=0.0 disabilitando la trasformazione. Ad esempio, con erasing=0.5, ogni immagine ha una probabilità del 50% di avere una porzione cancellata.
Scopo: Aiuta i modelli a imparare caratteristiche robuste e previene l'eccessivo affidamento su specifiche regioni dell'immagine. Ad esempio, nei sistemi di riconoscimento facciale, la cancellazione casuale aiuta i modelli a diventare più robusti alle occlusioni parziali come occhiali da sole, maschere facciali o altri oggetti che potrebbero coprire parzialmente le caratteristiche del viso. Ciò migliora le prestazioni nel mondo reale costringendo il modello a identificare gli individui utilizzando molteplici caratteristiche facciali piuttosto che dipendere esclusivamente da caratteristiche distintive che potrebbero essere oscurate.
Il erasing augmentation comes with a scale, ratio, e value Iperparametri che non possono essere modificati con implementazione attuale. I loro valori predefiniti sono (0.02, 0.33), (0.3, 3.3), e 0, rispettivamente, come indicato in PyTorch documentazione.
Il limite superiore del erasing L'iperparametro è impostato su 0.9 per evitare di applicare la trasformazione a tutte le immagini.
erasing off
erasing on (esempio 1)
erasing on (esempio 2)
erasing on (esempio 3)
FAQ
Ci sono troppe aumentazioni tra cui scegliere. Come faccio a sapere quali usare?
La scelta delle giuste tecniche di augmentation dipende dal tuo caso d'uso specifico e dal dataset. Ecco alcune linee guida generali per aiutarti a decidere:
Nella maggior parte dei casi, leggere variazioni di colore e luminosità sono vantaggiose. I valori predefiniti per hsv_h, hsv_s, e hsv_v sono un solido punto di partenza.
Se il punto di vista della telecamera è coerente e non cambierà una volta implementato il modello, è probabile che tu possa saltare trasformazioni geometriche come rotation, translation, scale, shear, oppure perspective. Tuttavia, se l'angolazione della telecamera può variare e hai bisogno che il modello sia più robusto, è meglio mantenere questi aumenti.
Utilizzare il mosaic Aumentare i dati solo se avere oggetti parzialmente occlusi o più oggetti per immagine è accettabile e non modifica il valore dell'etichetta. In alternativa, puoi mantenere mosaic attivo ma aumenta il close_mosaic valore per disabilitarlo prima nel processo di addestramento.
In breve: mantieni la semplicità. Inizia con un piccolo set di aumentazioni e aggiungine gradualmente altre secondo necessità. L'obiettivo è migliorare la generalizzazione e la robustezza del modello, non complicare eccessivamente il processo di training. Inoltre, assicurati che le aumentazioni che applichi riflettano la stessa distribuzione dei dati che il tuo modello incontrerà in produzione.
Quando si avvia un addestramento, si vede un albumentations: Blur[...] riferimento. Significa che Ultralytics YOLO esegue un'ulteriore augmentation come la sfocatura?
Se il albumentations pacchetto è installato, Ultralytics applica automaticamente una serie di aumenti extra dell'immagine utilizzandolo. Questi aumenti vengono gestiti internamente e non richiedono alcuna configurazione aggiuntiva.
Puoi trovare l'elenco completo delle trasformazioni applicate nel nostro documentazione tecnica, così come nel nostro Guida all'integrazione di Albumentations. Si noti che solo gli aumenti con una probabilità p maggiore di 0 sono attive. Queste vengono applicate intenzionalmente a basse frequenze per simulare artefatti visivi del mondo reale, come effetti di sfocatura o scala di grigi.
Quando si avvia un addestramento, non vedo alcun riferimento a albumentations. Perché?
Verificare se il albumentations pacchetto è installato. In caso contrario, puoi installarlo eseguendo pip install albumentations. Una volta installato, il pacchetto dovrebbe essere rilevato e utilizzato automaticamente da Ultralytics.
Come posso personalizzare le mie aumentazioni?
Puoi personalizzare gli aumenti creando una classe di dataset e un trainer personalizzati. Ad esempio, puoi sostituire gli aumenti di classificazione Ultralytics predefiniti con torchvision.transforms.Resize di PyTorch o altre trasformazioni. Consulta l'esempio di training personalizzato nella documentazione sulla classificazione per i dettagli sull'implementazione.