Link to this sectionJeu de données SKU-110k#
Le jeu de données SKU-110k est une collection d'images de rayons de magasin densément remplis, conçue pour soutenir la recherche dans les tâches de détection d'objets. Développé par Eran Goldman et al., le jeu de données contient plus de 110 000 catégories d'unités de gestion des stocks (SKU) uniques avec des objets densément regroupés, qui semblent souvent similaires ou même identiques, positionnés à proximité.
Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Link to this sectionFonctionnalités clés#
- SKU-110k contient des images de rayons de magasin du monde entier, présentant des objets densément regroupés qui posent des défis aux détecteurs d'objets de pointe.
- Le jeu de données comprend plus de 110 000 catégories SKU uniques, offrant une gamme diversifiée d'apparences d'objets.
- Les annotations incluent des boîtes englobantes pour les objets et des étiquettes de catégorie SKU.
Link to this sectionStructure du jeu de données#
Le jeu de données SKU-110k est organisé en trois sous-ensembles principaux :
- Ensemble d'entraînement : Ce sous-ensemble contient 8 219 images et annotations utilisées pour entraîner des modèles de détection d'objets.
- Ensemble de validation : Ce sous-ensemble se compose de 588 images et annotations utilisées pour la validation du modèle pendant l'entraînement.
- Ensemble de test : Ce sous-ensemble comprend 2 936 images conçues pour l'évaluation finale des modèles de détection d'objets entraînés.
Link to this sectionApplications#
Le jeu de données SKU-110k est largement utilisé pour entraîner et évaluer des modèles de deep learning dans des tâches de détection d'objets, en particulier dans des scènes densément remplies comme les présentoirs de rayons de magasin. Ses applications incluent :
- Gestion et automatisation des stocks de détail
- Reconnaissance de produits sur les plateformes de commerce électronique
- Vérification de la conformité du planogramme
- Systèmes de paiement en libre-service dans les magasins
- Prélèvement et tri robotisés dans les entrepôts
L'ensemble diversifié de catégories SKU et les dispositions d'objets densément regroupés font de ce jeu de données une ressource précieuse pour les chercheurs et les praticiens dans le domaine de la vision par ordinateur.
Link to this sectionYAML du jeu de données#
Un fichier YAML (Yet Another Markup Language) est utilisé pour définir la configuration du jeu de données. Il contient des informations sur les chemins du jeu de données, les classes et d'autres informations pertinentes. Pour le cas du jeu de données SKU-110K, le fichier SKU-110K.yaml est maintenu à https://github.com/ultralytics/ultralytics/blob/main/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 labelLink to this sectionUtilisation#
Pour entraîner un modèle YOLO26n sur le jeu de données SKU-110K pendant 100 époques avec une taille d'image de 640, tu peux utiliser les extraits de code suivants. Pour une liste complète des arguments disponibles, consulte la page Entraînement du modèle.
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)Link to this sectionExemples de données et d'annotations#
Le jeu de données SKU-110k contient un ensemble diversifié d'images de rayons de magasin avec des objets densément regroupés, fournissant un contexte riche pour les tâches de détection d'objets. Voici quelques exemples de données du jeu de données, accompagnés de leurs annotations correspondantes :

- Image de rayon de magasin densément rempli : Cette image démontre un exemple d'objets densément regroupés dans un contexte de rayon de magasin. Les objets sont annotés avec des boîtes englobantes et des étiquettes de catégorie SKU.
L'exemple met en valeur la variété et la complexité des données dans le jeu de données SKU-110k et souligne l'importance de données de haute qualité pour les tâches de détection d'objets. L'agencement dense des produits présente des défis uniques pour les algorithmes de détection, rendant ce jeu de données particulièrement précieux pour développer des solutions robustes de vision par ordinateur axées sur la vente au détail.
Link to this sectionCitations et remerciements#
Si tu utilises le jeu de données SKU-110k dans ton travail de recherche ou de développement, merci de citer l'article suivant :
@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}
}Nous tenons à remercier Eran Goldman et al. pour la création et la maintenance du jeu de données SKU-110k en tant que ressource précieuse pour la communauté de recherche en vision par ordinateur. Pour plus d'informations sur le jeu de données SKU-110k et ses créateurs, visite le dépôt GitHub du jeu de données SKU-110k.
Link to this sectionFAQ#
Link to this sectionQu'est-ce que le jeu de données SKU-110k et pourquoi est-il important pour la détection d'objets ?#
Le jeu de données SKU-110k se compose d'images de rayons de magasin densément remplis, conçues pour aider la recherche dans les tâches de détection d'objets. Développé par Eran Goldman et al., il comprend plus de 110 000 catégories SKU uniques. Son importance réside dans sa capacité à mettre au défi les détecteurs d'objets de pointe avec des apparences d'objets diversifiées et leur proximité, ce qui en fait une ressource inestimable pour les chercheurs et les praticiens en vision par ordinateur. Apprends-en davantage sur la structure et les applications du jeu de données dans notre section Jeu de données SKU-110k.
Link to this sectionComment puis-je entraîner un modèle YOLO26 en utilisant le jeu de données SKU-110k ?#
L'entraînement d'un modèle YOLO26 sur le jeu de données SKU-110k est simple. Voici un exemple pour entraîner un modèle YOLO26n pendant 100 époques avec une taille d'image de 640 :
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)Pour une liste complète des arguments disponibles, consulte la page Entraînement du modèle.
Link to this sectionQuels sont les principaux sous-ensembles du jeu de données SKU-110k ?#
Le jeu de données SKU-110k est organisé en trois sous-ensembles principaux :
- Ensemble d'entraînement : Contient 8 219 images et annotations utilisées pour entraîner des modèles de détection d'objets.
- Ensemble de validation : Se compose de 588 images et annotations utilisées pour la validation du modèle pendant l'entraînement.
- Ensemble de test : Inclut 2 936 images conçues pour l'évaluation finale des modèles de détection d'objets entraînés.
Consulte la section Structure du jeu de données pour plus de détails.
Link to this sectionComment configurer le jeu de données SKU-110k pour l'entraînement ?#
La configuration du jeu de données SKU-110k est définie dans un fichier YAML, qui inclut des détails sur les chemins du jeu de données, les classes et d'autres informations pertinentes. Le fichier SKU-110K.yaml est maintenu sur SKU-110K.yaml. Par exemple, tu peux entraîner un modèle en utilisant cette configuration comme indiqué dans notre section Utilisation.
Link to this sectionQuelles sont les principales caractéristiques du jeu de données SKU-110k dans le contexte du deep learning ?#
Le jeu de données SKU-110k présente des images de rayons de magasin du monde entier, mettant en valeur des objets densément regroupés qui posent des défis significatifs pour les détecteurs d'objets :
- Plus de 110 000 catégories SKU uniques
- Apparences d'objets diversifiées
- Les annotations incluent des boîtes englobantes et des étiquettes de catégorie SKU
Ces caractéristiques rendent le jeu de données SKU-110k particulièrement précieux pour entraîner et évaluer des modèles de deep learning dans des tâches de détection d'objets. Pour plus de détails, vois la section Caractéristiques clés.
Link to this sectionComment puis-je citer le jeu de données SKU-110k dans ma recherche ?#
Si tu utilises le jeu de données SKU-110k dans ton travail de recherche ou de développement, merci de citer l'article suivant :
@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}
}Plus d'informations sur le jeu de données peuvent être trouvées dans la section Citations et remerciements.