Dataset SKU-110k
Il dataset SKU-110k è una raccolta di immagini di scaffali di vendita al dettaglio densamente imballati, 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 unità di stoccaggio (SKU) con oggetti densamente imballati, spesso simili o addirittura identici, posizionati in prossimità.
Guarda: Come addestrare YOLOv10 sul dataset SKU-110k utilizzando Ultralytics | Dataset al dettaglio
Caratteristiche principali
- SKU-110k contiene immagini di scaffali di negozi provenienti da tutto il mondo, caratterizzate da oggetti densamente impilati che pongono sfide per i rilevatori di oggetti all'avanguardia.
- Il dataset include oltre 110.000 categorie SKU uniche, fornendo una vasta gamma di aspetti degli oggetti.
- Le annotazioni includono i bounding box per gli oggetti e le etichette delle categorie SKU.
Struttura del set di dati
Il set di dati SKU-110k è organizzato in tre sottoinsiemi principali:
- Set di addestramento: Questo sottoinsieme contiene 8.219 immagini e annotazioni utilizzate per l'addestramento di modelli di rilevamento oggetti.
- Set di validazione: Questo sottoinsieme consiste di 588 immagini e annotazioni utilizzate per la convalida del modello durante l'addestramento.
- Set di test: Questo sottoinsieme include 2.936 immagini progettate per la valutazione finale dei modelli di rilevamento oggetti addestrati.
Applicazioni
Il dataset SKU-110k è ampiamente utilizzato per l'addestramento e la valutazione di modelli di deep learning in attività di rilevamento oggetti, specialmente in scene densamente popolate come gli scaffali dei negozi al dettaglio. Le sue applicazioni includono:
- Gestione e automazione dell'inventario al dettaglio
- Riconoscimento del prodotto nelle piattaforme di e-commerce
- Verifica della conformità del planogramma
- Sistemi di self-checkout nei negozi
- Prelievo e smistamento robotizzato nei magazzini
L'ampia gamma di categorie SKU e la disposizione densa degli oggetti del dataset lo rendono una risorsa preziosa per ricercatori e professionisti nel campo della computer vision.
YAML del set di dati
Un file YAML (Yet Another Markup Language) viene utilizzato per definire la configurazione del dataset. Contiene informazioni sui percorsi, le classi e altre informazioni rilevanti del dataset. Nel caso del dataset SKU-110K, il SKU-110K.yaml
file è mantenuto in 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, names=names).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
Utilizzo
Per addestrare un modello YOLO11n sul dataset SKU-110K per 100 epoche con una dimensione dell'immagine di 640, puoi utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consulta la pagina Training del modello.
Esempio di addestramento
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 di esempio e annotazioni
Il dataset SKU-110k contiene un insieme diversificato di immagini di scaffali di vendita al dettaglio con oggetti densamente impaccati, fornendo un ricco contesto per le attività di object detection. Ecco alcuni esempi di dati dal dataset, insieme alle relative annotazioni:
- Immagine di scaffale di vendita al dettaglio densamente impaccato: Questa immagine mostra un esempio di oggetti densamente impaccati in un ambiente di scaffale di vendita al dettaglio. 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 di computer vision robuste focalizzate sulla vendita al dettaglio.
Citazioni e ringraziamenti
Se utilizzi il set di dati SKU-110k nel tuo lavoro di ricerca o sviluppo, cita il seguente articolo:
@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 set di dati SKU-110k come risorsa preziosa per la comunità di ricerca sulla visione artificiale. Per ulteriori informazioni sul set di dati SKU-110k e sui suoi creatori, visitare il repository GitHub del set di dati SKU-110k.
FAQ
Cos'è il dataset SKU-110k e perché è importante per il rilevamento di oggetti?
Il dataset SKU-110k è costituito da immagini di scaffali di vendita al dettaglio densamente imballati, progettate per supportare 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 sfidare i rilevatori di oggetti all'avanguardia con diverse apparenze e prossimità degli oggetti, rendendolo una risorsa preziosa per ricercatori e professionisti nel campo della computer vision. Scopri di più sulla struttura e le applicazioni del dataset nella nostra sezione Dataset SKU-110k.
Come posso addestrare un modello YOLO11 utilizzando il dataset SKU-110k?
Addestrare un modello YOLO11 sul set di dati SKU-110k è semplice. Ecco un esempio per addestrare un modello YOLO11n per 100 epoche con una dimensione dell'immagine di 640:
Esempio di addestramento
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 Training del modello.
Quali sono i principali sottoinsiemi del dataset SKU-110k?
Il set di dati SKU-110k è organizzato in tre sottoinsiemi principali:
- Set di addestramento: Contiene 8.219 immagini e annotazioni utilizzate per l'addestramento di modelli di rilevamento oggetti.
- Set di validazione: Consiste di 588 immagini e annotazioni utilizzate per la convalida del modello durante l'addestramento.
- Set di test: Include 2.936 immagini progettate per la valutazione finale dei modelli di rilevamento oggetti addestrati.
Per maggiori dettagli, consultare la sezione Struttura del dataset.
Come configuro 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 SKU-110K.yaml
file è mantenuto in SKU-110K.yaml. Ad esempio, puoi addestrare un modello usando questa configurazione come mostrato nel nostro Utilizzo sezione.
Quali sono le caratteristiche principali del dataset SKU-110k nel contesto del deep learning?
Il dataset SKU-110k presenta immagini di scaffali di negozi provenienti da tutto il mondo, che mostrano oggetti densamente imballati che pongono sfide significative per i rilevatori di oggetti:
- Oltre 110.000 categorie SKU uniche
- Aspetto diversificato degli oggetti
- 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 nelle attività di object detection. Per maggiori dettagli, consultare la sezione Caratteristiche principali.
Come posso citare il dataset SKU-110k nella mia ricerca?
Se utilizzi il set di dati SKU-110k nel tuo lavoro di ricerca o sviluppo, cita il seguente articolo:
@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 sono disponibili nella sezione Citazioni e riconoscimenti.