SKU-110k Datensatz
Der SKU-110k-Datensatz ist eine Sammlung von dicht gepackten Bildern von Einzelhandelsregalen, die die Forschung im Bereich der Objekterkennung unterstützen sollen. Der von Eran Goldman et al. entwickelte Datensatz enthält über 110.000 eindeutige Lagerhaltungseinheiten (SKU) mit dicht gepackten Objekten, die oft ähnlich oder sogar identisch aussehen und sich in unmittelbarer Nähe befinden.
Ansehen: Wie man YOLOv10 auf dem SKU-110k-Datensatz mit Ultralytics trainiert | Einzelhandelsdatensatz
Hauptmerkmale
- SKU-110k enthält Bilder von Ladenregalen aus der ganzen Welt mit dicht gepackten Objekten, die hochmoderne Objektdetektoren vor Herausforderungen stellen.
- Der Datensatz enthält über 110.000 eindeutige SKU-Kategorien und bietet damit eine vielfältige Auswahl an Objektdarstellungen.
- Annotationen umfassen Begrenzungsrahmen für Objekte und SKU-Kategoriebezeichnungen.
Dataset-Struktur
Das SKU-110k-Dataset ist in drei Hauptteilmengen unterteilt:
- Trainingsdatensatz: Diese Teilmenge enthält 8.219 Bilder und Anmerkungen, die für das Training von Objekterkennungsmodellen verwendet werden.
- Validierungsdatensatz: Diese Teilmenge besteht aus 588 Bildern und Anmerkungen, die zur Modellvalidierung während des Trainings verwendet werden.
- Testdatensatz: Diese Teilmenge enthält 2.936 Bilder, die für die abschließende Bewertung von trainierten Objekterkennungsmodellen entwickelt wurden.
Anwendungen
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 z. B. Einzelhandelsregalen. Zu seinen Anwendungsbereichen gehören:
- Einzelhandels-Bestandsverwaltung und -Automatisierung
- Produkterkennung auf E-Commerce-Plattformen
- Überprüfung der Planogramm-Konformität
- Self-Checkout-Systeme in Geschäften
- Robotisches Kommissionieren und Sortieren in Lagerhäusern
Die vielfältigen SKU-Kategorien und dicht gepackten Objektanordnungen des Datensatzes machen ihn zu einer wertvollen Ressource für Forscher und Praktiker im Bereich Computer Vision.
Datensatz-YAML
Eine YAML-Datei (Yet Another Markup Language) wird verwendet, um die Konfiguration des Datensatzes zu definieren. Sie enthält Informationen über die Pfade, Klassen und andere relevante Informationen des Datensatzes. Für den SKU-110K-Datensatz ist die SKU-110K.yaml
Datei wird verwaltet unter 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
Nutzung
Um ein YOLO11n-Modell auf dem SKU-110K-Datensatz für 100 Epochen mit einer Bildgröße von 640 zu trainieren, können Sie die folgenden Code-Snippets verwenden. Eine umfassende Liste der verfügbaren Argumente finden Sie auf der Trainings-Seite des Modells.
Trainingsbeispiel
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
Beispieldaten und Anmerkungen
Das SKU-110k-Dataset enthält eine vielfältige Sammlung von Bildern von Einzelhandelsregalen mit dicht gepackten Objekten und bietet einen reichhaltigen Kontext für Objekterkennungsaufgaben. Hier sind einige Beispiele für Daten aus dem Datensatz zusammen mit den entsprechenden Anmerkungen:
- Dicht gepacktes Regalbild: Dieses Bild zeigt ein Beispiel für dicht gepackte Objekte in einem Einzelhandelsregal. Objekte werden mit Begrenzungsrahmen und SKU-Kategorieetiketten versehen.
Das Beispiel zeigt 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.
Zitate und Danksagungen
Wenn Sie den SKU-110k-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie 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 anerkennen, dass sie den SKU-110k-Datensatz als wertvolle Ressource für die Computer-Vision-Forschungsgemeinschaft erstellt und pflegt. Weitere Informationen über den SKU-110k-Datensatz und seine Urheber finden Sie im SKU-110k-Datensatz GitHub-Repository.
FAQ
Was ist der SKU-110k-Datensatz und warum ist er für die Objekterkennung wichtig?
Das SKU-110k-Dataset besteht aus dicht gepackten Bildern von Einzelhandelsregalen, die die Forschung im Bereich der Objekterkennung unterstützen sollen. Es wurde von Eran Goldman et al. entwickelt und umfasst über 110.000 eindeutige SKU-Kategorien. Seine Bedeutung liegt in seiner Fähigkeit, modernste Objektdetektoren mit unterschiedlichen Objektdarstellungen und -nähe herauszufordern, was es zu einer unschätzbaren Ressource für Forscher und Praktiker im Bereich Computer Vision macht. Erfahren Sie mehr über die Struktur und die Anwendungen des Datasets in unserem Abschnitt SKU-110k Dataset.
Wie trainiere ich ein YOLO11-Modell mit dem SKU-110k Datensatz?
Das Trainieren eines YOLO11-Modells auf dem SKU-110k-Datensatz ist unkompliziert. Hier ist ein Beispiel, um ein YOLO11n-Modell für 100 Epochen mit einer Bildgröße von 640 zu trainieren:
Trainingsbeispiel
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
Eine umfassende Liste der verfügbaren Argumente finden Sie auf der Seite Training des Modells.
Was sind die Haupt-Subsets des SKU-110k-Datensatzes?
Das SKU-110k-Dataset ist in drei Hauptteilmengen unterteilt:
- Trainingsdatensatz: Enthält 8.219 Bilder und Anmerkungen, die für das Training von Objekterkennungsmodellen verwendet werden.
- Validierungsdatensatz: Besteht aus 588 Bildern und Anmerkungen, die zur Modellvalidierung während des Trainings verwendet werden.
- Testdatensatz: Enthält 2.936 Bilder, die für die abschließende Bewertung von trainierten Objekterkennungsmodellen entwickelt wurden.
Weitere Informationen finden Sie im Abschnitt Dataset-Struktur.
Wie konfiguriere ich den SKU-110k-Datensatz für das Training?
Die SKU-110k-Dataset-Konfiguration ist in einer YAML-Datei definiert, die Details zu den Pfaden, Klassen und anderen relevanten Informationen des Datasets enthält. Die SKU-110K.yaml
Datei wird verwaltet unter SKU-110K.yaml. Sie können beispielsweise ein Modell mit dieser Konfiguration trainieren, wie in unserem Nutzung Abschnitt.
Was sind die wichtigsten Merkmale des SKU-110k-Datensatzes im Kontext von Deep Learning?
Das SKU-110k-Dataset enthält Bilder von Ladenregalen aus der ganzen Welt, die dicht gepackte Objekte zeigen, die eine große Herausforderung für Objektdetektoren darstellen:
- Über 110.000 eindeutige SKU-Kategorien
- Vielfältige Objektdarstellungen
- Annotationen umfassen Begrenzungsrahmen und SKU-Kategoriebezeichnungen
Diese Funktionen machen den SKU-110k-Datensatz besonders wertvoll für das Training und die Evaluierung von Deep-Learning-Modellen bei Objekterkennungsaufgaben. Weitere Informationen finden Sie im Abschnitt Hauptmerkmale.
Wie zitiere ich den SKU-110k-Datensatz in meiner Forschung?
Wenn Sie den SKU-110k-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie 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 über den Datensatz finden Sie im Abschnitt Zitate und Danksagungen.