─░├žeri─če ge├ž

SKU-110k Veri Seti

SKU-110k veri k├╝mesi, nesne alg─▒lama g├Ârevlerinde ara┼čt─▒rmay─▒ desteklemek i├žin tasarlanm─▒┼č, yo─čun ┼čekilde paketlenmi┼č perakende raf g├Âr├╝nt├╝lerinden olu┼čan bir koleksiyondur. Eran Goldman ve arkada┼člar─▒ taraf─▒ndan geli┼čtirilen veri k├╝mesi, birbirine yak─▒n konumland─▒r─▒lm─▒┼č, genellikle benzer ve hatta ayn─▒ g├Âr├╝nen yo─čun ┼čekilde paketlenmi┼č nesneler i├žeren 110.000'den fazla benzersiz ma─čaza tutma birimi (SKU) kategorisi i├žerir.

Veri k├╝mesi ├Ârnek g├Âr├╝nt├╝s├╝

Temel ├ľzellikler

  • SKU-110k, d├╝nyan─▒n d├Ârt bir yan─▒ndan ma─čaza raflar─▒n─▒n g├Âr├╝nt├╝lerini i├žerir ve son teknoloji ├╝r├╝n├╝ nesne dedekt├Ârleri i├žin zorluk te┼čkil eden yo─čun ┼čekilde paketlenmi┼č nesneler i├žerir.
  • Veri k├╝mesi, 110.000'den fazla benzersiz SKU kategorisi i├žermekte ve ├žok ├že┼čitli nesne g├Âr├╝n├╝mleri sa─člamaktad─▒r.
  • Ek a├ž─▒klamalar, nesneler i├žin s─▒n─▒rlay─▒c─▒ kutular ve SKU kategori etiketlerini i├žerir.

Veri K├╝mesi Yap─▒s─▒

SKU-110k veri k├╝mesi ├╝├ž ana alt k├╝me halinde d├╝zenlenmi┼čtir:

  1. E─čitim seti: Bu alt k├╝me, nesne alg─▒lama modellerini e─čitmek i├žin kullan─▒lan g├Âr├╝nt├╝leri ve ek a├ž─▒klamalar─▒ i├žerir.
  2. Do─črulama seti: Bu alt k├╝me, e─čitim s─▒ras─▒nda model do─črulamas─▒ i├žin kullan─▒lan g├Âr├╝nt├╝lerden ve ek a├ž─▒klamalardan olu┼čur.
  3. Test k├╝mesi: Bu alt k├╝me, e─čitilmi┼č nesne alg─▒lama modellerinin nihai de─čerlendirmesi i├žin tasarlanm─▒┼čt─▒r.

Uygulamalar

SKU-110k veri k├╝mesi, ├Âzellikle perakende raf te┼čhirleri gibi yo─čun ┼čekilde paketlenmi┼č sahnelerde nesne alg─▒lama g├Ârevlerinde derin ├Â─črenme modellerini e─čitmek ve de─čerlendirmek i├žin yayg─▒n olarak kullan─▒lmaktad─▒r. Veri setinin ├že┼čitli SKU kategorileri ve yo─čun ┼čekilde paketlenmi┼č nesne d├╝zenlemeleri, onu bilgisayarla g├Ârme alan─▒ndaki ara┼čt─▒rmac─▒lar ve uygulay─▒c─▒lar i├žin de─čerli bir kaynak haline getirmektedir.

Veri K├╝mesi YAML

Veri k├╝mesi yap─▒land─▒rmas─▒n─▒ tan─▒mlamak i├žin bir YAML (Yet Another Markup Language) dosyas─▒ kullan─▒l─▒r. Veri k├╝mesinin yollar─▒, s─▒n─▒flar─▒ ve di─čer ilgili bilgiler hakk─▒nda bilgi i├žerir. SKU-110K veri k├╝mesi i├žin SKU-110K.yaml dosyas─▒ ┼ču adreste tutulur 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

Kullan─▒m

SKU-110K veri k├╝mesinde 640 g├Âr├╝nt├╝ boyutuyla 100 epok i├žin bir YOLOv8n modelini e─čitmek i├žin a┼ča─č─▒daki kod par├žac─▒klar─▒n─▒ kullanabilirsiniz. Kullan─▒labilir ba─č─▒ms─▒z de─či┼čkenlerin kapsaml─▒ bir listesi i├žin Model E─čitimi sayfas─▒na bak─▒n.

Tren ├ľrne─či

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.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=yolov8n.pt epochs=100 imgsz=640

├ľrnek Veriler ve A├ž─▒klamalar

SKU-110k veri k├╝mesi, nesne alg─▒lama g├Ârevleri i├žin zengin bir ba─člam sa─člayan, yo─čun ┼čekilde paketlenmi┼č nesneler i├žeren ├že┼čitli perakende raf g├Âr├╝nt├╝leri i├žerir. ─░┼čte veri k├╝mesinden baz─▒ veri ├Ârnekleri ve bunlara kar┼č─▒l─▒k gelen ek a├ž─▒klamalar:

Veri k├╝mesi ├Ârnek g├Âr├╝nt├╝s├╝

  • Yo─čun ┼čekilde paketlenmi┼č perakende raf g├Âr├╝nt├╝s├╝: Bu g├Âr├╝nt├╝, bir perakende raf ortam─▒nda yo─čun ┼čekilde paketlenmi┼č nesnelerin bir ├Ârne─čini g├Âstermektedir. Nesneler, s─▒n─▒rlay─▒c─▒ kutular ve SKU kategori etiketleri ile a├ž─▒klanm─▒┼čt─▒r.

├ľrnek, SKU-110k veri k├╝mesindeki verilerin ├že┼čitlili─čini ve karma┼č─▒kl─▒─č─▒n─▒ sergilemekte ve nesne alg─▒lama g├Ârevleri i├žin y├╝ksek kaliteli verilerin ├Ânemini vurgulamaktad─▒r.

At─▒flar ve Te┼čekk├╝r

Ara┼čt─▒rma veya geli┼čtirme ├žal─▒┼čmalar─▒n─▒zda SKU-110k veri setini kullan─▒yorsan─▒z, l├╝tfen a┼ča─č─▒daki makaleye at─▒fta bulunun:

@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 setini bilgisayarla g├Ârme ara┼čt─▒rma toplulu─ču i├žin de─čerli bir kaynak olarak olu┼čturduklar─▒ ve s├╝rd├╝rd├╝kleri i├žin Eran Goldman ve arkada┼člar─▒na te┼čekk├╝r ederiz. SKU-110k veri k├╝mesi ve yarat─▒c─▒lar─▒ hakk─▒nda daha fazla bilgi i├žin SKU-110k veri k├╝mesi GitHub deposunu ziyaret edin.



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (5), Laughing-q (1)

Yorumlar