Meet YOLO26: next-gen vision AI.

Link to this sectionDataset SKU-110k#

O dataset SKU-110k é uma coleção de imagens de prateleiras de varejo densamente preenchidas, projetada para apoiar pesquisas em tarefas de detecção de objetos. Desenvolvido por Eran Goldman et al., o dataset contém mais de 110.000 categorias únicas de SKU (unidade de manutenção de estoque) com objetos densamente agrupados, que muitas vezes parecem semelhantes ou até idênticos, posicionados em proximidade.



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Detecção de prateleira de varejo densamente preenchida do dataset SKU-110K

Link to this sectionPrincipais recursos#

  • O SKU-110k contém imagens de prateleiras de lojas de todo o mundo, apresentando objetos densamente agrupados que impõem desafios aos detectores de objetos de última geração.
  • O dataset inclui mais de 110.000 categorias únicas de SKU, fornecendo uma gama diversificada de aparências de objetos.
  • As anotações incluem caixas delimitadoras (bounding boxes) para objetos e rótulos de categoria de SKU.

Link to this sectionEstrutura do Dataset#

O dataset SKU-110k é organizado em três subconjuntos principais:

  1. Conjunto de treinamento: Este subconjunto contém 8.219 imagens e anotações usadas para treinar modelos de detecção de objetos.
  2. Conjunto de validação: Este subconjunto consiste em 588 imagens e anotações usadas para a validação do modelo durante o treinamento.
  3. Conjunto de teste: Este subconjunto inclui 2.936 imagens projetadas para a avaliação final de modelos de detecção de objetos treinados.

Link to this sectionAplicações#

O dataset SKU-110k é amplamente utilizado para treinar e avaliar modelos de deep learning em tarefas de detecção de objetos, especialmente em cenas densamente preenchidas, como expositores de prateleiras de varejo. Suas aplicações incluem:

  • Gestão e automação de estoque de varejo
  • Reconhecimento de produtos em plataformas de e-commerce
  • Verificação de conformidade de planogramas
  • Sistemas de autoatendimento em lojas
  • Coleta e separação robótica em armazéns

O conjunto diversificado de categorias de SKU e os arranjos de objetos densamente agrupados do dataset fazem dele um recurso valioso para pesquisadores e profissionais no campo da visão computacional.

Link to this sectionYAML do Dataset#

Um arquivo YAML (Yet Another Markup Language) é usado para definir a configuração do dataset. Ele contém informações sobre os caminhos do dataset, classes e outras informações relevantes. Para o caso do dataset SKU-110K, o arquivo SKU-110K.yaml é mantido em 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, 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 label

Link to this sectionUso#

Para treinar um modelo YOLO26n no dataset SKU-110K por 100 épocas com um tamanho de imagem de 640, você pode usar os seguintes trechos de código. Para uma lista abrangente de argumentos disponíveis, consulte a página de Treinamento do modelo.

Exemplo de Treinamento
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 sectionDados de Amostra e Anotações#

O dataset SKU-110k contém um conjunto diversificado de imagens de prateleiras de varejo com objetos densamente agrupados, fornecendo um contexto rico para tarefas de detecção de objetos. Aqui estão alguns exemplos de dados do dataset, juntamente com suas anotações correspondentes:

Detecção de produtos de varejo SKU-110K em prateleiras de lojas

  • Imagem de prateleira de varejo densamente preenchida: Esta imagem demonstra um exemplo de objetos densamente agrupados em um ambiente de prateleira de varejo. Os objetos são anotados com caixas delimitadoras e rótulos de categoria de SKU.

O exemplo mostra a variedade e a complexidade dos dados no dataset SKU-110k e destaca a importância de dados de alta qualidade para tarefas de detecção de objetos. O arranjo denso de produtos apresenta desafios únicos para algoritmos de detecção, tornando este dataset particularmente valioso para o desenvolvimento de soluções robustas de visão computacional voltadas para o varejo.

Link to this sectionCitações e Agradecimentos#

Se você usar o dataset SKU-110k em seu trabalho de pesquisa ou desenvolvimento, cite o seguinte artigo:

Citação
@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}
}

Gostaríamos de agradecer a Eran Goldman et al. pela criação e manutenção do dataset SKU-110k como um recurso valioso para a comunidade de pesquisa em visão computacional. Para mais informações sobre o dataset SKU-110k e seus criadores, visite o repositório GitHub do dataset SKU-110k.

Link to this sectionFAQ#

Link to this sectionO que é o dataset SKU-110k e por que ele é importante para a detecção de objetos?#

O dataset SKU-110k consiste em imagens de prateleiras de varejo densamente preenchidas, projetadas para auxiliar a pesquisa em tarefas de detecção de objetos. Desenvolvido por Eran Goldman et al., ele inclui mais de 110.000 categorias únicas de SKU. Sua importância reside na sua capacidade de desafiar detectores de objetos de última geração com aparências e proximidades de objetos diversas, tornando-o um recurso inestimável para pesquisadores e profissionais de visão computacional. Saiba mais sobre a estrutura e as aplicações do dataset em nossa seção Dataset SKU-110k.

Link to this sectionComo treino um modelo YOLO26 usando o dataset SKU-110k?#

Treinar um modelo YOLO26 no dataset SKU-110k é simples. Aqui está um exemplo para treinar um modelo YOLO26n por 100 épocas com um tamanho de imagem de 640:

Exemplo de Treinamento
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)

Para uma lista completa de argumentos disponíveis, consulta a página de Treino do modelo.

Link to this sectionQuais são os principais subconjuntos do dataset SKU-110k?#

O dataset SKU-110k é organizado em três subconjuntos principais:

  1. Conjunto de treinamento: Contém 8.219 imagens e anotações usadas para treinar modelos de detecção de objetos.
  2. Conjunto de validação: Consiste em 588 imagens e anotações usadas para a validação do modelo durante o treinamento.
  3. Conjunto de teste: Inclui 2.936 imagens projetadas para a avaliação final de modelos de detecção de objetos treinados.

Consulte a seção Estrutura do Dataset para mais detalhes.

Link to this sectionComo configuro o dataset SKU-110k para treinamento?#

A configuração do dataset SKU-110k é definida em um arquivo YAML, que inclui detalhes sobre os caminhos do dataset, classes e outras informações relevantes. O arquivo SKU-110K.yaml é mantido em SKU-110K.yaml. Por exemplo, você pode treinar um modelo usando esta configuração como mostrado em nossa seção Uso.

Link to this sectionQuais são os principais recursos do dataset SKU-110k no contexto de deep learning?#

O dataset SKU-110k apresenta imagens de prateleiras de lojas de todo o mundo, mostrando objetos densamente agrupados que impõem desafios significativos para detectores de objetos:

  • Mais de 110.000 categorias únicas de SKU
  • Aparências de objetos diversas
  • As anotações incluem caixas delimitadoras e rótulos de categoria de SKU

Esses recursos tornam o dataset SKU-110k particularmente valioso para treinar e avaliar modelos de deep learning em tarefas de detecção de objetos. Para mais detalhes, consulte a seção Recursos Principais.

Link to this sectionComo cito o dataset SKU-110k em minha pesquisa?#

Se você usar o dataset SKU-110k em seu trabalho de pesquisa ou desenvolvimento, cite o seguinte artigo:

Citação
@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}
}

Mais informações sobre o dataset podem ser encontradas na seção Citações e Agradecimentos.

Comentários