跳至内容

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



观看: 如何使用Ultralytics | 零售数据集在 SKU-110k 数据集上训练 YOLOv10

数据集样本图像

主要功能

  • SKU-110k 包含世界各地商店货架的图像,其特点是物体密集,给最先进的物体检测器带来了挑战。
  • 该数据集包括 110,000 多个独特的 SKU 类别,提供了多种多样的物体外观。
  • 注释包括对象的边界框和 SKU 类别标签。

数据集结构

SKU-110k 数据集主要分为三个子集:

  1. 训练集:该子集包含用于训练物体检测模型的图像和注释。
  2. 验证集:该子集包括在训练过程中用于模型验证的图像和注释。
  3. 测试集:该子集用于对训练有素的物体检测模型进行最终评估。

应用

SKU-110k 数据集广泛用于训练和评估物体检测任务中的深度学习模型,尤其是在零售货架陈列等密集场景中。该数据集的 SKU 类别多样,物体排列密集,是计算机视觉领域研究人员和从业人员的宝贵资源。

数据集 YAML

YAML(另一种标记语言)文件用于定义数据集配置。它包含数据集的路径、类和其他相关信息。就 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

使用方法

要在 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 类别标签。

该示例展示了 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 数据集,为什么它对物体检测很重要?

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.

如何使用 SKU-110k 数据集训练YOLO11 模型?

在 SKU-110k 数据集上训练YOLO11 模型非常简单。下面是一个例子,在图像大小为 640 的情况下,对 YOLO11n 模型进行 100 次训练:

列车示例

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.例如,您可以使用这种配置来训练一个模型,如我们的 使用方法 节。

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 年前 ✏️已更新 10 天前

评论