Descripción general de conjuntos de datos

Ultralytics proporciona soporte para varios conjuntos de datos para facilitar tareas de visión artificial como detección, segmentación de instancias, segmentación semántica, estimación de poses, clasificación y seguimiento de múltiples objetos. A continuación, encontrarás una lista de los principales conjuntos de datos de Ultralytics, seguida de un resumen de cada tarea de visión artificial y sus respectivos conjuntos de datos.



Watch: Ultralytics Datasets Overview

Detección de objetos

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

  • African-wildlife: Un conjunto de datos con imágenes de fauna africana, incluyendo búfalos, elefantes, rinocerontes y cebras.
  • Argoverse: Un conjunto de datos que contiene seguimiento 3D y datos de previsión de movimiento de entornos urbanos con anotaciones detalladas.
  • Brain-tumor: Un conjunto de datos para detectar tumores cerebrales que incluye imágenes de resonancia magnética o tomografía computarizada con detalles sobre la presencia, ubicación y características del tumor.
  • COCO: Common Objects in Context (COCO) es un conjunto de datos a gran escala para detección de objetos, segmentación y descripción de imágenes con 80 categorías de objetos.
  • COCO8: Un subconjunto más pequeño de las primeras 4 imágenes de COCO train y COCO val, adecuado para pruebas rápidas.
  • COCO8-Grayscale: Una versión en escala de grises de COCO8 creada al convertir de RGB a escala de grises, útil para la evaluación de modelos de un solo canal.
  • COCO8-Multispectral: Una versión multiespectral de 10 canales de COCO8 creada interpolando longitudes de onda RGB, útil para la evaluación de modelos con conciencia espectral.
  • COCO128: Un subconjunto más pequeño de las primeras 128 imágenes de COCO train y COCO val, adecuado para pruebas.
  • Construction-PPE: Un conjunto de datos de imágenes de obras de construcción anotadas con equipo de seguridad clave como cascos, chalecos, guantes, botas y gafas, junto con etiquetas para equipo faltante, apoyando el desarrollo de modelos de IA para el cumplimiento y protección del trabajador.
  • Global Wheat 2020: Un conjunto de datos que contiene imágenes de espigas de trigo para el Global Wheat Challenge 2020.
  • HomeObjects-3K: Un conjunto de datos de escenas interiores anotadas que presenta 12 artículos domésticos comunes, ideal para desarrollar y probar modelos de visión artificial en sistemas de hogar inteligente, robótica y realidad aumentada.
  • KITTI Nuevo: Un conjunto de datos de conducción autónoma bien conocido que presenta entradas de estéreo, LiDAR y GPS/IMU, utilizado para detección de objetos 2D en diversas escenas de carretera.
  • LVIS: Un conjunto de datos a gran escala para detección de objetos, segmentación y descripción de imágenes con 1203 categorías de objetos.
  • Medical-pills: Un conjunto de datos que contiene imágenes etiquetadas de pastillas médicas, diseñado para ayudar en tareas como control de calidad farmacéutico, clasificación y aseguramiento del cumplimiento de estándares industriales.
  • Objects365: Un conjunto de datos de alta calidad a gran escala para detección de objetos con 365 categorías de objetos y más de 600K imágenes anotadas.
  • OpenImagesV7: Un conjunto de datos integral de Google con 1.7M de imágenes de entrenamiento y 42k imágenes de validación.
  • RF100: Un punto de referencia diverso de detección de objetos con 100 conjuntos de datos que abarcan siete dominios de imágenes para una evaluación integral de modelos.
  • Signature: Un conjunto de datos con imágenes de varios documentos con firmas anotadas, que apoya la investigación en verificación de documentos y detección de fraude.
  • SKU-110K: Un conjunto de datos que presenta detección de objetos densos en entornos minoristas con más de 11K imágenes y 1.7 millones de cajas delimitadoras.
  • VisDrone: Un conjunto de datos que contiene datos de detección de objetos y seguimiento de múltiples objetos a partir de imágenes capturadas por drones con más de 10K imágenes y secuencias de video.
  • VOC: El conjunto de datos Pascal Visual Object Classes (VOC) para detección y segmentación de objetos con 20 clases de objetos y más de 11K imágenes.
  • xView: Un conjunto de datos para 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.

Segmentación de instancias

La segmentación de instancias es una técnica de visión artificial que consiste en identificar y localizar objetos en una imagen a nivel de píxel. A diferencia de la segmentación semántica, que solo clasifica cada píxel, la segmentación de instancias distingue entre diferentes instancias de la misma clase.

  • Carparts-seg: Conjunto de datos creado específicamente para identificar partes de vehículos, adaptado a necesidades de diseño, fabricación e investigación. Sirve tanto para tareas de detección de objetos como de segmentación.
  • COCO: Un conjunto de datos a gran escala diseñado para tareas de detección de objetos, segmentación y descripción de imágenes con más de 200K 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 de COCO con anotaciones de segmentación.
  • COCO128-seg: Un conjunto de datos más pequeño para tareas de segmentación de instancias, que contiene un subconjunto de 128 imágenes de COCO con anotaciones de segmentación.
  • Crack-seg: Conjunto de datos diseñado específicamente para detectar grietas en carreteras y paredes, aplicable tanto para tareas de detección de objetos como de segmentación.
  • Package-seg: Conjunto de datos a medida para identificar paquetes en almacenes o entornos industriales, adecuado para aplicaciones tanto de detección de objetos como de segmentación.

