SKU-110kデータセット
<a href="https://github.com/eg4000/SKU110K_CVPR19">SKU-110kデータセットは、小売店の棚の画像を高密度に収集したもので、<a href="https://www.ultralytics.com/glossary/object-detection">物体検出タスクの研究をサポートするように設計されています。Eran Goldmanらによって開発されたこのデータセットには、110,000を超えるユニークなストアキーピングユニット(SKU)カテゴリが含まれており、高密度に配置されたオブジェクトは、類似または同一に見え、近接して配置されていることがよくあります。
見る: Ultralyticsを使用してSKU-110kデータセットでYOLOv10をトレーニングする方法 | 小売データセット
主な特徴
- SKU-110kには、最先端の物体検出器にとって課題となる、密集した物体を特徴とする世界中の店舗の棚の画像が含まれています。
- データセットには110,000を超えるユニークなSKUカテゴリが含まれており、多様なオブジェクトの外観を提供します。
- アノテーションには、物体とSKUカテゴリラベルのバウンディングボックスが含まれます。
データセットの構造
SKU-110kデータセットは、3つの主要なサブセットに編成されています。
- トレーニングセット:このサブセットには、オブジェクト検出モデルのトレーニングに使用される8,219枚の画像とアノテーションが含まれています。
- 検証セット: このサブセットは、トレーニング中のモデル検証に使用される588枚の画像とアノテーションで構成されています。
- テストセット: このサブセットには、学習済み物体検出モデルの最終評価用に設計された 2,936 枚の画像が含まれています。
アプリケーション
SKU-110kデータセットは、特に小売店の棚のディスプレイのような密集したシーンにおいて、物体検出タスクにおける深層学習モデルのトレーニングと評価に広く使用されています。その応用例は以下の通りです。
- 小売りの在庫管理と自動化
- eコマースプラットフォームでの製品認識
- プラノグラム準拠検証
- 店舗のセルフレジシステム
- 倉庫でのロボットによるピッキングと仕分け
このデータセットの多様なSKUカテゴリと高密度に配置されたオブジェクトの配置は、コンピュータビジョン分野の研究者や実務者にとって貴重なリソースとなります。
データセット YAML
YAML(Yet Another Markup Language)ファイルは、データセットの構成を定義するために使用されます。これには、データセットのパス、クラス、およびその他の関連情報が含まれています。SKU-110Kデータセットの場合、 SKU-110K.yaml
fileは以下で管理されています: 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
使用法
画像サイズ640でSKU-110Kデータセットの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カテゴリのラベルが付いています。
この例は、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}
}
コンピュータビジョン研究コミュニティにとって貴重なリソースであるSKU-110kデータセットを作成および管理しているEran Goldman氏らに感謝いたします。SKU-110kデータセットとその作成者の詳細については、SKU-110kデータセットのGitHubリポジトリをご覧ください。
よくある質問
SKU-110kデータセットとは何ですか?また、オブジェクト検出において、なぜそれが重要なのでしょうか?
SKU-110kデータセットは、物体検出タスクの研究を支援するために設計された、高密度に配置された小売店の棚の画像で構成されています。Eran Goldmanらによって開発され、110,000を超える独自のSKUカテゴリが含まれています。その重要性は、多様なオブジェクトの外観と近接性で最先端の物体検出器に挑戦できることにあり、コンピュータビジョンの研究者や実務家にとって非常に貴重なリソースとなっています。データセットの構造とアプリケーションの詳細については、SKU-110kデータセットセクションをご覧ください。
SKU-110kデータセットを使用してYOLO11モデルをトレーニングするにはどうすればよいですか?
SKU-110kデータセットでのYOLO11モデルの学習は簡単です。画像サイズ640で100エポックのYOLO11nモデルを学習する例を次に示します。
学習の例
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データセットは、3つの主要なサブセットに編成されています。
- トレーニングセット:オブジェクト検出モデルのトレーニングに使用される8,219枚の画像とアノテーションが含まれています。
- 検証セット: トレーニング中のモデル検証に使用される588枚の画像とアノテーションで構成されています。
- テストセット: 学習済み物体検出モデルの最終評価用に設計された 2,936 枚の画像が含まれています。
詳細については、データセット構造セクションを参照してください。
トレーニング用にSKU-110kデータセットを構成するにはどうすればよいですか?
SKU-110kデータセットの構成はYAMLファイルで定義されており、データセットのパス、クラス、およびその他の関連情報に関する詳細が含まれています。 SKU-110K.yaml
fileは以下で管理されています: SKU-110K.yaml。たとえば、この構成を使用してモデルをトレーニングする方法は、以下に示されています。 使用法 セクションをご参照ください。
深層学習のコンテキストにおけるSKU-110kデータセットの主な特徴は何ですか?
SKU-110kデータセットは、世界中の店舗の棚の画像を特徴としており、オブジェクト検出器に大きな課題をもたらす高密度に詰め込まれたオブジェクトを展示しています。
- 11万を超えるユニークなSKUカテゴリ
- 多様なオブジェクトの外観
- アノテーションには、バウンディングボックスとSKUカテゴリラベルが含まれます。
これらの機能により、SKU-110k データセットは、オブジェクト検出タスクにおける深層学習モデルのトレーニングと評価に特に役立ちます。詳細については、Key Features セクションをご覧ください。
研究で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}
}
データセットの詳細については、引用と謝辞セクションをご覧ください。