Перейти к содержанию

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

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



Смотреть: Как обучить YOLOv10 на наборе данных SKU-110k с использованием Ultralytics | Набор данных розничной торговли

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

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

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

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

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

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

Приложения

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

  • Управление и автоматизация розничной торговли
  • Распознавание продуктов на платформах электронной коммерции
  • Проверка соответствия планограмме
  • Системы самообслуживания в магазинах
  • Роботизированный выбор и сортировка на складах

Разнообразный набор категорий SKU и плотно упакованное расположение объектов делают этот набор данных ценным ресурсом для исследователей и практиков в области компьютерного зрения.

YAML-файл набора данных

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

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

Чтобы обучить модель YOLO11n на наборе данных SKU-110K в течение 100 эпох с размером изображения 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.

Пример демонстрирует разнообразие и сложность данных в наборе данных 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}
}

Мы хотели бы выразить благодарность Eran Goldman и его коллегам за создание и поддержку набора данных SKU-110k в качестве ценного ресурса для исследовательского сообщества в области компьютерного зрения. Для получения дополнительной информации о наборе данных SKU-110k и его создателях посетите репозиторий SKU-110k на GitHub.

Часто задаваемые вопросы

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

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

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

Обучение модели YOLO11 на наборе данных SKU-110k не представляет сложности. Вот пример обучения модели YOLO11n в течение 100 эпох с размером изображения 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. Обучающий набор: Содержит 8 219 изображений и аннотаций, используемых для обучения моделей обнаружения объектов.
  2. Набор для валидации: Состоит из 588 изображений и аннотаций, используемых для валидации модели во время обучения.
  3. Тестовый набор: Включает 2936 изображений, предназначенных для финальной оценки обученных моделей обнаружения объектов.

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

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

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

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

Набор данных 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}
}

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



📅 Создано 1 год назад ✏️ Обновлено 5 месяцев назад

Комментарии