Panoramica sui dataset

Ultralytics fornisce supporto per diversi dataset per facilitare le attività di computer vision come detection, instance segmentation, semantic segmentation, pose estimation, classification e multi-object tracking. Di seguito trovi un elenco dei principali dataset Ultralytics, seguito da una sintesi di ogni attività di computer vision e dai rispettivi dataset.



Watch: Ultralytics Datasets Overview

Object Detection

La bounding box object detection è una tecnica di computer vision che consiste nel rilevare e localizzare oggetti in un'immagine disegnando un riquadro di delimitazione attorno a ciascun oggetto.

  • African-wildlife: Un dataset che contiene immagini di fauna selvatica africana, tra cui bufali, elefanti, rinoceronti e zebre.
  • Argoverse: Un dataset contenente dati di 3D tracking e motion forecasting da ambienti urbani con annotazioni ricche.
  • Brain-tumor: Un dataset per il rilevamento di tumori cerebrali che include immagini di scansioni MRI o TC con dettagli sulla presenza, posizione e caratteristiche del tumore.
  • COCO: Common Objects in Context (COCO) è un dataset su larga scala per object detection, segmentation e captioning con 80 categorie di oggetti.
  • COCO8: Un subset più piccolo delle prime 4 immagini di COCO train e COCO val, adatto per test rapidi.
  • COCO8-Grayscale: Una versione in scala di grigi di COCO8 creata convertendo RGB in scala di grigi, utile per la valutazione di modelli a canale singolo.
  • COCO8-Multispectral: Una versione multispettrale a 10 canali di COCO8 creata interpolando le lunghezze d'onda RGB, utile per la valutazione di modelli basata su spettro.
  • COCO128: Un subset più piccolo delle prime 128 immagini di COCO train e COCO val, adatto per dei test.
  • Construction-PPE: Un dataset di immagini di cantieri edili annotate con dispositivi di sicurezza chiave come caschi, giubbotti, guanti, stivali e occhiali protettivi, insieme a etichette per l'attrezzatura mancante, che supporta lo sviluppo di modelli AI per la conformità e la protezione dei lavoratori.
  • Global Wheat 2020: Un dataset contenente immagini di teste di grano per la Global Wheat Challenge 2020.
  • HomeObjects-3K: Un dataset di scene d'interni annotate che presenta 12 comuni oggetti domestici, ideale per sviluppare e testare modelli di computer vision in sistemi di smart home, robotica e realtà aumentata.
  • KITTI Nuovo: Un noto dataset per la guida autonoma che include input stereo, LiDAR e GPS/IMU, utilizzato per la 2D object detection in svariati scenari stradali.
  • LVIS: Un dataset su larga scala per object detection, segmentation e captioning con 1203 categorie di oggetti.
  • Medical-pills: Un dataset contenente immagini etichettate di pillole mediche, progettato per aiutare in attività come il controllo qualità farmaceutico, la selezione e la garanzia di conformità agli standard del settore.
  • Objects365: Un dataset di alta qualità su larga scala per object detection con 365 categorie di oggetti e oltre 600.000 immagini annotate.
  • OpenImagesV7: Un dataset completo di Google con 1,7 milioni di immagini di train e 42.000 immagini di validazione.
  • RF100: Un benchmark diversificato di object detection con 100 dataset che coprono sette domini di immagini per una valutazione completa del modello.
  • Signature: Un dataset che contiene immagini di vari documenti con firme annotate, che supporta la verifica dei documenti e la ricerca sul rilevamento delle frodi.
  • SKU-110K: Un dataset che presenta object detection densa in ambienti di vendita al dettaglio con oltre 11.000 immagini e 1,7 milioni di bounding boxes.
  • VisDrone: Un dataset contenente dati di object detection e multi-object tracking da immagini catturate da droni con oltre 10.000 immagini e sequenze video.
  • VOC: Il dataset Pascal Visual Object Classes (VOC) per object detection e segmentation con 20 classi di oggetti e oltre 11.000 immagini.
  • xView: Un dataset per object detection in immagini dall'alto con 60 categorie di oggetti e oltre 1 milione di oggetti annotati.

Instance Segmentation

