Meet YOLO26: next-gen vision AI.

Link to this sectionDataset SKU-110k#

Il dataset SKU-110k è una raccolta di immagini di scaffali di negozi densamente riforniti, progettata per supportare la ricerca in attività di object detection. Sviluppato da Eran Goldman et al., il dataset contiene oltre 110.000 categorie uniche di SKU (stock keeping unit) con oggetti densamente raggruppati, spesso dall'aspetto simile o addirittura identico, posizionati in stretta vicinanza.



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Rilevamento di scaffali di negozi densamente riforniti con il dataset SKU-110K

Link to this sectionCaratteristiche principali#

  • SKU-110k contiene immagini di scaffali di negozi di tutto il mondo, caratterizzate da oggetti densamente raggruppati che pongono sfide ai più avanzati sistemi di object detection.
  • Il dataset include oltre 110.000 categorie SKU uniche, offrendo una vasta gamma di aspetti degli oggetti.
  • Le annotazioni includono bounding box per gli oggetti ed etichette per le categorie SKU.

Link to this sectionStruttura del dataset#

Il dataset SKU-110k è organizzato in tre subset principali:

  1. Training set: Questo subset contiene 8.219 immagini e annotazioni utilizzate per l'addestramento di modelli di object detection.
  2. Validation set: Questo subset consiste in 588 immagini e annotazioni utilizzate per la validazione del modello durante l'addestramento.
  3. Test set: Questo subset include 2.936 immagini progettate per la valutazione finale dei modelli di object detection addestrati.

Link to this sectionApplicazioni#

Il dataset SKU-110k è ampiamente utilizzato per addestrare e valutare modelli di deep learning in attività di object detection, specialmente in scene densamente raggruppate come gli espositori degli scaffali dei negozi. Le sue applicazioni includono:

  • Gestione e automazione dell'inventario al dettaglio
  • Riconoscimento dei prodotti nelle piattaforme e-commerce
  • Verifica della conformità del planogramma
  • Sistemi di self-checkout nei negozi
  • Raccolta e smistamento robotizzato nei magazzini

La vasta gamma di categorie SKU e la disposizione densamente raggruppata degli oggetti rendono questo dataset una risorsa preziosa per ricercatori e professionisti nel campo della computer vision.

Link to this sectionDataset YAML#

Un file YAML (Yet Another Markup Language) viene utilizzato per definire la configurazione del dataset. Contiene informazioni sui percorsi del dataset, le classi e altre informazioni pertinenti. Per quanto riguarda il dataset SKU-110K, il file SKU-110K.yaml è mantenuto all'indirizzo https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml.

ultralytics/cfg/datasets/SKU-110K.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/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: 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 polars as pl

  from ultralytics.utils 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 = pl.read_csv(dir / "annotations" / d, has_header=False, new_columns=names, infer_schema_length=None).to_numpy()  # annotations
      images, unique_images = x[:, 0], np.unique(x[:, 0])
      with open((dir / d).with_suffix(".txt").__str__().replace("annotations_", ""), "w", encoding="utf-8") 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", encoding="utf-8") 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

Link to this sectionUtilizzo#

Per addestrare un modello YOLO26n sul dataset SKU-110K per 100 epochs con una dimensione dell'immagine di 640, puoi utilizzare i seguenti snippet di codice. Per un elenco completo degli argomenti disponibili, fai riferimento alla pagina di Training del modello.

Esempio di Addestramento
from ultralytics import YOLO

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

# Train the model
results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)

Link to this sectionDati di esempio e annotazioni#

Il dataset SKU-110k contiene una serie diversificata di immagini di scaffali di negozi con oggetti densamente raggruppati, fornendo un contesto ricco per le attività di object detection. Ecco alcuni esempi di dati dal dataset, insieme alle relative annotazioni:

Rilevamento di prodotti al dettaglio SKU-110K sugli scaffali dei negozi

  • Immagine di scaffale di negozio densamente rifornito: Questa immagine mostra un esempio di oggetti densamente raggruppati in un ambiente di scaffali al dettaglio. Gli oggetti sono annotati con bounding box ed etichette di categoria SKU.

