Conjunto de datos SKU-110k
El conjunto de datos SKU-110k es una colección de imágenes de estanterías de tiendas densamente empaquetadas, diseñada para apoyar la investigación en tareas de detección de objetos. Desarrollado por Eran Goldman et al., el conjunto de datos contiene más de 110.000 categorías únicas de unidades de mantenimiento de tienda (SKU) con objetos densamente empaquetados, a menudo de aspecto similar o incluso idéntico, situados muy cerca.
Observa: Cómo entrenar YOLOv10 en el conjunto de datos SKU-110k utilizando Ultralytics | Retail Dataset
Características principales
- SKU-110k contiene imágenes de estanterías de tiendas de todo el mundo, con objetos densamente empaquetados que suponen un reto para los detectores de objetos más avanzados.
- El conjunto de datos incluye más de 110.000 categorías únicas de SKU, lo que proporciona una gama diversa de apariencias de objetos.
- Las anotaciones incluyen cuadros delimitadores para objetos y etiquetas de categorías SKU.
Estructura del conjunto de datos
El conjunto de datos SKU-110k está organizado en tres subconjuntos principales:
- Conjunto de entrenamiento: Este subconjunto contiene imágenes y anotaciones utilizadas para entrenar los modelos de detección de objetos.
- Conjunto de validación: Este subconjunto consta de imágenes y anotaciones utilizadas para la validación del modelo durante el entrenamiento.
- Conjunto de prueba: Este subconjunto está diseñado para la evaluación final de los modelos de detección de objetos entrenados.
Aplicaciones
El conjunto de datos SKU-110k se utiliza ampliamente para entrenar y evaluar modelos de aprendizaje profundo en tareas de detección de objetos, especialmente en escenas densamente empaquetadas, como las estanterías de los comercios. La diversidad de categorías de SKU del conjunto de datos y las disposiciones de objetos densamente empaquetados lo convierten en un recurso valioso para investigadores y profesionales del campo de la visión por ordenador.
Conjunto de datos YAML
Para definir la configuración del conjunto de datos se utiliza un archivo YAML (Yet Another Markup Language). Contiene información sobre las rutas del conjunto de datos, las clases y otra información relevante. En el caso del conjunto de datos SKU-110K, el archivo SKU-110K.yaml
se mantiene en 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
Utilización
Para entrenar un modelo YOLO11n en el conjunto de datos SKU-110K durante 100 épocas con un tamaño de imagen de 640, puede utilizar los siguientes fragmentos de código. Para obtener una lista completa de los argumentos disponibles, consulte la página de entrenamiento del modelo.
Ejemplo de tren
Ejemplos de datos y anotaciones
El conjunto de datos SKU-110k contiene un variado conjunto de imágenes de estanterías de comercios minoristas con objetos densamente empaquetados, lo que proporciona un rico contexto para las tareas de detección de objetos. A continuación se muestran algunos ejemplos de datos del conjunto de datos, junto con sus correspondientes anotaciones:
- Imagen de una estantería de venta al por menor densamente empaquetada: Esta imagen muestra un ejemplo de objetos densamente empaquetados en una estantería de venta al por menor. Los objetos están marcados con cajas delimitadoras y etiquetas de categoría SKU.
El ejemplo muestra la variedad y complejidad de los datos del conjunto de datos SKU-110k y subraya la importancia de los datos de alta calidad para las tareas de detección de objetos.
Citas y agradecimientos
Si utiliza el conjunto de datos SKU-110k en su trabajo de investigación o desarrollo, cite el siguiente documento:
Nos gustaría dar las gracias a Eran Goldman et al. por crear y mantener el conjunto de datos SKU-110k como un valioso recurso para la comunidad de investigación en visión por ordenador. Para obtener más información sobre el conjunto de datos SKU-110k y sus creadores, visite el repositorio GitHub del conjunto de datos SKU-110k.
PREGUNTAS FRECUENTES
¿Qué es el conjunto de datos SKU-110k y por qué es importante para la detección de objetos?
El conjunto de datos SKU-110k consiste en imágenes de estanterías de tiendas densamente empaquetadas, diseñadas para ayudar a la investigación en tareas de detección de objetos. Desarrollado por Eran Goldman et al., incluye más de 110.000 categorías únicas de SKU. Su importancia radica en su capacidad para desafiar a los detectores de objetos más avanzados con diversas apariencias de objetos y una gran proximidad, lo que lo convierte en un recurso inestimable para investigadores y profesionales de la visión por ordenador. Obtenga más información sobre la estructura y las aplicaciones del conjunto de datos en nuestra sección SKU-110k Dataset.
¿Cómo se entrena un modelo YOLO11 utilizando el conjunto de datos SKU-110k?
Entrenar un modelo YOLO11 en el conjunto de datos SKU-110k es sencillo. He aquí un ejemplo para entrenar un modelo YOLO11n durante 100 épocas con un tamaño de imagen de 640:
Ejemplo de tren
Para obtener una lista completa de los argumentos disponibles, consulte la página de formación del modelo.
¿Cuáles son los principales subconjuntos del conjunto de datos SKU-110k?
El conjunto de datos SKU-110k está organizado en tres subconjuntos principales:
- Conjunto de entrenamiento: Contiene imágenes y anotaciones utilizadas para entrenar los modelos de detección de objetos.
- Conjunto de validación: Consiste en imágenes y anotaciones utilizadas para la validación del modelo durante el entrenamiento.
- Conjunto de pruebas: Diseñado para la evaluación final de los modelos de detección de objetos entrenados.
Para más información, consulte la sección Estructura del conjunto de datos.
¿Cómo configuro el conjunto de datos SKU-110k para el entrenamiento?
La configuración del conjunto de datos SKU-110k se define en un archivo YAML, que incluye detalles sobre las rutas del conjunto de datos, las clases y otra información relevante. La dirección SKU-110K.yaml
se mantiene en SKU-110K.yaml. Por ejemplo, puede entrenar un modelo utilizando esta configuración como se muestra en nuestro Utilización sección.
¿Cuáles son las principales características del conjunto de datos SKU-110k en el contexto del aprendizaje profundo?
El conjunto de datos SKU-110k contiene imágenes de estanterías de tiendas de todo el mundo y muestra objetos densamente empaquetados que plantean importantes retos a los detectores de objetos:
- Más de 110.000 categorías únicas de SKU
- Diversas apariencias de objetos
- Las anotaciones incluyen cuadros delimitadores y etiquetas de categoría SKU
Estas características hacen que el conjunto de datos SKU-110k sea especialmente valioso para entrenar y evaluar modelos de aprendizaje profundo en tareas de detección de objetos. Para obtener más información, consulte la sección Características principales.
¿Cómo cito el conjunto de datos SKU-110k en mi investigación?
Si utiliza el conjunto de datos SKU-110k en su trabajo de investigación o desarrollo, cite el siguiente documento:
Encontrará más información sobre el conjunto de datos en la sección Citas y agradecimientos.