L'instance segmentation è una tecnica di computer vision che consiste nell'identificare e localizzare gli oggetti in un'immagine a livello di pixel. A differenza della semantic segmentation, che classifica solo ogni pixel, la instance segmentation distingue tra diverse istanze della stessa classe.

  • Carparts-seg: Dataset creato appositamente per identificare parti di veicoli, soddisfacendo le esigenze di progettazione, produzione e ricerca. Serve sia per attività di object detection che di segmentation.
  • COCO: Un dataset su larga scala progettato per attività di object detection, segmentation e captioning con oltre 200.000 immagini etichettate.
  • COCO8-seg: Un dataset più piccolo per attività di instance segmentation, che contiene un subset di 8 immagini COCO con annotazioni di segmentazione.
  • COCO128-seg: Un dataset più piccolo per attività di instance segmentation, che contiene un subset di 128 immagini COCO con annotazioni di segmentazione.
  • Crack-seg: Dataset realizzato specificamente per rilevare crepe su strade e pareti, applicabile sia per attività di object detection che di segmentation.
  • Package-seg: Dataset su misura per identificare pacchi in magazzini o ambienti industriali, adatto sia per applicazioni di object detection che di segmentation.

Semantic Segmentation

La semantic segmentation assegna un'etichetta di classe a ogni pixel in un'immagine, producendo mappe di scena dense per applicazioni come la guida autonoma, il parsing di scene e la mappatura del suolo.

  • Cityscapes: Dataset di semantic segmentation di scene stradali urbane con 19 classi di train.
  • Cityscapes8: Un subset compatto di 8 immagini di Cityscapes per controlli rapidi della pipeline di semantic segmentation.
  • ADE20K: Dataset di scene parsing con 150 classi semantiche.

Pose Estimation

La pose estimation è una tecnica utilizzata per determinare la posa di un oggetto rispetto alla telecamera o al sistema di coordinate globale. Ciò comporta l'identificazione di punti chiave o articolazioni sugli oggetti, in particolare esseri umani o animali.

  • COCO: Un dataset su larga scala con annotazioni di posa umana progettato per attività di pose estimation.
  • COCO8-pose: Un dataset più piccolo per attività di pose estimation, contenente un subset di 8 immagini COCO con annotazioni di posa umana.
  • Dog-pose: Un dataset completo con circa 6.000 immagini incentrate sui cani, annotate con 24 punti chiave per cane, su misura per attività di pose estimation.
  • Hand-Keypoints: Un dataset conciso con oltre 26.000 immagini incentrate sulle mani umane, annotate con 21 punti chiave per mano, progettato per attività di pose estimation.
  • Tiger-pose: Un dataset compatto composto da 263 immagini incentrate sulle tigri, annotate con 12 punti chiave per tigre per attività di pose estimation.

Classification

La image classification è un'attività di computer vision che prevede la categorizzazione di un'immagine in una o più classi o categorie predefinite in base al suo contenuto visivo.

  • Caltech 101: Un dataset contenente immagini di 101 categorie di oggetti per attività di image classification.
  • Caltech 256: Una versione estesa di Caltech 101 con 256 categorie di oggetti e immagini più impegnative.
  • CIFAR-10: Un dataset di 60.000 immagini a colori 32x32 in 10 classi, con 6.000 immagini per classe.
  • CIFAR-100: Una versione estesa di CIFAR-10 con 100 categorie di oggetti e 600 immagini per classe.
  • Fashion-MNIST: Un dataset composto da 70.000 immagini in scala di grigi di 10 categorie di moda per attività di image classification.
  • ImageNet: Un dataset su larga scala per object detection e image classification con oltre 14 milioni di immagini e 20.000 categorie.
  • ImageNet-10: Un subset più piccolo di ImageNet con 10 categorie per una sperimentazione e un test più rapidi.
  • Imagenette: Un subset più piccolo di ImageNet che contiene 10 classi facilmente distinguibili per un training e un test più rapidi.
  • Imagewoof: Un subset più impegnativo di ImageNet che contiene 10 categorie di razze canine per attività di image classification.
  • MNIST: Un dataset di 70.000 immagini in scala di grigi di cifre scritte a mano per attività di image classification.
  • MNIST160: Prime 8 immagini di ogni categoria MNIST dal dataset MNIST. Il dataset contiene 160 immagini in totale.

