Vai al contenuto

Set di dati SKU-110k

Il set di dati SKU-110k è una raccolta di immagini di scaffali di vendita al dettaglio densamente impacchettati, progettata per supportare la ricerca nei compiti di rilevamento degli oggetti. Sviluppato da Eran Goldman et al., il set di dati contiene oltre 110.000 categorie uniche di SKU (Store Keeping Unit) con oggetti densamente impacchettati, spesso simili o addirittura identici, posizionati in prossimità.



Guarda: Come addestrare YOLOv10 sul dataset SKU-110k utilizzando Ultralytics | Dataset Retail

Immagine campione del set di dati

Caratteristiche principali

  • SKU-110k contiene immagini di scaffali di negozi di tutto il mondo, con oggetti densamente impacchettati che rappresentano una sfida per i rilevatori di oggetti più avanzati.
  • Il set di dati comprende oltre 110.000 categorie di SKU uniche, che forniscono una gamma diversificata di apparenze degli oggetti.
  • Le annotazioni includono i riquadri di delimitazione degli oggetti e le etichette delle categorie SKU.

Struttura del set di dati

Il set di dati SKU-110k è organizzato in tre sottoinsiemi principali:

  1. Set di addestramento: Questo sottoinsieme contiene immagini e annotazioni utilizzate per addestrare i modelli di rilevamento degli oggetti.
  2. Set di convalida: Questo sottoinsieme è costituito da immagini e annotazioni utilizzate per la convalida del modello durante l'addestramento.
  3. Set di test: Questo sottoinsieme è progettato per la valutazione finale dei modelli di rilevamento degli oggetti addestrati.

Applicazioni

Il dataset SKU-110k è ampiamente utilizzato per l'addestramento e la valutazione di modelli di deep learning in compiti di rilevamento di oggetti, in particolare in scene densamente affollate come gli scaffali dei negozi. La varietà di categorie di SKU e la disposizione degli oggetti in un ambiente denso lo rendono una risorsa preziosa per i ricercatori e i professionisti nel campo della computer vision.

Set di dati YAML

Un file YAML (Yet Another Markup Language) è usato per definire la configurazione del dataset. Contiene informazioni sui percorsi del dataset, sulle classi e altre informazioni rilevanti. Nel caso del set di dati SKU-110K, il file SKU-110K.yaml Il file viene mantenuto all'indirizzo https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml.

ultralytics/cfg/datasets/SKU-110K.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# SKU-110K retail items dataset https://github.com/eg4000/SKU110K_CVPR19 by Trax Retail
# Documentation: https://docs.ultralytics.com/datasets/detect/sku-110k/
# Example usage: yolo train data=SKU-110K.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── SKU-110K  ← downloads here (13.6 GB)

# 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/SKU-110K # dataset root dir
train: train.txt # train images (relative to 'path')  8219 images
val: val.txt # val images (relative to 'path')  588 images
test: test.txt # test images (optional)  2936 images

# Classes
names:
  0: object

# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
  import shutil
  from pathlib import Path

  import numpy as np
  import pandas as pd
  from tqdm import tqdm

  from ultralytics.utils.downloads import download
  from ultralytics.utils.ops import xyxy2xywh

  # Download
  dir = Path(yaml['path'])  # dataset root dir
  parent = Path(dir.parent)  # download dir
  urls = ['http://trax-geometry.s3.amazonaws.com/cvpr_challenge/SKU110K_fixed.tar.gz']
  download(urls, dir=parent)

  # Rename directories
  if dir.exists():
      shutil.rmtree(dir)
  (parent / 'SKU110K_fixed').rename(dir)  # rename dir
  (dir / 'labels').mkdir(parents=True, exist_ok=True)  # create labels dir

  # Convert labels
  names = 'image', 'x1', 'y1', 'x2', 'y2', 'class', 'image_width', 'image_height'  # column names
  for d in 'annotations_train.csv', 'annotations_val.csv', 'annotations_test.csv':
      x = pd.read_csv(dir / 'annotations' / d, names=names).values  # annotations
      images, unique_images = x[:, 0], np.unique(x[:, 0])
      with open((dir / d).with_suffix('.txt').__str__().replace('annotations_', ''), 'w') as f:
          f.writelines(f'./images/{s}\n' for s in unique_images)
      for im in tqdm(unique_images, desc=f'Converting {dir / d}'):
          cls = 0  # single-class dataset
          with open((dir / 'labels' / im).with_suffix('.txt'), 'a') as f:
              for r in x[images == im]:
                  w, h = r[6], r[7]  # image width, height
                  xywh = xyxy2xywh(np.array([[r[1] / w, r[2] / h, r[3] / w, r[4] / h]]))[0]  # instance
                  f.write(f"{cls} {xywh[0]:.5f} {xywh[1]:.5f} {xywh[2]:.5f} {xywh[3]:.5f}\n")  # write label

Utilizzo

Per addestrare un modello YOLO11n sul dataset SKU-110K per 100 epoche con una dimensione dell'immagine di 640, è possibile utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consultare la pagina di addestramento del modello.

Esempio di treno

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="SKU-110K.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=SKU-110K.yaml model=yolo11n.pt epochs=100 imgsz=640

Dati e annotazioni di esempio

