YOLO Vision 2026:

SKU-110K Veri Kümesi#

SKU-110K veri kümesi, 8.219 eğitim, 588 doğrulama ve 2.936 test görüntüsü olarak bölünmüş, yoğun şekilde paketlenmiş 11.743 perakende rafı görüntüsünden oluşan tek sınıfı olan bir nesne algılama veri kümesidir. Her ürün, tek bir object sınıfı altında tek bir sınırlayıcı kutu ile etiketlenmiştir; bu isim, 110.000 algılama sınıfına değil, sahneler boyunca fotoğraflanan 110.000'den fazla benzersiz stok saklama birimine (SKU) atıfta bulunur. Eran Goldman ve diğerleri tarafından CVPR 2019 bildirisi Precise Detection in Densely Packed Scenes için oluşturulmuştur; 1,7 milyondan fazla etiketlenmiş ürün içerir (görüntü başına ortalama yaklaşık 147) ve bu da onu kalabalık perakende ortamlarındaki computer vision modelleri için zorlu bir kıyaslama testi haline getirir.



Watch: How to Train Ultralytics YOLO26 to Detect Every Product on a Retail Shelf | SKU-110K 🛒

SKU-110K dataset densely packed retail shelf detection

Temel Özellikler#

  • Tek sınıf algılama: Her ürün, tek bir object (names: {0: object}) sınıfı altında tek bir sınırlayıcı kutu ile etiketlenmiştir — ek açıklamalar SKU başına kategori etiketleri içermez.
  • Aşırı nesne yoğunluğu: Dünyanın dört bir yanından gelen mağaza rafı görüntüleri, genellikle benzer veya hatta birbirinin aynısı olan nesnelerin yakın mesafede konumlandırıldığı, görüntü başına ortalama yaklaşık 147 adet sıkı paketlenmiş ürüne sahiptir.
  • Büyük ölçek: 11.743 görüntü üzerinde 110.000'den fazla benzersiz SKU ve 1,7 milyonu aşkın etiketli sınırlayıcı kutu, güncel nesne dedektörlerine meydan okur.

Veri Kümesi Yapısı#

SKU-110K veri kümesi, hepsi tek object sınıfını paylaşan üç alt kümeye ayrılmıştır:

BölümGörüntülerAçıklama
Eğit (Train)8,219Model eğitimi için görüntüler ve ek açıklamalar
Doğrulama588Eğitim sırasında değerlendirme için ayrılmış görüntüler
Test2,936Eğitilmiş modelin nihai değerlendirmesi için görüntüler

Uygulamalar#

SKU-110K veri kümesi, özellikle perakende raf vitrinleri gibi yoğun paketlenmiş sahnelerde nesne algılama görevlerindeki deep learning modellerini eğitmek ve değerlendirmek için yaygın olarak kullanılmaktadır. Uygulamaları şunları içerir:

  • Perakende envanter yönetimi ve otomasyonu
  • E-ticaret platformlarında ürün tanıma
  • Planogram uyumluluk doğrulaması
  • Mağazalardaki self-servis ödeme sistemleri
  • Depolarda robotik toplama ve ayırma

Kendi raf görüntülerinizi etiketlemek, perakende algılama veri kümelerini tarayıcınızda eğitmek ve yönetmek için tüm iş akışını Ultralytics Platform ile çalıştır.

Veri Kümesi YAML#

SKU-110K.yaml dosyası veri kümesi yapılandırmasını tanımlar — veri kümesi yolları, sınıf adları ve diğer meta veriler. Ultralytics deposunda https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml adresinde sürdürülmektedir.

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, has_header=False, new_columns=names, infer_schema_length=None).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

Kullanım#

13,6 GB indirme

SKU-110K, ilk kez eğitim yaptığında otomatik olarak indirilir ve 11.743 görüntüsü için yaklaşık 13,6 GB boş disk alanına ihtiyaç duyar. İndirme betiği ayrıca orijinal ek açıklamaları alır ve bunları birkaç dakika sürebilen YOLO formatına dönüştürür.

