Vai al contenuto

Panoramica dei set di dati per il rilevamento degli oggetti

L'addestramento di un modello di rilevamento degli oggetti robusto e accurato richiede un set di dati completo. Questa guida introduce i vari formati di set di dati compatibili con il modello Ultralytics YOLO e fornisce informazioni sulla loro struttura, sull'uso e su come convertire i diversi formati.

Formati di set di dati supportati

Ultralytics YOLO formato

Il formato Ultralytics YOLO è un formato di configurazione del set di dati che permette di definire la directory principale del set di dati, i percorsi relativi alle directory delle immagini di addestramento/validazione/test o *.txt contenenti i percorsi delle immagini e un dizionario di nomi di classi. Ecco un esempio:

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Classes (80 COCO classes)
names:
    0: person
    1: bicycle
    2: car
    # ...
    77: teddy bear
    78: hair drier
    79: toothbrush

Le etichette per questo formato devono essere esportate nel formato YOLO con una *.txt file per immagine. Se non ci sono oggetti in un'immagine, non ci sono file di *.txt è necessario. Il *.txt Il file deve essere formattato con una riga per ogni oggetto in class x_center y_center width height formato. Le coordinate della casella devono essere in xywh normalizzato (da 0 a 1). Se le caselle sono in pixel, è necessario dividere x_center e width per larghezza dell'immagine e y_center e height per altezza dell'immagine. I numeri delle classi devono essere indicizzati a zero (iniziano con 0).

Esempio di immagine etichettata

Il file di etichetta corrispondente all'immagine precedente contiene 2 persone (classe 0) e un pareggio (classe 27):

Esempio di file di etichetta

Quando si utilizza il formato Ultralytics YOLO , organizzare le immagini di addestramento e di convalida e le etichette come mostrato nell'esempio del set di dati COCO8.

Esempio di struttura della directory del set di dati

Utilizzo

Ecco come utilizzare questi formati per addestrare il modello:

Esempio

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

Set di dati supportati

Ecco un elenco dei set di dati supportati e una breve descrizione per ciascuno di essi:

  • Argoverse: Un set di dati che contiene dati di tracciamento 3D e di previsione del movimento da ambienti urbani, con annotazioni ricche.
  • COCO: Common Objects in Context (COCO) è un set di dati su larga scala per il rilevamento, la segmentazione e la didascalia di oggetti con 80 categorie di oggetti.
  • LVIS: un set di dati su larga scala per il rilevamento, la segmentazione e la didascalia di oggetti con 1203 categorie di oggetti.
  • COCO8: un sottoinsieme più piccolo delle prime 4 immagini di COCO train e COCO val, adatto a test rapidi.
  • COCO128: un sottoinsieme più piccolo delle prime 128 immagini di COCO train e COCO val, adatto per i test.
  • Grano globale 2020: Un set di dati contenente immagini di teste di grano per la Global Wheat Challenge 2020.
  • Oggetti365: Un set di dati di alta qualità e su larga scala per il rilevamento di oggetti, con 365 categorie di oggetti e oltre 600.000 immagini annotate.
  • OpenImagesV7: un set di dati completo di Google con 1,7 milioni di immagini di addestramento e 42.000 immagini di convalida.
  • SKU-110K: Un set di dati per il rilevamento di oggetti densi in ambienti di vendita al dettaglio con oltre 11.000 immagini e 1,7 milioni di caselle di delimitazione.
  • VisDrone: Un set di dati contenente dati sul rilevamento di oggetti e sul tracciamento di più oggetti da immagini catturate da droni con oltre 10.000 immagini e sequenze video.
  • VOC: il dataset Pascal Visual Object Classes (VOC) per il rilevamento e la segmentazione degli oggetti con 20 classi di oggetti e oltre 11.000 immagini.
  • xView: Un set di dati per il rilevamento di oggetti in immagini dall'alto con 60 categorie di oggetti e oltre 1 milione di oggetti annotati.
  • Roboflow 100: un benchmark per il rilevamento di oggetti diversi con 100 set di dati che coprono sette domini di immagini per una valutazione completa dei modelli.
  • Tumore al cervello: Un set di dati per il rilevamento dei tumori cerebrali comprende immagini di risonanza magnetica o TAC con dettagli sulla presenza, la posizione e le caratteristiche del tumore.
  • African-wildlife: Un set di dati con immagini di animali selvatici africani, tra cui bufali, elefanti, rinoceronti e zebre.
  • Firma: Un set di dati che contiene immagini di vari documenti con firme annotate, a supporto della verifica dei documenti e della ricerca sulle frodi.

