Dataset 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 stipati, spesso dall'aspetto simile o addirittura identico, posizionati in stretta vicinanza.
Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Caratteristiche principali
- SKU-110k contiene immagini di scaffali di negozi di tutto il mondo, caratterizzate da oggetti densamente stipati che pongono sfide ai moderni rilevatori di oggetti.
- Il dataset include oltre 110.000 categorie uniche di SKU, fornendo una vasta gamma di aspetti degli oggetti.
- Le annotazioni includono bounding box per gli oggetti ed etichette delle categorie SKU.
Struttura del dataset
Il dataset SKU-110k è organizzato in tre subset principali:
- Training set: questo subset contiene 8.219 immagini e annotazioni utilizzate per l'addestramento di modelli di object detection.
- Validation set: questo subset consiste in 588 immagini e annotazioni utilizzate per la validazione del modello durante l'addestramento.
- Test set: questo subset include 2.936 immagini progettate per la valutazione finale dei modelli di object detection addestrati.
Applicazioni
Il dataset SKU-110k è ampiamente utilizzato per l'addestramento e la valutazione di modelli di deep learning in attività di object detection, specialmente in scene densamente stipate come gli espositori degli scaffali dei negozi. Le sue applicazioni includono:
- Gestione e automazione dell'inventario al dettaglio
- Riconoscimento dei prodotti in piattaforme di e-commerce
- Verifica della conformità al planogramma
- Sistemi di cassa self-service nei negozi
- Raccolta e smistamento robotizzati nei magazzini
La vasta serie di categorie SKU e la disposizione densamente stipata degli oggetti rendono questo dataset una risorsa preziosa per ricercatori e professionisti nel campo della computer vision.
YAML del dataset
Per definire la configurazione del dataset viene utilizzato un file YAML (Yet Another Markup Language). Contiene informazioni sui percorsi del dataset, le classi e altre informazioni rilevanti. Per il dataset SKU-110K, il file SKU-110K.yaml è mantenuto su https://github.com/ultralytics/ultralytics/blob/main/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 labelUtilizzo
Per addestrare un modello YOLO26n sul dataset SKU-110K per 100 epoch con una dimensione dell'immagine di 640, puoi utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, fai riferimento alla pagina di Training del modello.
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)Dati ed annotazioni di esempio
Il dataset SKU-110k contiene una serie diversificata di immagini di scaffali di negozi con oggetti densamente stipati, fornendo un contesto ricco per le attività di object detection. Ecco alcuni esempi di dati dal dataset, insieme alle relative annotazioni:

- Immagine di uno scaffale retail densamente stipato: questa immagine mostra un esempio di oggetti densamente stipati in un contesto di scaffale retail. Gli oggetti sono annotati con bounding box ed etichette di categoria SKU.
L'esempio mostra la varietà e la complessità dei dati nel dataset SKU-110k ed evidenzia 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 focalizzate sul retail.
Citazioni e ringraziamenti
Se utilizzi il dataset SKU-110k nel tuo lavoro di ricerca o sviluppo, cita 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 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.
FAQ
Che cos'è il dataset SKU-110k e perché è importante per l'object detection?
Il dataset SKU-110k consiste in immagini di scaffali di negozi densamente stipati progettate per aiutare la ricerca nelle attività di object detection. Sviluppato da Eran Goldman et al., include oltre 110.000 categorie SKU uniche. La sua importanza risiede nella sua capacità di mettere alla prova i rilevatori di oggetti all'avanguardia con diverse apparenze e vicinanze degli oggetti, 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.
Come posso addestrare un modello YOLO26 utilizzando il dataset SKU-110k?
Addestrare un modello YOLO26 sul dataset SKU-110k è semplice. Ecco un esempio per addestrare un modello YOLO26n per 100 epoch con una dimensione dell'immagine di 640:
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 Training del modello.
Quali sono i principali subset del dataset SKU-110k?
Il dataset SKU-110k è organizzato in tre subset principali:
- Training set: contiene 8.219 immagini e annotazioni utilizzate per l'addestramento di modelli di object detection.
- Validation set: consiste in 588 immagini e annotazioni utilizzate per la validazione del modello durante l'addestramento.
- 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.
Come posso configurare il dataset SKU-110k per l'addestramento?
La configurazione del dataset SKU-110k è definita in un file YAML, che include dettagli sui percorsi, le classi e altre informazioni rilevanti del dataset. 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.
Quali sono le caratteristiche chiave del dataset SKU-110k nel contesto del deep learning?
Il dataset SKU-110k presenta immagini di scaffali di negozi da tutto il mondo, mettendo in mostra oggetti densamente stipati che pongono sfide significative per i rilevatori di oggetti:
- Oltre 110.000 categorie SKU uniche
- Aspetti degli oggetti diversificati
- Le annotazioni includono bounding box ed etichette delle categorie SKU
Queste caratteristiche rendono il dataset SKU-110k particolarmente prezioso per l'addestramento e la valutazione di modelli di deep learning nelle attività di object detection. Per ulteriori dettagli, consulta la sezione Caratteristiche chiave.
Come posso citare il dataset SKU-110k nella mia ricerca?
Se utilizzi il dataset SKU-110k nel tuo lavoro di ricerca o sviluppo, cita 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 dataset si possono trovare nella sezione Citazioni e riconoscimenti.