Oriented Bounding Boxes (OBB)

Le Oriented Bounding Boxes (OBB) sono un metodo di computer vision per rilevare oggetti angolati nelle immagini utilizzando bounding box ruotate, spesso applicate a immagini aeree e satellitari. A differenza delle bounding box tradizionali, le OBB possono adattarsi meglio agli oggetti con varie orientazioni.

  • DOTA-v2: Un popolare dataset di immagini aeree OBB con 1,7 milioni di istanze e 11.268 immagini.
  • DOTA8: Un subset più piccolo delle prime 8 immagini dal set di split DOTAv1, 4 per il training e 4 per la validazione, adatto per test rapidi.
  • DOTA128: Un subset di 128 immagini del dataset DOTA con 128 immagini per training e validazione, che offre un buon equilibrio tra dimensioni e diversità per il test di modelli OBB.

Multi-Object Tracking

Il multi-object tracking è una tecnica di computer vision che comporta il rilevamento e il tracciamento di oggetti multipli nel tempo in una sequenza video. Questa attività estende l'object detection mantenendo identità coerenti degli oggetti tra i frame.

  • Argoverse: Un dataset contenente dati di 3D tracking e motion forecasting da ambienti urbani con annotazioni ricche per attività di multi-object tracking.
  • VisDrone: Un dataset contenente dati di object detection e multi-object tracking da immagini catturate da droni con oltre 10.000 immagini e sequenze video.

Contribuisci con nuovi dataset

Contribuire con un nuovo dataset comporta diversi passaggi per garantire che sia ben allineato con l'infrastruttura esistente. Di seguito sono riportati i passaggi necessari:



Watch: How to Contribute to Ultralytics Datasets

Passaggi per contribuire con un nuovo dataset

  1. Raccogli le immagini: Raccogli le immagini che appartengono al dataset. Queste potrebbero essere raccolte da varie fonti, come database pubblici o la tua collezione personale.

  2. Annota le immagini: Annota queste immagini con bounding box, segmenti o punti chiave, a seconda dell'attività.

  3. Esporta le annotazioni: Converti queste annotazioni nel formato di file YOLO *.txt supportato da Ultralytics.

  4. Organizza il dataset: Organizza il tuo dataset nella struttura di cartelle corretta. Dovresti avere directory di primo livello images/ e labels/ e, all'interno di ciascuna, una sottodirectory train/ e val/.

    dataset/
    ├── images/
    │   ├── train/
    │   └── val/
    └── labels/
        ├── train/
        └── val/
  5. Crea un file data.yaml: Nella directory root del tuo dataset, crea un file data.yaml che descriva il dataset, le classi e altre informazioni necessarie.

  6. Ottimizza le immagini (Opzionale): Se vuoi ridurre le dimensioni del dataset per un'elaborazione più efficiente, puoi ottimizzare le immagini utilizzando il codice qui sotto. Non è richiesto, ma è consigliato per dimensioni del dataset più piccole e velocità di download più elevate.

  7. Comprimi il dataset: Comprimi l'intera cartella del dataset in un file zip.

  8. Documentazione e PR: Crea una pagina di documentazione che descriva il tuo dataset e come si inserisce nel framework esistente. Dopo di ciò, invia una Pull Request (PR). Fai riferimento alle Linee guida per i contributi di Ultralytics per maggiori dettagli su come inviare una PR.

Codice di esempio per ottimizzare e comprimere un dataset

Ottimizza e comprimi un dataset
   from pathlib import Path

   from ultralytics.data.utils import compress_one_image
   from ultralytics.utils.downloads import zip_directory

   # Define dataset directory
   path = Path("path/to/dataset")

   # Optimize images in dataset (optional)
   for f in path.rglob("*.jpg"):
       compress_one_image(f)

   # Zip dataset into 'path/to/dataset.zip'
   zip_directory(path)

Seguendo questi passaggi, puoi contribuire con un nuovo dataset che si integra bene con la struttura esistente di Ultralytics.

FAQ

Quali dataset supporta Ultralytics per l'object detection?

