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üne ayrılmış, 11.743 yoğun biçimde ürünle dolu perakende rafı görüntüsünden oluşan tek sınıflı bir nesne tespiti veri kümesidir. Her ürün, object adlı tek bir sınıf altında bir sınırlayıcı kutuyla etiketlenmiştir — isim, görüntülerdeki 110.000'den fazla benzersiz stok tutma birimini (SKU) ifade eder; 110.000 tespit sınıfını değil. Eran Goldman ve diğerleri tarafından CVPR 2019 Yoğun Biçimde Dolu Sahnelerde Hassas Tespit makalesi için oluşturulan veri kümesinde 1,7 milyondan fazla etiketlenmiş ürün bulunur — görüntü başına ortalama yaklaşık 147 ürün — ve bu da kalabalık perakende ortamlarındaki bilgisayarlı görü modelleri için zorlu bir kıyaslama ölçütü oluşturur.
İzle: Perakende Rafındaki Her Ürünü Algılamak İçin Ultralytics YOLO26 Nasıl Eğitilir | SKU-110K 🛒

Temel Özellikler#
- Tek sınıflı tespit: Her ürün,
object(names: {0: object}) adlı tek bir sınıf altında bir sınırlayıcı kutuyla etiketlenmiştir — açıklamalarda SKU başına kategori etiketleri bulunmaz. - Aşırı nesne yoğunluğu: Dünyanın dört bir yanındaki mağaza rafı görüntülerinde ortalama yaklaşık 147 ürün, birbirine çok yakın ve yoğun biçimde sıralanmıştır; bu nesneler çoğu zaman birbirine benzer, hatta tıpatıp aynıdır.
- Büyük ölçek: 11.743 görüntüdeki 110.000'den fazla benzersiz SKU ve 1,7 milyondan fazla etiketlenmiş sınırlayıcı kutu, son teknoloji nesne dedektörlerini zorlar.
Veri Kümesi Yapısı#
SKU-110K veri kümesi, tümü aynı tek object sınıfını paylaşan üç alt kümeye ayrılmıştır:
| Bölüm | Görüntüler | Açıklama |
|---|---|---|
| Eğit | 8,219 | Model eğitimi için görüntüler ve açıklamalar |
| Doğrulama | 588 | Eğitim sırasında değerlendirme için ayrılmış görüntüler |
| Test | 2,936 | Eğitilmiş modelin son değerlendirmesi için görüntüler |
Uygulamalar#
SKU-110K veri kümesi, özellikle perakende rafı sergileri gibi yoğun biçimde dolu sahnelerde, nesne tespiti görevlerindeki derin öğrenme modellerini eğitmek ve değerlendirmek için yaygın olarak kullanılır. Kullanım alanları şunlardır:
- Perakende envanter yönetimi ve otomasyonu
- E-ticaret platformlarında ürün tanıma
- Planogram uyumluluğunun doğrulanması
- Mağazalardaki self-servis ödeme sistemleri
- Depolarda robotlarla toplama ve sıralama
Kendi raf görüntülerine açıklama eklemek, perakende tespiti veri kümelerini eğitmek ve yönetmek için tüm iş akışını tarayıcında Ultralytics Platform ile çalıştır.
Veri Kümesi YAML Dosyası#
SKU-110K.yaml dosyası, veri kümesi yollarını, sınıf adlarını ve diğer meta verileri içeren veri kümesi yapılandırmasını tanımlar. Dosya, Ultralytics deposunda https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml konumunda tutulur.
# 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 labelKullanım#
SKU-110K, ilk eğitiminde otomatik olarak indirilir ve 11.743 görüntüsü için yaklaşık 13.6 GB boş disk alanı gerektirir. İndirme betiği ayrıca orijinal açıklamaları getirip YOLO biçimine dönüştürür; bu işlem birkaç dakika sürebilir.
SKU-110K veri kümesinde YOLO26n modelini 640 görüntü boyutuyla 100 epoch boyunca eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Kullanılabilir bağımsız değişkenlerin tam listesi için modelin Eğitim sayfasına bak.
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n.pt") # Önceden eğitilmiş bir model yükle (eğitim için önerilir)
# Modeli eğit
results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)Örnek Veriler ve Açıklamalar#
SKU-110K görüntüleri, yan yana duran ve birbirine çok benzeyen onlarca ürünün bulunduğu gerçek mağaza raflarını gösterir. Açıklamalarıyla birlikte bir örnek görüntü şöyle:

- Yoğun ürünlerle dolu perakende rafı görüntüsü: Bu görüntü, perakende rafı ortamındaki yoğun nesnelere bir örnek gösterir. Nesneler, tek
objectsınıfı altında sınırlayıcı kutularla etiketlenmiştir.
Ürünlerin yoğun biçimde dizilmesi, SKU-110K'yi sağlam perakende odaklı bilgisayarlı görü çözümleri geliştirmek için özellikle değerli kılar; görüntü başına yüksek nesne sayısı, dedektörleri tipik kıyaslama ölçütlerinin çok ötesinde zorlar.
Atıflar ve Teşekkürler#
SKU-110K veri kümesini araştırma veya geliştirme çalışmalarında kullanıyorsan lütfen aşağıdaki makaleyi kaynak göster:
@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}
}Bilgisayarlı görü araştırma topluluğu için değerli bir kaynak olan SKU-110K veri kümesini oluşturup sürdürdükleri için Eran Goldman ve diğerlerine teşekkür ederiz. SKU-110K veri kümesi ve oluşturucuları hakkında daha fazla bilgi için SKU-110K veri kümesinin GitHub deposunu ziyaret et.
Sık Sorulan Sorular#
SKU-110K veri kümesi, Eran Goldman ve diğerleri tarafından CVPR 2019 makaleleri için oluşturulan, 11.743 yoğun biçimde ürünle dolu perakende rafı görüntüsünden oluşan tek sınıflı bir nesne tespiti veri kümesidir. Her ürün,
objectsınırlayıcı kutusuyla etiketlenmiştir ve görüntüler 110.000'den fazla benzersiz stok tutma birimini (SKU) kapsar. Bu özellikleriyle kalabalık sahnelerde nesne tespiti için güçlü bir kıyaslama ölçütü ve perakendeye yönelik bilgisayarlı görü sistemleri geliştirmek için iyi bir kaynaktır.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ı kutuyla etiketlenmiştir. İsimdeki "110K", görüntülerde yer alan benzersiz stok tutma birimlerinin (SKU) sayısını ifade eder; tespit sınıflarının sayısını değil.SKU-110K veri kümesi 11.743 görüntü içerir: 8.219 eğitim, 588 doğrulama ve 2.936 test görüntüsü; ayrıca tek bir tespit sınıfı olan
objectvardır. Ayrıntılar için Veri Kümesi Yapısı bölümüne veSKU-110K.yamlyapılandırmasına bak.SKU-110K yaklaşık 13.6 GB boyutundadır ve
data="SKU-110K.yaml"ile ilk eğitiminde otomatik olarak indirilir; elle indirmen gerekmez. Daha küçük seçeneklere göz atmak için tespit veri kümeleri genel bakışına bak.SKU-110K veri kümesinde YOLO26 modelini eğitmek oldukça kolaydır. 640 görüntü boyutuyla YOLO26n modelini 100 epoch boyunca eğitmek için bir örnek:
Eğitim Örneğifrom ultralytics import YOLO # Bir model yükle model = YOLO("yolo26n.pt") # Önceden eğitilmiş bir model yükle (eğitim için önerilir) # Modeli eğit results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)Kullanılabilir bağımsız değişkenlerin tam listesi için modelin Eğitim sayfasına ve model eğitimi ipuçlarına bak.



