Meet YOLO26: next-gen vision AI.

Link to this sectionНабор данных SKU-110k#

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



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Обнаружение плотно упакованных товаров на полках магазинов в наборе данных SKU-110K

Link to this sectionКлючевые особенности#

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

Link to this sectionСтруктура набора данных#

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

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

Link to this sectionПрименение#

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

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

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

Link to this sectionYAML набора данных#

Для настройки параметров набора данных используется файл 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, 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 label

Link to this sectionИспользование#

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

Link to this sectionПримеры данных и разметки#

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

Обнаружение розничных товаров на полках магазинов в SKU-110K

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

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

Link to this sectionЦитирование и благодарности#

Если ты используешь набор данных 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 и его создателях можно найти в репозитории GitHub набора данных SKU-110k.

Link to this sectionFAQ#

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

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

Link to this sectionКак обучить модель YOLO26 с использованием набора данных SKU-110k?#

Обучение модели YOLO26 на наборе данных SKU-110k довольно простое. Вот пример обучения модели YOLO26n на протяжении 100 эпох с размером изображения 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)

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

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

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

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

Дополнительную информацию смотри в разделе Структура набора данных.

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

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

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

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

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

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

Link to this sectionКак сослаться на набор данных 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}
}

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

Комментарии