Saltar al contenido

Visión general de los conjuntos de datos

Ultralytics proporciona soporte para varios conjuntos de datos con el fin de facilitar tareas de visión por ordenador como la detección, la segmentación de instancias, la estimación de poses, la clasificación y el seguimiento multiobjeto. A continuación figura una lista de los principales conjuntos de datos de Ultralytics , seguida de un resumen de cada tarea de visión por ordenador y los respectivos conjuntos de datos.



Observa: Ultralytics Visión general de los conjuntos de datos

NUEVO 🚀 Ultralytics Explorador

Crea incrustaciones para tu conjunto de datos, busca imágenes similares, ejecuta consultas SQL, realiza búsquedas semánticas ¡e incluso busca utilizando lenguaje natural! Puedes empezar con nuestra aplicación GUI o crear la tuya propia utilizando la API. Más información aquí.

Ultralytics Captura de pantalla del Explorador

Conjuntos de datos de detección

La detección de objetos mediante cajas delimitadoras es una técnica de visión por ordenador que consiste en detectar y localizar objetos en una imagen dibujando una caja delimitadora alrededor de cada objeto.

  • Argoverse: Un conjunto de datos que contiene datos de seguimiento 3D y previsión de movimiento de entornos urbanos con ricas anotaciones.
  • COCO: Un conjunto de datos a gran escala diseñado para la detección, segmentación y subtitulación de objetos con más de 200.000 imágenes etiquetadas.
  • LVIS: Un conjunto de datos a gran escala de detección, segmentación y subtitulación de objetos con 1203 categorías de objetos.
  • COCO8: Contiene las 4 primeras imágenes de COCO train y COCO val, adecuadas para pruebas rápidas.
  • Trigo Global 2020: Un conjunto de datos de imágenes de cabezas de trigo recogidas en todo el mundo para tareas de detección y localización de objetos.
  • Objetos365: Un conjunto de datos a gran escala y de alta calidad para la detección de objetos, con 365 categorías de objetos y más de 600.000 imágenes anotadas.
  • OpenImagesV7: Un amplio conjunto de datos de Google con 1,7 millones de imágenes de entrenamiento y 42.000 imágenes de validación.
  • SKU-110K: Un conjunto de datos de detección de objetos densos en entornos comerciales con más de 11.000 imágenes y 1,7 millones de cuadros delimitadores.
  • VisDrone: Un conjunto de datos que contiene datos de detección de objetos y seguimiento multiobjeto a partir de imágenes capturadas por drones, con más de 10.000 imágenes y secuencias de vídeo.
  • VOC: El conjunto de datos Pascal Visual Object Classes (VOC) para la detección y segmentación de objetos, con 20 clases de objetos y más de 11.000 imágenes.
  • xVer: Un conjunto de datos para la detección de objetos en imágenes aéreas con 60 categorías de objetos y más de 1 millón de objetos anotados.
  • Roboflow 100: Una prueba comparativa de detección de objetos diversos con 100 conjuntos de datos que abarcan siete dominios de imágenes para la evaluación exhaustiva de modelos.
  • Tumor cerebral: Un conjunto de datos para detectar tumores cerebrales incluye imágenes de resonancia magnética o tomografía computarizada con detalles sobre la presencia, localización y características del tumor. Es vital para entrenar modelos de visión por ordenador que automaticen la identificación de tumores, ayudando al diagnóstico precoz y a la planificación del tratamiento.
  • Vida salvaje africana: Un conjunto de datos con imágenes de fauna africana, como búfalos, elefantes, rinocerontes y cebras, que ayuda a entrenar modelos de visión por ordenador. Esencial para identificar animales en diversos hábitats, sirve de apoyo a la investigación sobre la fauna salvaje.

Conjuntos de datos de segmentación de instancias

La segmentación de instancias es una técnica de visión por ordenador que consiste en identificar y localizar objetos en una imagen a nivel de píxel.

  • COCO: Un conjunto de datos a gran escala diseñado para tareas de detección, segmentación y subtitulación de objetos con más de 200.000 imágenes etiquetadas.
  • COCO8-seg: Un conjunto de datos más pequeño para tareas de segmentación de instancias, que contiene un subconjunto de 8 imágenes COCO con anotaciones de segmentación.
  • Crack-seg: Conjunto de datos específicamente diseñado para detectar grietas en carreteras y muros, aplicable tanto a tareas de detección de objetos como de segmentación.
  • Paquete-seg: Conjunto de datos adaptado para identificar paquetes en almacenes o entornos industriales, adecuado tanto para aplicaciones de detección de objetos como de segmentación.
  • Carparts-seg: Conjunto de datos creado específicamente para identificar piezas de vehículos, que satisface las necesidades de diseño, fabricación e investigación. Sirve tanto para tareas de detección de objetos como de segmentación.

Estimación de la pose

La estimación de la pose es una técnica utilizada para determinar la pose del objeto respecto a la cámara o al sistema de coordenadas mundial.

  • COCO: Un conjunto de datos a gran escala con anotaciones de la pose humana diseñado para tareas de estimación de la pose.
  • COCO8-pose: Un conjunto de datos más pequeño para tareas de estimación de la pose, que contiene un subconjunto de 8 imágenes COCO con anotaciones de la pose humana.
  • Tiger-pose: Un conjunto de datos compacto formado por 263 imágenes centradas en tigres, anotadas con 12 puntos clave por tigre para tareas de estimación de la pose.

