Перейти к содержимому

Набор данных SKU-110k

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 close proximity.



Смотри: Как обучить YOLOv10 на наборе данных SKU-110k, используя Ultralytics | Retail Dataset.

Образец изображения из набора данных

Основные характеристики

  • SKU-110k содержит изображения полок магазинов со всего мира, на которых изображены плотно упакованные предметы, представляющие сложность для современных детекторов объектов.
  • Набор данных включает в себя более 110 000 уникальных категорий SKU, обеспечивая разнообразный спектр внешнего вида объектов.
  • Аннотации включают ограничительные рамки для объектов и метки категорий SKU.

Структура набора данных

Набор данных SKU-110k разбит на три основных подмножества:

  1. Обучающий набор: Это подмножество содержит изображения и аннотации, используемые для обучения моделей обнаружения объектов.
  2. Набор для проверки: Это подмножество состоит из изображений и аннотаций, которые использовались для проверки модели во время обучения.
  3. Тестовый набор: Это подмножество предназначено для окончательной оценки обученных моделей обнаружения объектов.

Приложения

The SKU-110k dataset is widely used for training and evaluating deep learning models in object detection tasks, especially in densely packed scenes such as retail shelf displays. The dataset's diverse set of SKU categories and densely packed object arrangements make it a valuable resource for researchers and practitioners in the field of computer vision.

Набор данных YAML

Для определения конфигурации набора данных используется файл YAML (Yet Another Markup Language). Он содержит информацию о путях к набору данных, классах и другую необходимую информацию. В случае с набором данных SKU-110K файл YAML SKU-110K.yaml файл хранится по адресу 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

Использование

To train a YOLO11n model on the SKU-110K dataset for 100 epochs with an image size of 640, you can use the following code snippets. For a comprehensive list of available arguments, refer to the model Training page.

Пример поезда

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

Образцы данных и аннотации

Набор данных SKU-110k содержит разнообразные изображения торговых полок с плотно упакованными объектами, что обеспечивает богатый контекст для задач обнаружения объектов. Вот несколько примеров данных из этого набора, а также соответствующие аннотации к ним:

Образец изображения из набора данных

  • Изображение плотно упакованной полки в розничной торговле: Это изображение демонстрирует пример плотно упакованных объектов на полке в розничной торговле. Объекты аннотированы ограничительными рамками и метками категорий SKU.

Этот пример демонстрирует разнообразие и сложность данных в наборе данных SKU-110k и подчеркивает важность высококачественных данных для задач обнаружения объектов.

Цитаты и благодарности

Если ты используешь набор данных SKU-110k в своих исследованиях или разработках, пожалуйста, ссылайся на следующую статью:

@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}
}

Мы хотели бы выразить благодарность Эрану Голдману и др. за создание и поддержку набора данных SKU-110k как ценного ресурса для сообщества исследователей компьютерного зрения. Чтобы узнать больше о наборе данных SKU-110k и его создателях, посети репозиторий SKU-110k dataset GitHub.

ВОПРОСЫ И ОТВЕТЫ

Что такое набор данных SKU-110k и почему он важен для обнаружения объектов?

Набор данных SKU-110k состоит из плотно упакованных изображений полок розничных магазинов, предназначенных для помощи в исследованиях задач обнаружения объектов. Разработанный Эраном Голдманом и др., он включает в себя более 110 000 уникальных категорий SKU. Его важность заключается в том, что он способен бросить вызов современным детекторам объектов с разнообразным внешним видом и близким расположением объектов, что делает его бесценным ресурсом для исследователей и практиков в области компьютерного зрения. Узнай больше о структуре набора данных и его применении в нашем разделе SKU-110k Dataset.

How do I train a YOLO11 model using the SKU-110k dataset?

Training a YOLO11 model on the SKU-110k dataset is straightforward. Here's an example to train a YOLO11n model for 100 epochs with an image size of 640:

Пример поезда

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

Полный список доступных аргументов ты найдешь на странице обучения модели.

Каковы основные подмножества набора данных SKU-110k?

Набор данных SKU-110k разбит на три основных подмножества:

  1. Обучающий набор: Содержит изображения и аннотации, используемые для обучения моделей обнаружения объектов.
  2. Набор для валидации: Состоит из изображений и аннотаций, которые использовались для проверки модели во время обучения.
  3. Тестовый набор: Предназначен для окончательной оценки обученных моделей обнаружения объектов.

Подробнее об этом читай в разделе " Структура набора данных ".

Как настроить набор данных SKU-110k для обучения?

Конфигурация набора данных SKU-110k задается в YAML-файле, который включает в себя подробную информацию о путях, классах и других важных сведениях набора данных. Файл SKU-110K.yaml файл хранится по адресу SKU-110K.yaml. Например, ты можешь обучить модель, используя эту конфигурацию, как показано в нашем Использование Раздел.

What are the key features of the SKU-110k dataset in the context of deep learning?

Набор данных SKU-110k содержит изображения полок магазинов со всего мира, демонстрируя плотно упакованные объекты, которые представляют значительные трудности для детекторов объектов:

  • Более 110 000 уникальных категорий SKU
  • Разнообразные внешности объектов
  • Аннотации включают ограничительные рамки и метки категорий SKU

Эти особенности делают набор данных SKU-110k особенно ценным для обучения и оценки моделей глубокого обучения в задачах обнаружения объектов. Подробнее об этом читай в разделе " Ключевые особенности ".

Как мне ссылаться на набор данных SKU-110k в своих исследованиях?

Если ты используешь набор данных SKU-110k в своих исследованиях или разработках, пожалуйста, ссылайся на следующую статью:

@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}
}

Больше информации о наборе данных можно найти в разделе " Цитаты и благодарности ".


📅 Created 11 months ago ✏️ Updated 6 days ago

Комментарии