Ultralytics supporta un'ampia varietà di dataset per l'object detection, tra cui:

  • COCO: Un dataset su larga scala per object detection, segmentation e captioning con 80 categorie di oggetti.
  • LVIS: Un dataset esteso con 1203 categorie di oggetti, progettato per un'object detection e segmentation più granulare.
  • Argoverse: Un dataset contenente dati di 3D tracking e motion forecasting da ambienti urbani con annotazioni ricche.
  • VisDrone: Un dataset con dati di object detection e multi-object tracking da immagini catturate da droni.
  • SKU-110K: Caratterizzato da object detection densa in ambienti di vendita al dettaglio con oltre 11.000 immagini.

Questi dataset facilitano il training di solidi modelli Ultralytics YOLO per varie applicazioni di object detection.

Come posso contribuire con un nuovo dataset a Ultralytics?

Contribuire con un nuovo dataset comporta diversi passaggi:

  1. Raccogli le immagini: Raccogli immagini da database pubblici o collezioni personali.
  2. Annota le immagini: Applica bounding box, segmenti o punti chiave, a seconda dell'attività.
  3. Esporta le annotazioni: Converti le annotazioni nel formato YOLO *.txt.
  4. Organizza il dataset: Usa la struttura di cartelle con directory train/ e val/, ciascuna contenente sottodirectory images/ e labels/.
  5. Crea un file data.yaml: Includi descrizioni del dataset, classi e altre informazioni pertinenti.
  6. Ottimizza le immagini (Opzionale): Riduci le dimensioni del dataset per l'efficienza.
  7. Comprimi il dataset: Comprimi il dataset in un file zip.
  8. Documentazione e PR: Descrivi il tuo dataset e invia una Pull Request seguendo le Linee guida per i contributi di Ultralytics.

Visita Contribuisci con nuovi dataset per una guida completa.

Perché dovrei usare la Piattaforma Ultralytics per il mio dataset?

La Ultralytics Platform offre funzionalità potenti per la gestione e l'analisi dei dataset, tra cui:

  • Gestione fluida dei dataset: Carica, organizza e gestisci i tuoi dataset in un unico posto.
  • Integrazione immediata per l'addestramento: Usa i dataset caricati direttamente per l'addestramento dei modelli senza configurazioni aggiuntive.
  • Strumenti di visualizzazione: Esplora e visualizza le immagini e le annotazioni del tuo dataset.
  • Analisi del dataset: Ottieni informazioni sulla distribuzione e sulle caratteristiche del tuo dataset.

La piattaforma semplifica il passaggio dalla gestione del dataset all'addestramento del modello, rendendo l'intero processo più efficiente. Scopri di più su Ultralytics Platform Datasets.

Quali sono le caratteristiche uniche dei modelli YOLO di Ultralytics per la computer vision?

I modelli YOLO di Ultralytics offrono diverse caratteristiche uniche per i task di computer vision:

  • Prestazioni in tempo reale: Capacità di inferenza e addestramento ad alta velocità per applicazioni sensibili al fattore tempo.
  • Versatilità: Supporto per task di detection, instance segmentation, semantic segmentation, classification e pose estimation in un framework unificato.
  • Modelli preaddestrati: Accesso a modelli preaddestrati ad alte prestazioni per varie applicazioni, riducendo i tempi di addestramento.
  • Supporto esteso dalla community: Community attiva e documentazione completa per la risoluzione dei problemi e lo sviluppo.
  • Facile integrazione: API semplice per l'integrazione con progetti e workflow esistenti.

Scopri di più sui modelli YOLO nella pagina Ultralytics Models.

Come posso ottimizzare e comprimere un dataset utilizzando gli strumenti Ultralytics?

Per ottimizzare e comprimere un dataset utilizzando gli strumenti Ultralytics, segui questo codice di esempio:

Ottimizza e comprimi un dataset
from pathlib import Path

from ultralytics.data.utils import compress_one_image
from ultralytics.utils.downloads import zip_directory

# Define dataset directory
path = Path("path/to/dataset")

# Optimize images in dataset (optional)
for f in path.rglob("*.jpg"):
    compress_one_image(f)

# Zip dataset into 'path/to/dataset.zip'
zip_directory(path)

Questo processo aiuta a ridurre le dimensioni del dataset per un'archiviazione più efficiente e velocità di download più rapide. Scopri di più su come Ottimizzare e comprimere un dataset.

Commenti