Segmentación semántica

La segmentación semántica asigna una etiqueta de clase a cada píxel en una imagen, produciendo mapas de escena densos para aplicaciones como conducción autónoma, análisis de escenas y mapeo de cobertura terrestre.

  • Cityscapes: Conjunto de datos de segmentación semántica de escenas de calles urbanas con 19 clases de entrenamiento.
  • Cityscapes8: Un subconjunto compacto de 8 imágenes de Cityscapes para comprobaciones rápidas de tuberías de segmentación semántica.
  • ADE20K: Conjunto de datos de análisis de escenas con 150 clases semánticas.

Estimación de poses

La estimación de poses es una técnica utilizada para determinar la pose del objeto en relación con la cámara o el sistema de coordenadas del mundo. Esto implica identificar puntos clave o articulaciones en objetos, particularmente humanos o animales.

  • COCO: Un conjunto de datos a gran escala con anotaciones de poses humanas diseñado para tareas de estimación de poses.
  • COCO8-pose: Un conjunto de datos más pequeño para tareas de estimación de poses, que contiene un subconjunto de 8 imágenes de COCO con anotaciones de poses humanas.
  • Dog-pose: Un conjunto de datos integral que presenta aproximadamente 6,000 imágenes centradas en perros, anotadas con 24 puntos clave por perro, adaptado para tareas de estimación de poses.
  • Hand-Keypoints: Un conjunto de datos conciso que presenta más de 26,000 imágenes centradas en manos humanas, anotadas con 21 puntos clave por mano, diseñado para tareas de estimación de poses.
  • Tiger-pose: Un conjunto de datos compacto que consta de 263 imágenes centradas en tigres, anotadas con 12 puntos clave por tigre para tareas de estimación de poses.

Clasificación

La clasificación de imágenes es una tarea de visión artificial que consiste en categorizar una imagen en una o más clases o categorías predefinidas según 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 extendida de Caltech 101 con 256 categorías de objetos e imágenes más desafiantes.
  • CIFAR-10: Un conjunto de datos de 60K imágenes en color de 32x32 en 10 clases, con 6K imágenes por clase.
  • CIFAR-100: Una versión extendida de CIFAR-10 con 100 categorías de objetos y 600 imágenes por clase.
  • Fashion-MNIST: Un conjunto de datos que consiste en 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 detección de objetos y 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 experimentación y pruebas más rápidas.
  • Imagenette: Un subconjunto más pequeño de ImageNet que contiene 10 clases fácilmente distinguibles para un entrenamiento y pruebas más rápidos.
  • 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 escritos a mano para tareas de clasificación de imágenes.
  • MNIST160: Las primeras 8 imágenes de cada categoría MNIST del conjunto de datos MNIST. El conjunto de datos contiene 160 imágenes en total.

Cajas delimitadoras orientadas (OBB)

Las cajas delimitadoras orientadas (OBB) son un método en visión artificial para detectar objetos inclinados en imágenes usando cajas delimitadoras rotadas, a menudo aplicado a imágenes aéreas y satelitales. A diferencia de las cajas delimitadoras tradicionales, las OBB pueden ajustarse mejor a objetos en diversas orientaciones.

  • DOTA-v2: Un popular conjunto de datos de imágenes aéreas OBB con 1.7 millones de instancias y 11,268 imágenes.
  • DOTA8: Un subconjunto más pequeño de las primeras 8 imágenes del conjunto dividido DOTAv1, 4 para entrenamiento y 4 para validación, adecuado para pruebas rápidas.
  • DOTA128: Un subconjunto de 128 imágenes del conjunto de datos DOTA con 128 imágenes para entrenamiento y validación, proporcionando un buen equilibrio entre tamaño y diversidad para probar modelos OBB.

Seguimiento de múltiples objetos

El seguimiento de múltiples objetos es una técnica de visión artificial que consiste en detectar y seguir múltiples objetos a lo largo del tiempo en una secuencia de video. Esta tarea extiende la detección de objetos manteniendo identidades consistentes de los objetos a través de los fotogramas.

  • Argoverse: Un conjunto de datos que contiene seguimiento 3D y datos de previsión de movimiento de entornos urbanos con anotaciones detalladas para tareas de seguimiento de múltiples objetos.
  • VisDrone: Un conjunto de datos que contiene datos de detección de objetos y seguimiento de múltiples objetos a partir de imágenes capturadas por drones con más de 10K imágenes y secuencias de video.

Contribuir con nuevos conjuntos de datos

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



Watch: How to Contribute to Ultralytics Datasets