SKU-110K veri kümesi üzerinde 640 görüntü boyutuyla 100 epochs boyunca bir YOLO26n modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Mevcut argümanların kapsamlı bir listesi için model Training sayfasına bak.

Eğitim Örneği
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)

Örnek Veriler ve Etiketler#

SKU-110K görüntüleri, düzinelerce birbirine benzeyen öğenin yan yana durduğu gerçek mağaza raflarındaki yoğun paketlenmiş ürünleri yakalar. İşte ek açıklamalarıyla birlikte örnek bir görüntü:

SKU-110K retail product detection on store shelves

  • Yoğun paketlenmiş perakende rafı görüntüsü: Bu görüntü, perakende rafı ortamında yoğun paketlenmiş nesnelere bir örnek göstermektedir. Nesneler, tek object sınıfı altında sınırlayıcı kutularla etiketlenmiştir.

Ürünlerin yoğun düzeni, SKU-110K'yı sağlam perakende odaklı bilgisayarlı görü çözümleri geliştirmek için özellikle değerli kılar, çünkü görüntü başına yüksek nesne sayısı dedektörleri tipik kıyaslamaların çok ötesine taşır.

Alıntılar ve Teşekkür#

SKU-110K veri kümesini araştırma veya geliştirme çalışmalarında kullanıyorsan, lütfen şu makaleyi referans göster:

Alıntı
@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 veri kümesini bilgisayarla görü araştırma topluluğu için değerli bir kaynak olarak oluşturdukları ve sürdürdükleri için Eran Goldman ve diğerlerine teşekkür ederiz. SKU-110K veri kümesi ve yaratıcıları hakkında daha fazla bilgi için SKU-110K dataset GitHub repository adresini ziyaret et.

SSS#

  • SKU-110K veri kümesi, Eran Goldman ve arkadaşları tarafından CVPR 2019 bildirileri için oluşturulan, yoğun şekilde paketlenmiş 11.743 perakende rafı görüntüsünden oluşan tek sınıflı bir nesne algılama veri kümesidir. Her ürün bir object sınırlayıcı kutusuyla etiketlenmiştir ve görüntüler 110.000'den fazla benzersiz stok saklama birimini (SKU) kapsar; bu da onu kalabalık sahnelerdeki nesneleri algılamak ve perakende computer vision sistemleri oluşturmak için güçlü bir kıyaslama haline getirir.

  • Hayır. SKU-110K tek sınıflıdır: her ürün object (names: {0: object}) sınıfı altında bir sınırlayıcı kutu ile etiketlenmiştir. İsimdeki "110K", algılama sınıflarının sayısına değil, görüntülerde yer alan benzersiz stok saklama birimlerinin (SKU) sayısına atıfta bulunur.

  • SKU-110K veri kümesi 11.743 görüntü — eğitim için 8.219, doğrulama için 588 ve test için 2.936 — ve tek bir algılama sınıfı (object) içerir. Ayrıntılar için Dataset Structure bölümüne ve SKU-110K.yaml yapılandırmasına bak.

  • SKU-110K yaklaşık 13.6 GB boyutundadır ve data="SKU-110K.yaml" ile ilk kez eğitim yaptığında otomatik olarak indirilir — manuel indirme gerekmez. Daha küçük seçeneklere göz atmak için detection datasets overview sayfasına bak.

  • SKU-110K veri kümesi üzerinde bir YOLO26 modeli eğitmek oldukça basittir. İşte 640 görüntü boyutu ile 100 epoch boyunca bir YOLO26n modeli eğitmek için bir örnek:

    Eğitim Örneği
    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
    
    # Train the model
    results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)

    Mevcut argümanların kapsamlı bir listesi için model Training sayfasına ve model training tips sayfasına bak.

Yorumlar