Aggiungere il proprio set di dati

Se si dispone di un proprio set di dati e si desidera utilizzarlo per l'addestramento dei modelli di rilevamento con il formato Ultralytics YOLO , assicurarsi che segua il formato specificato sopra in "FormatoUltralytics YOLO ". Convertire le annotazioni nel formato richiesto e specificare i percorsi, il numero di classi e i nomi delle classi nel file di configurazione YAML.

Trasferire o convertire i formati delle etichette

Formato del set di dati COCO in formato YOLO

È possibile convertire facilmente le etichette dal popolare formato di set di dati COCO al formato YOLO utilizzando il seguente frammento di codice:

Esempio

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

Questo strumento di conversione può essere utilizzato per convertire il set di dati COCO o qualsiasi set di dati in formato COCO nel formato Ultralytics YOLO .

Ricordarsi di verificare se il set di dati che si desidera utilizzare è compatibile con il modello e segue le convenzioni di formato necessarie. I set di dati correttamente formattati sono fondamentali per addestrare modelli di rilevamento di oggetti di successo.

FAQ

Qual è il formato del dataset Ultralytics YOLO e come strutturarlo?

Il formato Ultralytics YOLO è una configurazione strutturata per definire i set di dati nei progetti di formazione. Comporta l'impostazione dei percorsi delle immagini di addestramento, validazione e test e delle etichette corrispondenti. Ad esempio:

path: ../datasets/coco8 # dataset root directory
train: images/train # training images (relative to 'path')
val: images/val # validation images (relative to 'path')
test: # optional test images
names:
    0: person
    1: bicycle
    2: car
    # ...

Le etichette vengono salvate in *.txt con un file per immagine, formattato come class x_center y_center width height con coordinate normalizzate. Per una guida dettagliata, consultare la sezione Esempio di set di dati COCO8.

Come si fa a convertire un dataset COCO nel formato YOLO ?

È possibile convertire un set di dati COCO nel formato YOLO utilizzando gli strumenti di conversione Ultralytics . Ecco un metodo rapido:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

Questo codice converte le annotazioni COCO in formato YOLO , consentendo una perfetta integrazione con i modelli Ultralytics YOLO . Per ulteriori dettagli, visitate la sezione Porta o Converti i formati delle etichette.

Quali set di dati sono supportati da Ultralytics YOLO per il rilevamento degli oggetti?

Ultralytics YOLO supporta un'ampia gamma di set di dati, tra cui:

La pagina di ciascun set di dati fornisce informazioni dettagliate sulla struttura e sull'utilizzo, studiate su misura per un addestramento efficiente di YOLO11 . Esplorate l'elenco completo nella sezione Set di dati supportati.

Come posso iniziare ad addestrare un modello YOLO11 utilizzando il mio set di dati?

Per iniziare l'addestramento di un modello YOLO11 , assicurarsi che il dataset sia formattato correttamente e che i percorsi siano definiti in un file YAML. Utilizzare il seguente script per iniziare l'addestramento:

Esempio

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=path/to/your_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640

Per ulteriori dettagli sull'utilizzo delle diverse modalità, compresi i comandi di CLI , consultare la sezione Uso.

Dove posso trovare esempi pratici di utilizzo di Ultralytics YOLO per il rilevamento degli oggetti?

Ultralytics fornisce numerosi esempi e guide pratiche per l'utilizzo di YOLO11 in diverse applicazioni. Per una panoramica completa, visitate il blogUltralytics dove potete trovare casi di studio, esercitazioni dettagliate e storie della comunità che mostrano il rilevamento di oggetti, la segmentazione e altro ancora con YOLO11. Per esempi specifici, consultare la sezione Uso della documentazione.

📅C reato 1 anno fa ✏️ Aggiornato 2 mesi fa

Commenti