Il set di dati SKU-110k contiene una serie di immagini di scaffali di vendita al dettaglio con oggetti densamente impacchettati, che forniscono un contesto ricco per le attività di rilevamento degli oggetti. Ecco alcuni esempi di dati tratti dal dataset, con le relative annotazioni:

Immagine campione del set di dati

  • Immagine di scaffale di vendita al dettaglio densamente imballato: Questa immagine mostra un esempio di oggetti densamente impacchettati in uno scaffale di vendita al dettaglio. Gli oggetti sono annotati con caselle di delimitazione ed etichette di categoria SKU.

L'esempio mostra la varietà e la complessità dei dati del set di dati SKU-110k e sottolinea l'importanza di dati di alta qualità per le attività di rilevamento degli oggetti.

Citazioni e ringraziamenti

Se utilizzate il set di dati SKU-110k nel vostro lavoro di ricerca o sviluppo, siete pregati di citare il seguente documento:

@inproceedings{goldman2019dense,
 author    = {Eran Goldman and Roei Herzig and Aviv Eisenschtat and Jacob Goldberger and Tal Hassner},
 title     = {Precise Detection in Densely Packed Scenes},
 booktitle = {Proc. Conf. Comput. Vision Pattern Recognition (CVPR)},
 year      = {2019}
}

Desideriamo ringraziare Eran Goldman et al. per aver creato e mantenuto il dataset SKU-110k come risorsa preziosa per la comunità di ricerca sulla computer vision. Per ulteriori informazioni sul dataset SKU-110k e sui suoi creatori, visitare il repository GitHub del dataset SKU-110k.

FAQ

Che cos'è il dataset SKU-110k e perché è importante per il rilevamento degli oggetti?

Il set di dati SKU-110k è costituito da immagini di scaffali di vendita al dettaglio ad alta densità, progettate per aiutare la ricerca nei compiti di rilevamento degli oggetti. Sviluppato da Eran Goldman et al., comprende oltre 110.000 categorie di articoli unici. La sua importanza risiede nella capacità di mettere alla prova i rilevatori di oggetti all'avanguardia con diverse apparenze di oggetti e vicinanza, rendendolo una risorsa inestimabile per i ricercatori e i professionisti della computer vision. Per saperne di più sulla struttura e sulle applicazioni del dataset, consultare la sezione Dataset SKU-110k.

Come si addestra un modello YOLO11 utilizzando il dataset SKU-110k?

L'addestramento di un modello YOLO11 sul dataset SKU-110k è semplice. Ecco un esempio di addestramento di un modello YOLO11n per 100 epoch con un'immagine di dimensioni 640:

Esempio di treno

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="SKU-110K.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=SKU-110K.yaml model=yolo11n.pt epochs=100 imgsz=640

Per un elenco completo degli argomenti disponibili, consultare la pagina Formazione del modello.

Quali sono i principali sottoinsiemi del dataset SKU-110k?

Il set di dati SKU-110k è organizzato in tre sottoinsiemi principali:

  1. Set di addestramento: Contiene immagini e annotazioni utilizzate per addestrare i modelli di rilevamento degli oggetti.
  2. Set di convalida: Consiste nelle immagini e nelle annotazioni utilizzate per la convalida del modello durante l'addestramento.
  3. Set di test: Progettato per la valutazione finale dei modelli di rilevamento degli oggetti addestrati.

Per maggiori dettagli, consultare la sezione Struttura del set di dati.

Come si configura il dataset SKU-110k per l'addestramento?

La configurazione del set di dati SKU-110k è definita in un file YAML, che include dettagli sui percorsi, le classi e altre informazioni rilevanti del set di dati. Il file SKU-110K.yaml Il file viene mantenuto all'indirizzo SKU-110K.yaml. Ad esempio, è possibile addestrare un modello utilizzando questa configurazione, come mostrato nel nostro esempio di Utilizzo sezione.

Quali sono le caratteristiche principali del dataset SKU-110k nel contesto del deep learning?

Il set di dati SKU-110k contiene immagini di scaffali di negozi di tutto il mondo, che mostrano oggetti densamente impacchettati che pongono sfide significative ai rilevatori di oggetti:

  • Oltre 110.000 categorie di SKU uniche
  • Aspetti diversi degli oggetti
  • Le annotazioni includono i riquadri di delimitazione e le etichette delle categorie di SKU.

Queste caratteristiche rendono il dataset SKU-110k particolarmente prezioso per l'addestramento e la valutazione di modelli di deep learning in compiti di rilevamento di oggetti. Per maggiori dettagli, consultare la sezione Caratteristiche principali.

Come posso citare il dataset SKU-110k nella mia ricerca?

Se utilizzate il set di dati SKU-110k nel vostro lavoro di ricerca o sviluppo, siete pregati di citare il seguente documento:

@inproceedings{goldman2019dense,
 author    = {Eran Goldman and Roei Herzig and Aviv Eisenschtat and Jacob Goldberger and Tal Hassner},
 title     = {Precise Detection in Densely Packed Scenes},
 booktitle = {Proc. Conf. Comput. Vision Pattern Recognition (CVPR)},
 year      = {2019}
}

Ulteriori informazioni sul set di dati sono disponibili nella sezione Citazioni e ringraziamenti.

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

Commenti