L'esempio illustra la varietà e la complessità dei dati nel dataset SKU-110k e sottolinea l'importanza di dati di alta qualità per le attività di object detection. La disposizione densa dei prodotti presenta sfide uniche per gli algoritmi di rilevamento, rendendo questo dataset particolarmente prezioso per lo sviluppo di soluzioni robuste di computer vision incentrate sul settore retail.

Link to this sectionCitazioni e riconoscimenti#

Se utilizzi il dataset SKU-110k nel tuo lavoro di ricerca o sviluppo, ti preghiamo di citare il seguente documento:

Citazione
@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 una risorsa preziosa per la comunità di ricerca sulla computer vision. Per ulteriori informazioni sul dataset SKU-110k e sui suoi creatori, visita il repository GitHub del dataset SKU-110k.

Link to this sectionFAQ#

Link to this sectionCos'è il dataset SKU-110k e perché è importante per l'object detection?#

Il dataset SKU-110k consiste in immagini di scaffali di negozi densamente riforniti, progettate per supportare la ricerca in attività di object detection. Sviluppato da Eran Goldman et al., include oltre 110.000 categorie SKU uniche. La sua importanza risiede nella capacità di mettere alla prova i più avanzati rilevatori di oggetti con una varietà di aspetti e posizioni ravvicinate, rendendolo una risorsa inestimabile per ricercatori e professionisti della computer vision. Scopri di più sulla struttura e le applicazioni del dataset nella nostra sezione Dataset SKU-110k.

Link to this sectionCome addestro un modello YOLO26 utilizzando il dataset SKU-110k?#

L'addestramento di un modello YOLO26 sul dataset SKU-110k è semplice. Ecco un esempio per addestrare un modello YOLO26n per 100 epoche con una dimensione dell'immagine di 640:

Esempio di Addestramento
from ultralytics import YOLO

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

# Train the model
results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)

Per un elenco completo degli argomenti disponibili, fai riferimento alla pagina del Training del modello.

Link to this sectionQuali sono i subset principali del dataset SKU-110k?#

Il dataset SKU-110k è organizzato in tre subset principali:

  1. Training set: Contiene 8.219 immagini e annotazioni utilizzate per l'addestramento di modelli di object detection.
  2. Validation set: Consiste in 588 immagini e annotazioni utilizzate per la validazione del modello durante l'addestramento.
  3. Test set: Include 2.936 immagini progettate per la valutazione finale dei modelli di object detection addestrati.

Fai riferimento alla sezione Struttura del dataset per ulteriori dettagli.

Link to this sectionCome configuro il dataset SKU-110k per l'addestramento?#

La configurazione del dataset SKU-110k è definita in un file YAML, che include dettagli sui percorsi del dataset, le classi e altre informazioni pertinenti. Il file SKU-110K.yaml è mantenuto su SKU-110K.yaml. Ad esempio, puoi addestrare un modello utilizzando questa configurazione come mostrato nella nostra sezione Utilizzo.

Link to this sectionQuali sono le caratteristiche principali del dataset SKU-110k nel contesto del deep learning?#

Il dataset SKU-110k presenta immagini di scaffali di negozi di tutto il mondo, mettendo in mostra oggetti densamente raggruppati che pongono sfide significative per i sistemi di object detection:

  • Oltre 110.000 categorie SKU uniche
  • Aspetti degli oggetti diversificati
  • Le annotazioni includono bounding box ed etichette di categoria SKU

Queste caratteristiche rendono il dataset SKU-110k particolarmente prezioso per l'addestramento e la valutazione di modelli di deep learning in attività di object detection. Per maggiori dettagli, vedi la sezione Caratteristiche principali.

Link to this sectionCome cito il dataset SKU-110k nella mia ricerca?#

Se utilizzi il dataset SKU-110k nel tuo lavoro di ricerca o sviluppo, ti preghiamo di citare il seguente documento:

Citazione
@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 dataset possono essere trovate nella sezione Citazioni e ringraziamenti.

Commenti