Clasificación

La clasificación de imágenes es una tarea de visión por ordenador que consiste en clasificar una imagen en una o varias clases o categorías predefinidas en función de su contenido visual.

  • Caltech 101: Un conjunto de datos que contiene imágenes de 101 categorías de objetos para tareas de clasificación de imágenes.
  • Caltech 256: Una versión ampliada de Caltech 101 con 256 categorías de objetos e imágenes más desafiantes.
  • CIFAR-10: Un conjunto de datos de 60.000 imágenes en color de 32x32 en 10 clases, con 6.000 imágenes por clase.
  • CIFAR-100: Una versión ampliada de CIFAR-10 con 100 categorías de objetos y 600 imágenes por clase.
  • Moda-MNIST: Un conjunto de datos formado por 70.000 imágenes en escala de grises de 10 categorías de moda para tareas de clasificación de imágenes.
  • ImageNet: Un conjunto de datos a gran escala para la detección de objetos y la clasificación de imágenes con más de 14 millones de imágenes y 20.000 categorías.
  • ImageNet-10: Un subconjunto más pequeño de ImageNet con 10 categorías para una experimentación y unas pruebas más rápidas.
  • Imagenette: Un subconjunto más pequeño de ImageNet que contiene 10 clases fácilmente distinguibles para agilizar el entrenamiento y las pruebas.
  • Imagewoof: Un subconjunto más desafiante de ImageNet que contiene 10 categorías de razas de perros para tareas de clasificación de imágenes.
  • MNIST: Un conjunto de datos de 70.000 imágenes en escala de grises de dígitos manuscritos para tareas de clasificación de imágenes.

Cajas delimitadoras orientadas (OBB)

Las cajas delimitadoras orientadas (OBB, Oriented Bounding Boxes) son un método de visión por ordenador para detectar objetos angulosos en imágenes mediante cajas delimitadoras rotadas, que suele aplicarse a imágenes aéreas y de satélite.

  • DOTAv2: Un popular conjunto de datos de imágenes aéreas OBB con 1,7 millones de instancias y 11.268 imágenes.

Seguimiento multiobjeto

El seguimiento multiobjeto es una técnica de visión por ordenador que consiste en detectar y seguir varios objetos a lo largo del tiempo en una secuencia de vídeo.

  • Argoverse: Un conjunto de datos que contiene datos de seguimiento 3D y previsión de movimiento de entornos urbanos con ricas anotaciones para tareas de seguimiento multiobjeto.
  • VisDrone: Un conjunto de datos que contiene datos de detección de objetos y seguimiento multiobjeto a partir de imágenes capturadas por drones, con más de 10.000 imágenes y secuencias de vídeo.

Aportar nuevos conjuntos de datos

Contribuir con un nuevo conjunto de datos implica varios pasos para garantizar que se alinea bien con la infraestructura existente. A continuación se indican los pasos necesarios:

Pasos para aportar un nuevo conjunto de datos

  1. Reunir imágenes: Reúne las imágenes que pertenecen al conjunto de datos. Podrían recopilarse de diversas fuentes, como bases de datos públicas o tu propia colección.

  2. Anotar imágenes: Anota estas imágenes con cuadros delimitadores, segmentos o puntos clave, según la tarea.

  3. Exportar anotaciones: Convierte estas anotaciones en YOLO *.txt que admite Ultralytics .

  4. Organizar el conjunto de datos: Organiza tu conjunto de datos en la estructura de carpetas correcta. Deberías tener train/ y val/ directorios de nivel superior, y dentro de cada uno, un images/ y labels/ subdirectorio.

    dataset/
    ├── train/
    │   ├── images/
    │   └── labels/
    └── val/
        ├── images/
        └── labels/
    
  5. Crea una data.yaml Archivo: En el directorio raíz de tu conjunto de datos, crea un archivo data.yaml que describe el conjunto de datos, las clases y otra información necesaria.

  6. Optimizar imágenes (Opcional): Si quieres reducir el tamaño del conjunto de datos para un procesamiento más eficiente, puedes optimizar las imágenes utilizando el código que aparece a continuación. No es obligatorio, pero se recomienda para reducir el tamaño del conjunto de datos y aumentar la velocidad de descarga.

  7. Comprimir conjunto de datos: Comprime toda la carpeta del conjunto de datos en un archivo zip.

  8. Documentación y relaciones públicas: Crea una página de documentación que describa tu conjunto de datos y cómo encaja en el marco existente. Después, envía una Solicitud de Extracción (PR). Consulta Ultralytics Directrices de contribución para obtener más detalles sobre cómo enviar una PR.

Código de ejemplo para optimizar y comprimir un conjunto de datos

Optimizar y comprimir un conjunto de datos

from pathlib import Path
from ultralytics.data.utils import compress_one_image
from ultralytics.utils.downloads import zip_directory

# Define dataset directory
path = Path('path/to/dataset')

# Optimize images in dataset (optional)
for f in path.rglob('*.jpg'):
    compress_one_image(f)

# Zip dataset into 'path/to/dataset.zip'
zip_directory(path)

Siguiendo estos pasos, puedes contribuir con un nuevo conjunto de datos que se integre bien en la estructura existente de Ultralytics.



Creado 2023-11-12, Actualizado 2024-04-02
Autores: Burhan-Q (1), Laughing-q (1), RizwanMunawar (2), glenn-jocher (6), abirami-vina (1), AyushExel (2)

Comentarios