Conjunto de dados SKU-110k
O conjunto de dados SKU-110k é uma coleção de imagens de prateleiras de retalho densamente embaladas, concebidas para apoiar a investigação em tarefas de deteção de objectos. Desenvolvido por Eran Goldman et al., o conjunto de dados contém mais de 110.000 categorias únicas de unidades de manutenção de loja (SKU) com objectos densamente embalados, muitas vezes com aspeto semelhante ou mesmo idêntico, posicionados nas proximidades.
Observa: Como treinar o YOLOv10 no conjunto de dados SKU-110k utilizando Ultralytics | Conjunto de dados de retalho
Características principais
- O SKU-110k contém imagens de prateleiras de lojas de todo o mundo, com objectos densamente embalados que representam desafios para os detectores de objectos mais avançados.
- O conjunto de dados inclui mais de 110.000 categorias SKU únicas, fornecendo uma gama diversificada de aparências de objectos.
- As anotações incluem caixas delimitadoras para objectos e etiquetas de categorias SKU.
Estrutura do conjunto de dados
O conjunto de dados SKU-110k está organizado em três subconjuntos principais:
- Conjunto de treino: Este subconjunto contém imagens e anotações utilizadas para treinar modelos de deteção de objectos.
- Conjunto de validação: Este subconjunto é constituído por imagens e anotações utilizadas para validação do modelo durante o treino.
- Conjunto de teste: Este subconjunto foi concebido para a avaliação final dos modelos de deteção de objectos treinados.
Aplicações
O conjunto de dados SKU-110k é amplamente utilizado para treinar e avaliar modelos de aprendizagem profunda em tarefas de deteção de objectos, especialmente em cenas densamente compactadas, como os expositores de prateleiras de retalho. O conjunto de dados diversificado de categorias SKU e arranjos de objectos densamente embalados tornam-no um recurso valioso para investigadores e profissionais no campo da visão computacional.
Conjunto de dados YAML
Um ficheiro YAML (Yet Another Markup Language) é utilizado para definir a configuração do conjunto de dados. Contém informações sobre os caminhos do conjunto de dados, classes e outras informações relevantes. Para o caso do conjunto de dados SKU-110K, o ficheiro 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 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
Utilização
Para treinar um modelo YOLOv8n no conjunto de dados SKU-110K para 100 épocas com um tamanho de imagem de 640, podes utilizar os seguintes snippets de código. Para obter uma lista abrangente dos argumentos disponíveis, consulta a página Treinamento do modelo.
Exemplo de comboio
Dados de amostra e anotações
O conjunto de dados SKU-110k contém um conjunto diversificado de imagens de prateleiras de retalho com objectos densamente embalados, fornecendo um contexto rico para tarefas de deteção de objectos. Aqui estão alguns exemplos de dados do conjunto de dados, juntamente com as anotações correspondentes:
- Imagem de uma prateleira de retalho densamente embalada: Esta imagem demonstra um exemplo de objectos densamente embalados numa prateleira de retalho. Os objectos são anotados com caixas delimitadoras e etiquetas de categorias SKU.
O exemplo mostra a variedade e complexidade dos dados no conjunto de dados SKU-110k e realça a importância de dados de alta qualidade para tarefas de deteção de objectos.
Citações e agradecimentos
Se utilizares o conjunto de dados SKU-110k no teu trabalho de investigação ou desenvolvimento, cita o seguinte documento:
Gostaríamos de agradecer a Eran Goldman et al. por criar e manter o conjunto de dados SKU-110k como um recurso valioso para a comunidade de pesquisa em visão computacional. Para mais informações sobre o conjunto de dados SKU-110k e os seus criadores, visita o repositório GitHub do conjunto de dados SKU-110k.
FAQ
O que é o conjunto de dados SKU-110k e porque é que é importante para a deteção de objectos?
O conjunto de dados SKU-110k consiste em imagens de prateleiras de retalho densamente compactadas, concebidas para ajudar a investigação em tarefas de deteção de objectos. Desenvolvido por Eran Goldman et al., inclui mais de 110.000 categorias SKU únicas. A sua importância reside na sua capacidade de desafiar os detectores de objectos mais avançados com diversas aparências de objectos e proximidade, tornando-o um recurso inestimável para investigadores e profissionais da visão computacional. Sabe mais sobre a estrutura e as aplicações do conjunto de dados na nossa secção Conjunto de dados SKU-110k.
Como é que treino um modelo YOLOv8 utilizando o conjunto de dados SKU-110k?
Treinar um modelo YOLOv8 no conjunto de dados SKU-110k é simples. Eis um exemplo para treinar um modelo YOLOv8n para 100 épocas com um tamanho de imagem de 640:
Exemplo de comboio
Para obter uma lista completa dos argumentos disponíveis, consulta a página de formação do modelo.
Quais são os principais subconjuntos do conjunto de dados SKU-110k?
O conjunto de dados SKU-110k está organizado em três subconjuntos principais:
- Conjunto de treino: Contém imagens e anotações utilizadas para treinar modelos de deteção de objectos.
- Conjunto de validação: Consiste em imagens e anotações utilizadas para validação do modelo durante o treino.
- Conjunto de teste: Concebido para a avaliação final dos modelos de deteção de objectos treinados.
Para mais informações, consulta a secção Estrutura do conjunto de dados.
Como é que configuro o conjunto de dados SKU-110k para treino?
A configuração do conjunto de dados SKU-110k é definida em um arquivo YAML, que inclui detalhes sobre os caminhos, classes e outras informações relevantes do conjunto de dados. O ficheiro SKU-110K.yaml
é mantido em SKU-110K.yaml. Por exemplo, podes treinar um modelo usando esta configuração, como mostrado na nossa Utilização secção.
Quais são as principais características do conjunto de dados SKU-110k no contexto da aprendizagem profunda?
O conjunto de dados SKU-110k apresenta imagens de prateleiras de lojas de todo o mundo, mostrando objectos densamente compactados que representam desafios significativos para os detectores de objectos:
- Mais de 110.000 categorias SKU exclusivas
- Aparência diversificada dos objectos
- As anotações incluem caixas delimitadoras e etiquetas de categoria SKU
Estas características tornam o conjunto de dados SKU-110k particularmente valioso para treinar e avaliar modelos de aprendizagem profunda em tarefas de deteção de objectos. Para obter mais detalhes, consulta a secção Características principais.
Como é que cito o conjunto de dados SKU-110k na minha investigação?
Se utilizares o conjunto de dados SKU-110k no teu trabalho de investigação ou desenvolvimento, cita o seguinte documento:
Para mais informações sobre o conjunto de dados, consulta a secção Citações e Agradecimentos.