Link to this sectionSKU-110k-Datensatz#
Der SKU-110k-Datensatz ist eine Sammlung von Bildern dicht gedrängter Einzelhandelsregale, die zur Unterstützung der Forschung an Objekterkennungs-Aufgaben entwickelt wurde. Der von Eran Goldman et al. entwickelte Datensatz enthält über 110.000 einzigartige Stock Keeping Unit (SKU)-Kategorien mit dicht gepackten Objekten, die oft ähnlich oder sogar identisch aussehen und in unmittelbarer Nähe zueinander positioniert sind.
Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Link to this sectionHauptfunktionen#
- SKU-110k enthält Bilder von Ladenregalen aus der ganzen Welt und bietet dicht gepackte Objekte, die modernste Objekterkennungsmodelle vor Herausforderungen stellen.
- Der Datensatz umfasst über 110.000 einzigartige SKU-Kategorien und bietet eine vielfältige Auswahl an Erscheinungsbildern von Objekten.
- Die Annotationen umfassen Bounding Boxes für Objekte sowie SKU-Kategorie-Labels.
Link to this sectionDatensatzstruktur#
Der SKU-110k-Datensatz ist in drei Haupt-Subsets unterteilt:
- Trainings-Set: Dieses Subset enthält 8.219 Bilder und Annotationen, die für das Training von Objekterkennungsmodellen verwendet werden.
- Validierungs-Set: Dieses Subset besteht aus 588 Bildern und Annotationen, die zur Modellvalidierung während des Trainings genutzt werden.
- Test-Set: Dieses Subset enthält 2.936 Bilder für die abschließende Evaluierung trainierter Objekterkennungsmodelle.
Link to this sectionAnwendungen#
Der SKU-110k-Datensatz wird häufig für das Training und die Evaluierung von Deep-Learning-Modellen bei Objekterkennungsaufgaben verwendet, insbesondere in dicht gepackten Szenen wie Einzelhandelsregalen. Zu den Anwendungsbereichen gehören:
- Bestandsverwaltung und Automatisierung im Einzelhandel
- Produkterkennung auf E-Commerce-Plattformen
- Überprüfung der Einhaltung von Planogrammen
- Self-Checkout-Systeme in Geschäften
- Robotisches Kommissionieren und Sortieren in Lagerhäusern
Die vielfältigen SKU-Kategorien und die dicht gepackten Objektanordnungen machen den Datensatz zu einer wertvollen Ressource für Forscher und Praktiker im Bereich Computer Vision.
Link to this sectionDatensatz-YAML#
Eine YAML-Datei (Yet Another Markup Language) wird verwendet, um die Dataset-Konfiguration zu definieren. Sie enthält Informationen über die Pfade des Datensatzes, Klassen und andere relevante Details. Für den SKU-110K-Datensatz wird die Datei SKU-110K.yaml unter https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml bereitgestellt.
# 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 labelLink to this sectionVerwendung#
Um ein YOLO26n-Modell auf dem SKU-110K-Datensatz für 100 Epochen mit einer Bildgröße von 640 zu trainieren, kannst du die folgenden Code-Schnipsel verwenden. Eine vollständige Liste der verfügbaren Argumente findest du auf der Seite Training für Modelle.
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 sectionBeispieldaten und Annotationen#
Der SKU-110k-Datensatz enthält eine vielfältige Sammlung von Bildern von Einzelhandelsregalen mit dicht gepackten Objekten, die reichhaltigen Kontext für Objekterkennungsaufgaben liefern. Hier sind einige Beispiele aus dem Datensatz zusammen mit den entsprechenden Annotationen:

