Zum Inhalt springen

SKU-110k-Datensatz

The SKU-110k dataset is a collection of densely packed retail shelf images, designed to support research in object detection tasks. Developed by Eran Goldman et al., the dataset contains over 110,000 unique store keeping unit (SKU) categories with densely packed objects, often looking similar or even identical, positioned in proximity.



Beobachten: So trainieren Sie YOLOv10 auf dem SKU-110k-Datensatz unter Verwendung von Ultralytics | Retail Dataset

Datensatz Beispielbild

Wesentliche Merkmale

  • SKU-110k enthält Bilder von Ladenregalen aus aller Welt mit dicht gepackten Objekten, die eine Herausforderung für moderne Objektdetektoren darstellen.
  • Der Datensatz umfasst über 110.000 eindeutige SKU-Kategorien, die ein breites Spektrum von Objekten abbilden.
  • Zu den Anmerkungen gehören Begrenzungsrahmen für Objekte und SKU-Kategoriebezeichnungen.

Struktur des Datensatzes

Der SKU-110k-Datensatz ist in drei Hauptteilmengen unterteilt:

  1. Trainingsmenge: Dieser Teilsatz enthält Bilder und Anmerkungen, die für das Training von Objekterkennungsmodellen verwendet werden.
  2. Validierungssatz: Diese Teilmenge besteht aus Bildern und Anmerkungen, die während des Trainings zur Modellvalidierung verwendet werden.
  3. Testsatz: Diese Teilmenge ist für die abschließende Bewertung der trainierten Objekterkennungsmodelle bestimmt.

Anwendungen

Der SKU-110k-Datensatz wird häufig zum Trainieren und Evaluieren von Deep-Learning-Modellen für Objekterkennungsaufgaben verwendet, insbesondere in dicht gepackten Szenen wie Einzelhandelsregalen. Die Vielfalt der SKU-Kategorien und die dicht gepackten Objektanordnungen machen den Datensatz zu einer wertvollen Ressource für Forscher und Praktiker auf dem Gebiet der Computer Vision.

Datensatz YAML

Eine YAML-Datei (Yet Another Markup Language) wird zur Definition der Dataset-Konfiguration verwendet. Sie enthält Informationen über die Pfade, Klassen und andere relevante Informationen des Datasets. Im Fall des SKU-110K-Datensatzes wird die Datei 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 YOLO 🚀, AGPL-3.0 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: ../datasets/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 pandas as pd
  from tqdm 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 = pd.read_csv(dir / 'annotations' / d, names=names).values  # annotations
      images, unique_images = x[:, 0], np.unique(x[:, 0])
      with open((dir / d).with_suffix('.txt').__str__().replace('annotations_', ''), 'w') 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') 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

Verwendung

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 Codeschnipsel verwenden. Eine umfassende Liste der verfügbaren Argumente finden Sie auf der Seite Modelltraining.

Beispiel für einen Zug

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

Der SKU-110k-Datensatz enthält eine Reihe von Einzelhandelsregalbildern mit dicht gepackten Objekten, die einen reichhaltigen Kontext für Objekterkennungsaufgaben bieten. Hier sind einige Beispiele von Daten aus dem Datensatz zusammen mit den entsprechenden Anmerkungen:

Datensatz Beispielbild

  • Bild eines dicht gepackten Einzelhandelsregals: Dieses Bild zeigt ein Beispiel für dicht gepackte Objekte in einem Einzelhandelsregal. Die Objekte sind mit Begrenzungsrahmen und SKU-Kategorie-Etiketten versehen.

Das Beispiel zeigt die Vielfalt und Komplexität der Daten im SKU-110k-Datensatz und verdeutlicht, wie wichtig qualitativ hochwertige Daten für Aufgaben der Objekterkennung sind.

Zitate und Danksagungen

Wenn Sie den SKU-110k-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte das folgende Dokument:

@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. für die Erstellung und Pflege des SKU-110k-Datensatzes als wertvolle Ressource für die Computer-Vision-Forschungsgemeinschaft danken. Weitere Informationen über den SKU-110k-Datensatz und seine Ersteller finden Sie im GitHub-Repository des SKU-110k-Datensatzes.

FAQ

Was ist der SKU-110k-Datensatz und warum ist er für die Objekterkennung wichtig?

The SKU-110k dataset consists of densely packed retail shelf images designed to aid research in object detection tasks. Developed by Eran Goldman et al., it includes over 110,000 unique SKU categories. Its importance lies in its ability to challenge state-of-the-art object detectors with diverse object appearances and proximity, making it an invaluable resource for researchers and practitioners in computer vision. Learn more about the dataset's structure and applications in our SKU-110k Dataset section.

Wie trainiere ich ein YOLO11 -Modell mit dem SKU-110k-Datensatz?

Das Trainieren eines YOLO11 Modells auf dem SKU-110k-Datensatz ist einfach. Hier ein Beispiel für das Training eines YOLO11n-Modells für 100 Epochen mit einer Bildgröße von 640:

Beispiel für einen Zug

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 Modellschulung.

Was sind die wichtigsten Teilmengen des SKU-110k-Datensatzes?

Der SKU-110k-Datensatz ist in drei Hauptteilmengen unterteilt:

  1. Trainingsset: Enthält Bilder und Anmerkungen, die zum Trainieren von Objekterkennungsmodellen verwendet werden.
  2. Validierungssatz: Besteht aus Bildern und Anmerkungen, die während des Trainings zur Modellvalidierung verwendet werden.
  3. Testsatz: Für die abschließende Bewertung der trainierten Objekterkennungsmodelle.

Weitere Einzelheiten finden Sie im Abschnitt Datensatzstruktur.

Wie konfiguriere ich den SKU-110k-Datensatz für das Training?

Die Konfiguration des SKU-110k-Datensatzes wird in einer YAML-Datei definiert, die Details zu den Pfaden, Klassen und anderen relevanten Informationen des Datensatzes enthält. Die SKU-110K.yaml Datei wird verwaltet unter SKU-110K.yaml. Sie können zum Beispiel ein Modell mit dieser Konfiguration trainieren, wie in unserer Verwendung Abschnitt.

Was sind die wichtigsten Merkmale des SKU-110k-Datensatzes im Kontext des Deep Learning?

Der SKU-110k-Datensatz enthält Bilder von Ladenregalen aus der ganzen Welt und zeigt dicht gepackte Objekte, die eine große Herausforderung für Objektdetektoren darstellen:

  • Über 110.000 einzigartige SKU-Kategorien
  • Vielfältige Erscheinungsformen von Objekten
  • Anmerkungen umfassen Begrenzungsrahmen und SKU-Kategoriebezeichnungen

Diese Merkmale machen den SKU-110k-Datensatz besonders wertvoll für das Training und die Evaluierung von Deep-Learning-Modellen bei Objekterkennungsaufgaben. Weitere Einzelheiten finden Sie im Abschnitt "Hauptmerkmale ".

Wie kann ich den SKU-110k-Datensatz in meiner Forschung zitieren?

Wenn Sie den SKU-110k-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte das folgende Dokument:

@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 ".

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 11 Tagen

Kommentare