SKU-110K Veri Kümesi#
SKU-110K veri kümesi, 11.743 yoğun biçimde doldurulmuş perakende rafı görüntüsünden oluşan ve 8.219 eğitim, 588 doğrulama ve 2.936 test görüntüsüne ayrılan tek sınıflı bir nesne algılama veri kümesidir. Her ürün, tek bir sınıf olan object altında bir sınırlayıcı kutuyla etiketlenmiştir — bu ad, 110.000 algılama sınıfına değil, sahneler genelinde görüntülenen 110.000'den fazla benzersiz mağaza stok birimine (SKUs) atıfta bulunur. Eran Goldman ve çalışma arkadaşları tarafından CVPR 2019 bildirisi Yoğun Biçimde Doldurulmuş Sahnelerde Hassas Algılama için oluşturulan veri kümesi, 1,7 milyondan fazla etiketlenmiş ürün içerir — görüntü başına ortalama yaklaşık 147 ürün — ve bu da onu kalabalık perakende ortamlarındaki bilgisayarlı görü modelleri için zorlu bir kıyaslama hâline getirir.
Watch: How to Train Ultralytics YOLO26 to Detect Every Product on a Retail Shelf | SKU-110K 🛒

Temel Özellikler#
- Tek sınıflı algılama: Her ürün, tek bir sınıf olan
object(names: {0: object}) 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 farklı yerlerinden mağaza rafı görüntülerinde, her birinde ortalama yaklaşık 147 sıkışık ürün bulunur; nesneler çoğu zaman birbirine benzer, hatta aynı görünür ve birbirlerine çok yakın konumlanı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 algılayıcıları için zorluk oluşturur.
Veri Kümesi Yapısı#
SKU-110K veri kümesi, tümü 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 nihai değerlendirmesi için görüntüler |
Uygulamalar#
SKU-110K veri kümesi, nesne algılama görevlerinde, özellikle perakende rafı sergilemeleri gibi yoğun biçimde doldurulmuş sahnelerde derin öğrenme modellerini eğitmek ve değerlendirmek için yaygın olarak kullanılır. Uygulamaları şunları içerir:
- Perakende envanter yönetimi ve otomasyonu
- E-ticaret platformlarında ürün tanıma
- Planogram uyumluluğu doğrulama
- Mağazalarda self-servis ödeme sistemleri
- Depolarda robotik toplama ve ayırma
Kendi raf görüntülerine açıklama eklemek, perakende algılama veri kümelerini tarayıcında eğitmek ve yönetmek için tüm iş akışını Ultralytics Platform ile çalıştır.
Veri Kümesi YAML'i#
SKU-110K.yaml dosyası, veri kümesi yapılandırmasını — veri kümesi yollarını, sınıf adlarını ve diğer meta verileri — tanımlar. Bu dosya, Ultralytics deposunda https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml adresinde 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ğitim çalıştırmanda 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 özgün açıklamaları getirir ve bunları YOLO biçimine dönüştürür; bu işlem birkaç dakika sürebilir.
SKU-110K veri kümesi üzerinde 640 görüntü boyutuyla 100 epoch boyunca bir YOLO26n modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Kullanılabilir bağımsız değişkenlerin kapsamlı listesi için modelin Eğitim sayfasına bak.
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 Açıklamalar#
SKU-110K görüntüleri, düzinelerce neredeyse aynı ürünün yan yana bulunduğu gerçek mağaza raflarındaki yoğun biçimde yerleştirilmiş ürünleri yakalar. Açıklamalarıyla birlikte bir görüntü örneği aşağıda verilmiştir:

- Yoğun biçimde doldurulmuş perakende rafı görüntüsü: Bu görüntü, perakende rafı ortamında yoğun biçimde yerleştirilmiş nesnelere bir örnek gösterir. Nesneler, tek
objectsınıfı altında sınırlayıcı kutularla açıklanmıştır.
Ürünlerin yoğun yerleşimi, SKU-110K'yı 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ı, algılayıcıları tipik kıyaslamaların çok ötesine taşır.
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 bildiriyi 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}
}SKU-110K veri kümesini bilgisayarlı görü araştırma topluluğu için değerli bir kaynak olarak oluşturan ve sürdüren Eran Goldman ve çalışma arkadaşlarına teşekkür ederiz. SKU-110K veri kümesi ve oluşturucuları hakkında daha fazla bilgi için SKU-110K veri kümesi GitHub deposunu ziyaret et.
SSS#
SKU-110K veri kümesi, Eran Goldman ve çalışma arkadaşları tarafından CVPR 2019 bildirileri için oluşturulan, 11.743 yoğun biçimde doldurulmuş perakende rafı görüntüsünden oluşan tek sınıflı bir nesne algılama veri kümesidir. Her ürün bir
objectsınırlayıcı kutusuyla etiketlenmiştir ve görüntüler 110.000'den fazla benzersiz mağaza stok birimini (SKUs) kapsar; bu da veri kümesini kalabalık sahnelerde nesne algılama ve perakende bilgisayarlı görü sistemleri oluşturma için güçlü bir kıyaslama hâline 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ı kutuyla açıklanmıştır. Adındaki "110K", algılama sınıflarının sayısına değil, görüntüler genelinde gösterilen benzersiz mağaza stok birimlerinin (SKUs) sayısına atıfta bulunur.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ü — ve tek bir algılama sınıfına,
object, sahiptir. 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ğitim yaptığında otomatik olarak indirilir — manuel indirme gerekmez. Daha küçük seçeneklere göz atmak için algılama veri kümelerine genel bakış sayfasına bak.SKU-110K veri kümesi üzerinde bir YOLO26 modeli eğitmek oldukça kolaydır. 640 görüntü boyutuyla 100 epoch boyunca bir YOLO26n modeli eğitmek için örnek aşağıda verilmiştir:
Eğitim Örneğifrom 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)Kullanılabilir bağımsız değişkenlerin kapsamlı listesi için modelin Eğitim sayfasına ve model eğitimi ipuçlarına bak.



