跳至内容

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.



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

数据集样本图像

主要功能

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

Eran Goldman 等人创建并维护了 SKU-110k 数据集,为计算机视觉研究界提供了宝贵的资源,我们在此表示感谢。有关 SKU-110k 数据集及其创建者的更多信息,请访问SKU-110k 数据集 GitHub 存储库

常见问题

什么是 SKU-110k 数据集,为什么它对物体检测很重要?

SKU-110k 数据集由密集的零售货架图像组成,旨在帮助研究物体检测任务。该数据集由 Eran Goldman 等人开发,包含超过 110,000 个独特的 SKU 类别。该数据集的重要性在于,它能够以不同的物体外观和近距离来挑战最先进的物体检测器,从而成为计算机视觉研究人员和从业人员的宝贵资源。有关该数据集结构和应用的更多信息,请参阅我们的SKU-110k 数据集部分。

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 10 days ago

评论