- Bild eines dicht gepackten Einzelhandelsregals: Dieses Bild zeigt ein Beispiel für dicht gepackte Objekte in einem Verkaufsregal. Die Objekte sind mit Bounding Boxes und SKU-Kategorie-Labels annotiert.
Das Beispiel verdeutlicht die Vielfalt und Komplexität der Daten im SKU-110k-Datensatz und unterstreicht die Bedeutung hochwertiger Daten für Objekterkennungsaufgaben. Die dichte Anordnung der Produkte stellt einzigartige Herausforderungen für Erkennungsalgorithmen dar, was diesen Datensatz besonders wertvoll für die Entwicklung robuster, auf den Einzelhandel ausgerichteter Computer-Vision-Lösungen macht.
Link to this sectionZitate und Danksagungen#
Wenn du den SKU-110k-Datensatz in deiner Forschung oder Entwicklungsarbeit verwendest, zitiere bitte das folgende Paper:
@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}
}Wir möchten Eran Goldman et al. dafür danken, dass sie den SKU-110k-Datensatz als wertvolle Ressource für die Computer-Vision-Forschungsgemeinschaft erstellt und gepflegt haben. Weitere Informationen über den SKU-110k-Datensatz und seine Ersteller findest du im GitHub-Repository des SKU-110k-Datensatzes.
Link to this sectionFAQ#
Link to this sectionWas ist der SKU-110k-Datensatz und warum ist er für die Objekterkennung wichtig?#
Der SKU-110k-Datensatz besteht aus Bildern dicht gepackter Einzelhandelsregale, die dazu dienen, die Forschung an Objekterkennungsaufgaben zu unterstützen. Entwickelt von Eran Goldman et al., enthält er über 110.000 einzigartige SKU-Kategorien. Seine Bedeutung liegt in der Fähigkeit, modernste Objekterkennungsmodelle durch vielfältige Objekterscheinungen und Nähe herauszufordern, was ihn zu einer unschätzbaren Ressource für Forscher und Praktiker im Bereich Computer Vision macht. Erfahre mehr über die Struktur und die Anwendungen des Datensatzes in unserem Abschnitt SKU-110k-Datensatz.
Link to this sectionWie trainiere ich ein YOLO26-Modell mit dem SKU-110k-Datensatz?#
Das Training eines YOLO26-Modells auf dem SKU-110k-Datensatz ist einfach. Hier ist ein Beispiel für das Training eines YOLO26n-Modells für 100 Epochen mit einer Bildgröße von 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)Eine umfassende Liste der verfügbaren Argumente findest du auf der Seite zum Training von Modellen.
Link to this sectionWas sind die Haupt-Subsets des SKU-110k-Datensatzes?#
Der SKU-110k-Datensatz ist in drei Haupt-Subsets unterteilt:
- Trainings-Set: Enthält 8.219 Bilder und Annotationen, die für das Training von Objekterkennungsmodellen verwendet werden.
- Validierungs-Set: Besteht aus 588 Bildern und Annotationen, die zur Modellvalidierung während des Trainings verwendet werden.
- Test-Set: Enthält 2.936 Bilder für die abschließende Evaluierung von trainierten Objekterkennungsmodellen.
Weitere Details findest du im Abschnitt Dataset-Struktur.
Link to this sectionWie konfiguriere ich den SKU-110k-Datensatz für das Training?#
Die Konfiguration des SKU-110k-Datensatzes ist in einer YAML-Datei definiert, die Details zu Pfaden, Klassen und anderen relevanten Informationen enthält. Die Datei SKU-110K.yaml wird unter SKU-110K.yaml bereitgestellt. Du kannst beispielsweise ein Modell mit dieser Konfiguration trainieren, wie in unserem Abschnitt Verwendung gezeigt.
Link to this sectionWas sind die Hauptmerkmale des SKU-110k-Datensatzes im Kontext von Deep Learning?#
Der SKU-110k-Datensatz enthält Bilder von Ladenregalen aus der ganzen Welt und zeigt dicht gepackte Objekte, die Objekterkennungsmodelle vor erhebliche Herausforderungen stellen:
- Über 110.000 einzigartige SKU-Kategorien
- Vielfältige Erscheinungsbilder der Objekte
- Annotationen inklusive Bounding Boxes und SKU-Kategorie-Labels
Diese Merkmale machen den SKU-110k-Datensatz besonders wertvoll für das Training und die Evaluierung von Deep-Learning-Modellen bei Objekterkennungsaufgaben. Weitere Details findest du im Abschnitt Hauptmerkmale.
Link to this sectionWie zitiere ich den SKU-110k-Datensatz in meiner Forschung?#
Wenn du den SKU-110k-Datensatz in deiner Forschung oder Entwicklungsarbeit verwendest, zitiere bitte das folgende Paper:
@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}
}Weitere Informationen zum Datensatz findest du im Abschnitt Zitate und Danksagungen.