Набор данных SKU-110k
Набор данных SKU-110k - это коллекция плотно упакованных изображений полок розничной торговли, созданная для поддержки исследований в задачах обнаружения объектов. Разработанный Эраном Голдманом и др. набор данных содержит более 110 000 уникальных категорий единиц хранения (SKU) с плотно упакованными объектами, часто похожими или даже идентичными, расположенными рядом.
Смотреть: Как обучить YOLOv10 на наборе данных SKU-110k с помощью Ultralytics | Retail Dataset.
Основные характеристики
- SKU-110k содержит изображения полок магазинов со всего мира с плотно упакованными предметами, которые создают трудности для современных детекторов объектов.
- Набор данных включает в себя более 110 000 уникальных категорий SKU, обеспечивающих разнообразный внешний вид объектов.
- Аннотации включают ограничительные рамки для объектов и метки категорий SKU.
Структура набора данных
Набор данных SKU-110k состоит из трех основных подмножеств:
- Обучающий набор: Это подмножество содержит 8 219 изображений и аннотаций, используемых для обучения моделей обнаружения объектов.
- Валидационный набор: Это подмножество состоит из 588 изображений и аннотаций, используемых для проверки модели во время обучения.
- Тестовый набор: Этот поднабор включает 2 936 изображений, предназначенных для окончательной оценки обученных моделей обнаружения объектов.
Приложения
Набор данных 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: ../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", 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, можно использовать следующие фрагменты кода. Полный список доступных аргументов см. на странице "Обучение модели".
Пример поезда
Образцы данных и аннотации
Набор данных SKU-110k содержит разнообразные изображения торговых полок с плотно упакованными объектами, что обеспечивает богатый контекст для задач обнаружения объектов. Ниже приведены примеры данных из этого набора, а также соответствующие аннотации:
- Изображение плотно упакованных предметов на полке магазина: Это изображение демонстрирует пример плотно упакованных объектов на полке в розничной торговле. Объекты аннотированы ограничительными рамками и метками категорий SKU.
Этот пример демонстрирует разнообразие и сложность данных в наборе данных SKU-110k и подчеркивает важность высококачественных данных для задач обнаружения объектов. Плотное расположение товаров ставит перед алгоритмами обнаружения уникальные задачи, что делает этот набор данных особенно ценным для разработки надежных решений компьютерного зрения, ориентированных на розничную торговлю.
Цитаты и благодарности
Если вы используете набор данных SKU-110k в своих исследованиях или разработках, пожалуйста, ссылайтесь на следующий документ:
Мы хотели бы выразить благодарность Эрану Голдману и др. за создание и поддержку набора данных SKU-110k как ценного ресурса для сообщества исследователей компьютерного зрения. Для получения дополнительной информации о наборе данных SKU-110k и его создателях посетите репозиторий SKU-110k dataset GitHub.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Что такое набор данных SKU-110k и почему он важен для обнаружения объектов?
Набор данных SKU-110k состоит из плотно упакованных изображений полок розничных магазинов, предназначенных для исследования задач обнаружения объектов. Разработанный Эраном Голдманом и др., он включает более 110 000 уникальных категорий SKU. Его важность заключается в том, что он способен бросить вызов современным детекторам объектов с различным внешним видом и близостью объектов, что делает его бесценным ресурсом для исследователей и практиков в области компьютерного зрения. Подробнее о структуре и применении набора данных можно узнать в разделе SKU-110k Dataset.
Как обучить модель YOLO11 с помощью набора данных SKU-110k?
Обучение модели YOLO11 на наборе данных SKU-110k не представляет сложности. Вот пример обучения модели YOLO11n для 100 эпох с размером изображения 640:
Пример поезда
Полный список доступных аргументов см. на странице обучения модели.
Каковы основные подмножества набора данных SKU-110k?
Набор данных SKU-110k состоит из трех основных подмножеств:
- Обучающий набор: Содержит 8 219 изображений и аннотаций, используемых для обучения моделей обнаружения объектов.
- Валидационный набор: Состоит из 588 изображений и аннотаций, используемых для проверки модели в процессе обучения.
- Тестовый набор: Включает 2 936 изображений, предназначенных для окончательной оценки обученных моделей обнаружения объектов.
Более подробную информацию см. в разделе Структура набора данных.
Как настроить набор данных 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 в своих исследованиях или разработках, пожалуйста, ссылайтесь на следующий документ:
Более подробную информацию о наборе данных можно найти в разделе "Цитаты и благодарности".