跳转至内容

SKU-110k 数据集

SKU-110k数据集是密集堆积的零售货架图像的集合,旨在支持目标检测任务的研究。该数据集由Eran Goldman等人开发,包含超过110,000个独特的库存单位(SKU)类别,这些类别具有密集堆积的物体,这些物体通常看起来相似甚至相同,并且彼此相邻放置。



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

数据集样本图像

主要功能

  • SKU-110k 包含来自世界各地商店货架的图像,展示了密集堆叠的物体,这些物体对最先进的物体检测器提出了挑战。
  • 该数据集包含超过 110,000 个独特的 SKU 类别,提供了各种各样的物体外观。
  • 注释包括物体的边界框和 SKU 类别标签。

数据集结构

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

  1. 训练集: 此子集包含 8,219 张图像和注释,用于训练目标检测模型。
  2. 验证集:此子集包含 588 张图像和注释,用于训练期间的模型验证。
  3. 测试集:此子集包含 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: 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

用法

要在 SKU-110K 数据集上训练 YOLO11n 模型 100 个 epochs,图像大小为 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 数据集由密集堆叠的零售货架图像组成,旨在帮助研究目标检测任务。它由 Eran Goldman 等人开发,包含超过 110,000 个独特的 SKU 类别。它的重要性在于它能够通过多样化的目标外观和邻近性来挑战最先进的目标检测器,使其成为计算机视觉领域研究人员和从业人员的宝贵资源。在我们的SKU-110k 数据集部分了解更多关于数据集结构和应用的信息。

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

在 SKU-110k 数据集上训练 YOLO11 模型非常简单。以下是一个示例,用于训练 YOLO11n 模型 100 个 epoch,图像大小为 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. 测试集:包含 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 数据集,请引用以下论文:

@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 个月前

评论