Pasos para contribuir con un nuevo conjunto de datos

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

  2. Anota imágenes: Anota estas imágenes con cajas delimitadoras, segmentos o puntos clave, dependiendo de la tarea.

  3. Exporta anotaciones: Convierte estas anotaciones al formato de archivo *.txt de YOLO que Ultralytics soporta.

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

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

  6. Optimiza las imágenes (opcional): Si deseas reducir el tamaño del conjunto de datos para un procesamiento más eficiente, puedes optimizar las imágenes utilizando el código a continuación. Esto no es obligatorio, pero se recomienda para tamaños de conjunto de datos más pequeños y velocidades de descarga más rápidas.

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

  8. Documenta y haz un PR: Crea una página de documentación que describa tu conjunto de datos y cómo encaja en el marco existente. Después de eso, envía una Pull Request (PR). Consulta las Directrices de contribución de Ultralytics para obtener más detalles sobre cómo enviar una PR.

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

Optimiza y comprime 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)

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

Preguntas frecuentes

¿Qué conjuntos de datos admite Ultralytics para la detección de objetos?

Ultralytics admite una amplia variedad de conjuntos de datos para detección de objetos, incluyendo:

  • COCO: Un conjunto de datos a gran escala para detección de objetos, segmentación y descripción de imágenes con 80 categorías de objetos.
  • LVIS: Un conjunto de datos extenso con 1203 categorías de objetos, diseñado para una detección y segmentación de objetos más detallada.
  • Argoverse: Un conjunto de datos que contiene seguimiento 3D y datos de previsión de movimiento de entornos urbanos con anotaciones detalladas.
  • VisDrone: Un conjunto de datos con datos de detección de objetos y seguimiento de múltiples objetos a partir de imágenes capturadas por drones.
  • SKU-110K: Presenta detección de objetos densos en entornos minoristas con más de 11K imágenes.

Estos conjuntos de datos facilitan el entrenamiento de modelos sólidos de Ultralytics YOLO para diversas aplicaciones de detección de objetos.

¿Cómo contribuyo con un nuevo conjunto de datos a Ultralytics?

Contribuir con un nuevo conjunto de datos implica varios pasos:

  1. Recopila imágenes: Reúne imágenes de bases de datos públicas o colecciones personales.
  2. Anota imágenes: Aplica cajas delimitadoras, segmentos o puntos clave, dependiendo de la tarea.
  3. Exporta anotaciones: Convierte las anotaciones al formato *.txt de YOLO.
  4. Organiza el conjunto de datos: Usa la estructura de carpetas con directorios train/ y val/, cada uno conteniendo subdirectorios images/ y labels/.
  5. Crea un archivo data.yaml: Incluye descripciones del conjunto de datos, clases y otra información relevante.
  6. Optimiza las imágenes (opcional): Reduce el tamaño del conjunto de datos para mayor eficiencia.
  7. Comprime el conjunto de datos: Comprime el conjunto de datos en un archivo zip.
  8. Documenta y haz un PR: Describe tu conjunto de datos y envía una Pull Request siguiendo las Directrices de contribución de Ultralytics.

Visita Contribuir con nuevos conjuntos de datos para obtener una guía completa.

¿Por qué debería usar la Plataforma Ultralytics para mi conjunto de datos?

Ultralytics Platform ofrece funciones potentes para la gestión y el análisis de datasets, incluyendo:

  • Gestión de datasets perfecta: Sube, organiza y gestiona tus datasets en un solo lugar.
  • Integración inmediata para entrenamiento: Utiliza los datasets subidos directamente para el entrenamiento de modelos sin configuración adicional.
  • Herramientas de visualización: Explora y visualiza las imágenes y anotaciones de tu dataset.
  • Análisis de datasets: Obtén información sobre la distribución y las características de tu dataset.

La plataforma agiliza la transición de la gestión de datasets al entrenamiento de modelos, haciendo que todo el proceso sea más eficiente. Aprende más sobre Ultralytics Platform Datasets.

¿Cuáles son las características únicas de los modelos Ultralytics YOLO para visión artificial?

Los modelos Ultralytics YOLO proporcionan varias características únicas para tareas de visión artificial:

  • Rendimiento en tiempo real: Capacidades de inferencia y entrenamiento de alta velocidad para aplicaciones sensibles al tiempo.
  • Versatilidad: Soporte para tareas de detección, segmentación de instancias, segmentación semántica, clasificación y estimación de poses en un marco unificado.
  • Modelos preentrenados: Acceso a modelos preentrenados de alto rendimiento para diversas aplicaciones, lo que reduce el tiempo de entrenamiento.
  • Amplio soporte de la comunidad: Comunidad activa y documentación exhaustiva para la resolución de problemas y el desarrollo.
  • Fácil integración: API sencilla para integrar con proyectos y flujos de trabajo existentes.

Descubre más sobre los modelos YOLO en la página de Ultralytics Models.

¿Cómo puedo optimizar y comprimir un dataset usando herramientas de Ultralytics?

Para optimizar y comprimir un dataset usando herramientas de Ultralytics, sigue este código de ejemplo:

Optimiza y comprime 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)

Este proceso ayuda a reducir el tamaño del dataset para un almacenamiento más eficiente y velocidades de descarga más rápidas. Aprende más sobre cómo Optimizar y comprimir un dataset.

Comentarios