Ir al contenido

Conjunto de datos SKU-110k

El conjunto de datos SKU-110k es una colección de imágenes de estantes de tiendas minoristas densamente empaquetados, diseñado 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 existencias (SKU) con objetos densamente empaquetados, que a menudo se ven similares o incluso idénticos, colocados en proximidad.



Ver: Cómo entrenar YOLOv10 en el conjunto de datos SKU-110k usando Ultralytics | Conjunto de datos de minoristas

Imagen de muestra del conjunto de datos

Características clave

  • SKU-110k contiene imágenes de estantes de tiendas de todo el mundo, con objetos densamente empaquetados que plantean desafíos para los detectores de objetos de última generación.
  • El conjunto de datos incluye más de 110,000 categorías de SKU únicas, lo que proporciona una amplia gama de apariencias de objetos.
  • Las anotaciones incluyen cuadros delimitadores para objetos y etiquetas de categoría SKU.

Estructura del conjunto de datos

El conjunto de datos SKU-110k está organizado en tres subconjuntos principales:

  1. Conjunto de entrenamiento: Este subconjunto contiene 8219 imágenes y anotaciones utilizadas para entrenar modelos de detección de objetos.
  2. Conjunto de validación: Este subconjunto consta de 588 imágenes y anotaciones utilizadas para la validación del modelo durante el entrenamiento.
  3. Conjunto de prueba: Este subconjunto incluye 2936 imágenes diseñadas 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 pobladas, como las estanterías de tiendas minoristas. Sus aplicaciones incluyen:

  • Gestión y automatización del inventario minorista
  • Reconocimiento de productos en plataformas de comercio electrónico
  • Verificación del cumplimiento de planogramas
  • Sistemas de autopago en tiendas
  • Recogida y clasificación robóticas en almacenes

El diverso conjunto de categorías de SKU y las disposiciones de objetos densamente empaquetados del conjunto de datos lo convierten en un valioso recurso para investigadores y profesionales en el campo de la visión artificial.

YAML del conjunto de datos

Se utiliza un archivo YAML (Yet Another Markup Language) para definir la configuración del conjunto de datos. Contiene información sobre las rutas, las clases y otra información relevante del conjunto de datos. Para el caso del conjunto de datos SKU-110K, el SKU-110K.yaml archivo se mantiene en https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml.

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, names=names).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 label

Uso

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 entrenamiento

from ultralytics import YOLO

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

Datos de muestra y anotaciones

El conjunto de datos SKU-110k contiene un conjunto diverso de imágenes de estanterías minoristas con objetos densamente empaquetados, lo que proporciona un contexto enriquecido para las tareas de detección de objetos. Aquí hay algunos ejemplos de datos del conjunto de datos, junto con sus anotaciones correspondientes:

Imagen de muestra del conjunto de datos

  • Imagen de estantería minorista densamente poblada: Esta imagen muestra un ejemplo de objetos densamente empaquetados en un entorno de estantería minorista. Los objetos están anotados con cajas delimitadoras y etiquetas de categoría SKU.

El ejemplo muestra la variedad y complejidad de los datos en el conjunto de datos SKU-110k y destaca la importancia de los datos de alta calidad para las tareas de detección de objetos. La disposición densa de los productos presenta desafíos únicos para los algoritmos de detección, lo que hace que este conjunto de datos sea particularmente valioso para desarrollar soluciones robustas de visión artificial centradas en el comercio minorista.

Citas y agradecimientos

Si utiliza el conjunto de datos SKU-110k en su trabajo de investigación o desarrollo, cite el siguiente artículo:

@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}
}

Nos gustaría agradecer a Eran Goldman et al. por crear y mantener el conjunto de datos SKU-110k como un recurso valioso para la comunidad de investigación en visión artificial. Para obtener más información sobre el conjunto de datos SKU-110k y sus creadores, visite el repositorio de 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 consta de imágenes de estantes de venta al por menor densamente empaquetados 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 de SKU únicas. Su importancia radica en su capacidad para desafiar a los detectores de objetos de última generación con diversas apariencias y proximidad de objetos, lo que lo convierte en un recurso invaluable para investigadores y profesionales en visión artificial. Obtén más información sobre la estructura y las aplicaciones del conjunto de datos en nuestra sección Conjunto de datos SKU-110k.

¿Cómo entreno un modelo YOLO11 utilizando el conjunto de datos SKU-110k?

Entrenar un modelo YOLO11 en el conjunto de datos SKU-110k es sencillo. Aquí hay un ejemplo para entrenar un modelo YOLO11n durante 100 épocas con un tamaño de imagen de 640:

Ejemplo de entrenamiento

from ultralytics import YOLO

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

Para obtener una lista completa de los argumentos disponibles, consulte la página de Entrenamiento 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:

  1. Conjunto de entrenamiento: Contiene 8219 imágenes y anotaciones utilizadas para entrenar modelos de detección de objetos.
  2. Conjunto de validación: Consta de 588 imágenes y anotaciones utilizadas para la validación del modelo durante el entrenamiento.
  3. Conjunto de prueba: Incluye 2936 imágenes diseñadas para la evaluación final de los modelos de detección de objetos entrenados.

Consulta la sección de Estructura del Conjunto de Datos para obtener más detalles.

¿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, las clases y otra información relevante del conjunto de datos. SKU-110K.yaml archivo se mantiene en SKU-110K.yaml. Por ejemplo, puedes entrenar un modelo utilizando esta configuración como se muestra en nuestra Uso sección.

¿Cuáles son las características clave del conjunto de datos SKU-110k en el contexto del aprendizaje profundo?

El conjunto de datos SKU-110k presenta imágenes de estantes de tiendas de todo el mundo, que muestran objetos densamente empaquetados que plantean desafíos importantes para los detectores de objetos:

  • Más de 110,000 categorías de SKU únicas
  • Apariencias diversas 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 particularmente valioso para entrenar y evaluar modelos de aprendizaje profundo en tareas de detección de objetos. Para obtener más detalles, consulte la sección de Características Clave.

¿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 artículo:

@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}
}

Puede encontrar más información sobre el conjunto de datos en la sección de Citas y Reconocimientos.



📅 Creado hace 1 año ✏️ Actualizado hace 5 meses

Comentarios