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 |Retail Datasetを使用してSKU-110kデータセットでYOLOv10をトレーニングする方法
主な特徴
- SKU-110kは、世界中の店舗の棚を撮影した画像で、最新の物体検出器にとって難題となる、密集した物体が特徴です。
- データセットには110,000以上のユニークなSKUカテゴリーが含まれ、多様なオブジェクトの外観を提供する。
- 注釈には、オブジェクトのバウンディングボックスとSKUのカテゴリーラベルが含まれます。
データセット構造
SKU-110kデータセットは3つのサブセットに分類されている:
- トレーニングセット:このサブセットには、物体検出モデルのトレーニングに使用される画像と注釈が含まれる。
- 検証セット:このサブセットは、トレーニング中にモデルの検証に使用された画像とアノテーションで構成される。
- テストセット:このサブセットは、訓練された物体検出モデルの最終評価用に設計されている。
アプリケーション
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 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モデルを画像サイズ640で100エポック学習させるには、以下のコードスニペットを使用します。利用可能な引数の包括的なリストについては、モデルのトレーニングページを参照してください。
列車の例
サンプルデータと注釈
SKU-110kデータセットには、オブジェクトが密集した小売店の棚画像が含まれており、オブジェクト検出タスクに豊富なコンテキストを提供します。以下に、このデータセットからのデータの例と、対応するアノテーションを示します:
- 密集した小売店の棚この画像は、小売店の棚に密集したオブジェクトの例を示しています。物体はバウンディングボックスとSKUカテゴリーラベルで注釈されている。
この例は、SKU-110kデータセットのデータの多様性と複雑性を示し、物体検出タスクにおける高品質データの重要性を強調している。
引用と謝辞
SKU-110kデータセットを研究開発に使用する場合は、以下の論文を引用してください:
SKU-110kデータセットをコンピュータビジョン研究コミュニティの貴重なリソースとして作成し、維持しているEran Goldmanらに感謝したい。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 モデルのトレーニングは簡単です。以下はYOLO11nモデルを画像サイズ640で100エポック訓練する例です:
列車の例
利用可能な引数の包括的なリストについては、モデルのトレーニングページを参照してください。
SKU-110kデータセットの主なサブセットとは?
SKU-110kデータセットは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データセットを研究開発に使用する場合は、以下の論文を引用してください:
データセットについての詳細は、「引用と謝辞」のセクションを参照されたい。