Descripción general de los conjuntos de datos#
Ultralytics ofrece compatibilidad con diversos conjuntos de datos para facilitar tareas de visión artificial como la detección, la segmentación de instancias, la segmentación semántica, la estimación de profundidad, la clasificación, la estimación de pose y las cajas delimitadoras orientadas (OBB). A continuación, se muestra una lista de los principales conjuntos de datos de Ultralytics, seguida de un resumen de cada tarea de visión artificial y sus conjuntos de datos correspondientes. El modo de seguimiento funciona con modelos de detección, segmentación, pose y OBB sin necesidad de entrenamiento específico para el rastreador; consulta los conjuntos de datos de seguimiento.
Ver: Descripción general de los conjuntos de datos de Ultralytics
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 objeto.
- African-wildlife: conjunto de datos con imágenes de fauna africana, como búfalos, elefantes, rinocerontes y cebras.
- Argoverse: conjunto de datos con información de seguimiento 3D y predicción de movimiento en entornos urbanos, acompañado de anotaciones detalladas.
- Brain-tumor: conjunto de datos para detectar tumores cerebrales que incluye imágenes de resonancia magnética o tomografía computarizada con información sobre la presencia, la ubicación y las características de los tumores.
- COCO: Objetos comunes en contexto (COCO) es un conjunto de datos a gran escala para la detección y segmentación de objetos y la generación de descripciones, con 80 categorías de objetos.
- COCO8: subconjunto reducido de las 8 primeras imágenes de COCO train2017, con 4 para entrenamiento y 4 para validación, adecuado para pruebas rápidas.
- COCO8-Grayscale: versión en escala de grises de COCO8, creada al convertir RGB a escala de grises y útil para evaluar modelos de un solo canal.
- COCO8-Multispectral: versión multiespectral de 10 canales de COCO8, creada mediante interpolación de las longitudes de onda RGB y útil para evaluar modelos con capacidad espectral.
- COCO12-Formats: conjunto de datos de prueba con 12 imágenes que abarca los 12 formatos de imagen compatibles (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) para validar flujos de carga de imágenes.
- COCO128: subconjunto reducido de las 128 primeras imágenes de COCO train2017, adecuado para pruebas.
- Construction-PPE: conjunto de datos de imágenes de obras de construcción anotadas con equipos de seguridad esenciales, como cascos, chalecos, guantes, botas y gafas, además de etiquetas para el equipo que falta; facilita el desarrollo de modelos de IA para verificar el cumplimiento y proteger a los trabajadores.
- Global Wheat 2020: conjunto de datos con imágenes de espigas de trigo para el Global Wheat Challenge 2020.
- HomeObjects-3K: conjunto de datos de escenas interiores anotadas con 12 objetos domésticos habituales, ideal para desarrollar y probar modelos de visión artificial en sistemas de hogar inteligente, robótica y realidad aumentada.
- KITTI: conocido conjunto de datos de conducción autónoma que incluye entradas estéreo, LiDAR y GPS/IMU, utilizado para la detección 2D de objetos en distintos escenarios viales.
- LVIS: conjunto de datos a gran escala para la detección de objetos y la segmentación de instancias, con 1.203 categorías de objetos.
- Medical-pills: conjunto de datos con imágenes etiquetadas de pastillas, diseñado para facilitar tareas como el control de calidad farmacéutico, la clasificación y la verificación del cumplimiento de las normas del sector.
- Objects365: conjunto de datos de alta calidad y a gran escala para la detección de objetos, con 365 categorías de objetos y más de 1,7 millones de imágenes anotadas.
- OpenImagesV7: completo conjunto de datos de Google con 1,7 millones de imágenes de entrenamiento y 42.000 imágenes de validación.
- RF100: diverso benchmark de detección de objetos con 100 conjuntos de datos que abarcan siete dominios de imágenes para evaluar modelos de forma exhaustiva.
- Signature: conjunto de datos con imágenes de varios documentos y firmas anotadas, que facilita la investigación sobre verificación documental y detección de fraude.
- SKU-110K: conjunto de datos de detección densa de objetos en entornos comerciales, con más de 11.000 imágenes y 1,7 millones de cajas delimitadoras.
- TT100K: conjunto de datos de señales de tráfico Tsinghua-Tencent 100K, con 16.817 imágenes de vistas de calles distribuidas en 221 categorías de señales.
- VisDrone: conjunto de datos de detección de objetos y seguimiento de múltiples objetos en imágenes capturadas con drones, con más de 10.000 imágenes y secuencias de vídeo.
- VOC: conjunto de datos Pascal de clases de objetos visuales (VOC) para detección y segmentación de objetos, con 20 clases de objetos y más de 21.000 imágenes.
- xView: conjunto de datos para la detección de objetos en imágenes aéreas, con 60 categorías de objetos y más de un 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 distintas instancias de una misma clase.
- Carparts-seg: conjunto de datos diseñado específicamente para identificar piezas de vehículos y satisfacer necesidades de diseño, fabricación e investigación. Sirve tanto para tareas de detección de objetos como de segmentación.
- COCO: conjunto de datos a gran escala diseñado para tareas de detección y segmentación de objetos y generación de descripciones, con más de 200.000 imágenes etiquetadas.
- COCO8-seg: conjunto de datos reducido para tareas de segmentación de instancias, que contiene un subconjunto de 8 imágenes de COCO con anotaciones de segmentación.
- COCO128-seg: conjunto de datos reducido 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 creado específicamente para detectar grietas en carreteras y paredes, aplicable tanto a tareas de detección de objetos como de segmentación.
- Package-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.
Segmentación semántica#
La segmentación semántica asigna una etiqueta de clase a cada píxel de una imagen y genera mapas densos de escenas para aplicaciones como la conducción autónoma, la interpretación de escenas y la cartografía de la cubierta terrestre.
- Cityscapes: conjunto de datos de segmentación semántica de escenas urbanas con 19 clases de entrenamiento.
- Cityscapes8: subconjunto compacto de 8 imágenes de Cityscapes para comprobar rápidamente flujos de segmentación semántica.
- ADE20K: conjunto de datos de interpretación de escenas con 150 clases semánticas.
Estimación de profundidad#
La estimación monocular de profundidad predice un mapa de profundidad en metros para cada píxel a partir de una sola imagen RGB y facilita la reconstrucción de escenas 3D, la navegación robótica y las aplicaciones de RA/RV.
- Depth8: subconjunto compacto de 8 imágenes de SUN RGB-D para comprobar rápidamente flujos de trabajo.
- ARKitScenes: escenas interiores reales RGB-D capturadas con LiDAR de Apple ARKit; es la mayor fuente de datos reales de entrenamiento.
- SUN RGB-D: escenas interiores reales capturadas con cuatro sensores RGB-D diferentes.
- DIODE: datos de profundidad densos de interiores y exteriores, obtenidos con un escáner láser topográfico.
- Hypersim: escenas interiores sintéticas fotorrealistas con profundidad perfecta en cada píxel.
- TartanAir: entornos sintéticos de AirSim con profundidad densa hasta ~80 m.
- Virtual KITTI 2: recreación sintética de escenas de conducción de KITTI con profundidad densa.
- KITTI: escenas reales de conducción autónoma en exteriores con profundidad LiDAR de Velodyne; también es el benchmark KITTI Eigen.
- ImageNet (pseudo-labeled): imágenes de ImageNet-1K con pseudoetiquetas de Depth Anything 3 para destilación.
- NYU Depth V2: benchmark estándar de profundidad en interiores capturado con Microsoft Kinect v1.
- ETH3D: benchmark de alta precisión con escáner láser para interiores y exteriores.
- Make3D: benchmark de exteriores de un campus fuera de distribución.
- iBims-1: benchmark de alta calidad para interiores, centrado en los bordes de profundidad y las superficies planas.
Clasificación#
La clasificación de imágenes es una tarea de visión artificial que consiste en categorizar una imagen en una o varias clases o categorías predefinidas según su contenido visual.
- Caltech 101: conjunto de datos con imágenes de 101 categorías de objetos para tareas de clasificación de imágenes.
- Caltech 256: versión ampliada de Caltech 101, con 256 categorías de objetos e imágenes más complejas.
- CIFAR-10: conjunto de datos de 60.000 imágenes en color de 32x32 píxeles, distribuidas en 10 clases, con 6.000 imágenes por clase.
- CIFAR-100: versión ampliada de CIFAR-10, con 100 categorías de objetos y 600 imágenes por clase.
- Fashion-MNIST: conjunto de datos de 70.000 imágenes en escala de grises de 10 categorías de moda para tareas de clasificación de imágenes.
- ImageNet: 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: subconjunto reducido de ImageNet con 10 categorías que permite experimentar y probar más rápido.
- Imagenette: subconjunto reducido de ImageNet que contiene 10 clases fáciles de distinguir para agilizar el entrenamiento y las pruebas.
- Imagewoof: subconjunto más complejo de ImageNet que contiene 10 categorías de razas de perros para tareas de clasificación de imágenes.
- MNIST: 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 8 primeras imágenes de cada dígito (0-9) de las particiones de entrenamiento y prueba de MNIST. El conjunto de datos contiene 160 imágenes en total.
Estimación de pose#
La estimación de pose es una técnica que permite determinar la pose de un objeto con respecto a la cámara o al sistema de coordenadas del mundo. Consiste en identificar puntos clave o articulaciones de los objetos, especialmente de personas o animales.
- COCO: conjunto de datos a gran escala con anotaciones de poses humanas, diseñado para tareas de estimación de pose.
- COCO8-pose: conjunto de datos reducido para tareas de estimación de pose, que contiene un subconjunto de 8 imágenes de COCO con anotaciones de poses humanas.
- Dog-pose: conjunto de datos completo con aproximadamente 8.500 imágenes centradas en perros, anotadas con 24 puntos clave por perro y adaptadas a tareas de estimación de pose.
- Hand-Keypoints: conjunto de datos compacto con más de 26.000 imágenes centradas en manos humanas, anotadas con 21 puntos clave por mano y diseñado para tareas de estimación de pose.
- Tiger-pose: conjunto de datos compacto de 263 imágenes centradas en tigres, anotadas con 12 puntos clave por tigre para tareas de estimación de pose.
Cajas delimitadoras orientadas (OBB)#
Las cajas delimitadoras orientadas (OBB) son un método de visión artificial para detectar objetos inclinados en imágenes mediante cajas delimitadoras rotadas, que suele aplicarse a imágenes aéreas y satelitales. A diferencia de las cajas delimitadoras tradicionales, OBB se adapta mejor a objetos con distintas orientaciones.
- DOTA-v2: popular conjunto de datos OBB de imágenes aéreas, con 1,7 millones de instancias y 11.268 imágenes.
- DOTA8: subconjunto reducido de las 8 primeras imágenes del conjunto de particiones DOTAv1, con 4 para entrenamiento y 4 para validación, adecuado para pruebas rápidas.
- DOTA128: subconjunto de DOTA con 128 imágenes para entrenamiento y validación, que ofrece un buen equilibrio entre tamaño y diversidad para probar modelos OBB.
Contribuir con nuevos conjuntos de datos#
Para contribuir con un nuevo conjunto de datos, hay que seguir varios pasos que garanticen su correcta integración con la infraestructura existente. A continuación, se indican los pasos necesarios:
Ver: Cómo contribuir a los conjuntos de datos de Ultralytics
Pasos para contribuir con un nuevo conjunto de datos#
-
Recopila imágenes: reúne las imágenes que formarán parte del conjunto de datos. Puedes obtenerlas de distintas fuentes, como bases de datos públicas o tu propia colección.
-
Anota las imágenes: anota estas imágenes con cajas delimitadoras, segmentos o puntos clave, según la tarea.
-
Exporta las anotaciones: convierte estas anotaciones al formato de archivo YOLO
*.txt, compatible con Ultralytics. -
Organiza el conjunto de datos: distribuye el conjunto de datos con la estructura de carpetas correcta. Debe haber directorios de nivel superior
images/ylabels/, cada uno con un subdirectoriotrain/y otroval/.dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/ -
Crea un archivo
data.yaml: crea en el directorio raíz del conjunto de datos un archivodata.yamlque describa el conjunto de datos, las clases y otra información necesaria. -
Optimiza las imágenes (opcional): si quieres reducir el tamaño del conjunto de datos para procesarlo de forma más eficiente, puedes optimizar las imágenes con el código siguiente. No es obligatorio, pero se recomienda para reducir el tamaño de los conjuntos de datos y acelerar las descargas.
-
Comprimir el conjunto de datos: comprime toda la carpeta del conjunto de datos en un archivo zip.
-
Documentación y PR: crea una página de documentación que describa tu conjunto de datos y cómo encaja en el marco de trabajo existente. Después, envía una solicitud de incorporación de cambios (PR). Consulta las Directrices de contribución de Ultralytics para obtener más información sobre cómo enviar una PR.
Código de ejemplo para 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
# Definir el directorio del conjunto de datos
path = Path("path/to/dataset")
# Optimizar las imágenes del conjunto de datos (opcional)
for f in path.rglob("*.jpg"):
compress_one_image(f)
# Comprimir el conjunto de datos en 'path/to/dataset.zip'
zip_directory(path)Si sigues estos pasos, podrás contribuir con un nuevo conjunto de datos que se integre correctamente en la estructura existente de Ultralytics.
Preguntas frecuentes#
Ultralytics admite una amplia variedad de conjuntos de datos para la detección de objetos, entre ellos:
- COCO: un conjunto de datos a gran escala para la detección de objetos, la segmentación y la generación de descripciones, con 80 categorías de objetos.
- LVIS: un amplio conjunto de datos con 1.203 categorías de objetos, diseñado para la detección y segmentación de objetos con mayor granularidad.
- Argoverse: conjunto de datos con información de seguimiento 3D y predicción de movimiento en entornos urbanos, acompañado de 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: incluye detección de objetos densos en entornos comerciales, con más de 11K imágenes.
Estos conjuntos de datos facilitan el entrenamiento de modelos robustos de Ultralytics YOLO para diversas aplicaciones de detección de objetos.
Contribuir con un nuevo conjunto de datos implica varios pasos:
- Recopilar imágenes: reúne imágenes de bases de datos públicas o de colecciones personales.
- Anotar imágenes: añade cuadros delimitadores, segmentos o puntos clave, según la tarea.
- Exportar anotaciones: convierte las anotaciones al formato YOLO
*.txt. - Organizar el conjunto de datos: usa una estructura de carpetas con los directorios
images/ylabels/, cada uno con los subdirectoriostrain/yval/. - Crear un archivo
data.yaml: incluye descripciones del conjunto de datos, clases y otra información relevante. - Optimizar las imágenes (opcional): reduce el tamaño del conjunto de datos para mejorar la eficiencia.
- Comprimir el conjunto de datos: comprime el conjunto de datos en un archivo zip.
- Documentación y PR: describe tu conjunto de datos y envía una solicitud de incorporación de cambios siguiendo las Directrices de contribución de Ultralytics.
Consulta Contribuir con nuevos conjuntos de datos para obtener una guía completa.
Ultralytics Platform ofrece potentes funciones para gestionar y analizar conjuntos de datos, entre ellas:
- Gestión sencilla de conjuntos de datos: sube, organiza y gestiona tus conjuntos de datos en un solo lugar.
- Integración inmediata con el entrenamiento: usa directamente los conjuntos de datos subidos para entrenar modelos, sin configuración adicional.
- Herramientas de visualización: explora y visualiza las imágenes y anotaciones de tu conjunto de datos.
- Análisis de conjuntos de datos: obtén información sobre la distribución y las características de tu conjunto de datos.
La plataforma agiliza la transición de la gestión de conjuntos de datos al entrenamiento de modelos, lo que hace que todo el proceso sea más eficiente. Obtén más información sobre los conjuntos de datos de Ultralytics Platform.
Los modelos Ultralytics YOLO ofrecen varias funciones ú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: compatibilidad con tareas de detección, segmentación de instancias, segmentación semántica, estimación de profundidad, clasificación, estimación de pose y caja delimitadora orientada (OBB) en un marco de trabajo unificado.
- Modelos preentrenados: acceso a modelos preentrenados de alto rendimiento para diversas aplicaciones, lo que reduce el tiempo de entrenamiento.
- Amplio apoyo de la comunidad: comunidad activa y documentación completa para facilitar la resolución de problemas y el desarrollo.
- Fácil integración: API sencilla para integrarlos en proyectos y flujos de trabajo existentes.
Descubre más sobre los modelos YOLO en la página de Modelos de Ultralytics.
Para optimizar y comprimir un conjunto de datos con las herramientas de Ultralytics, sigue este ejemplo de código:
Optimizar y comprimir un conjunto de datosfrom pathlib import Path from ultralytics.data.utils import compress_one_image from ultralytics.utils.downloads import zip_directory # Definir el directorio del conjunto de datos path = Path("path/to/dataset") # Optimizar las imágenes del conjunto de datos (opcional) for f in path.rglob("*.jpg"): compress_one_image(f) # Comprimir el conjunto de datos en 'path/to/dataset.zip' zip_directory(path)Este proceso ayuda a reducir el tamaño del conjunto de datos para almacenarlo de forma más eficiente y acelerar las descargas. Obtén más información sobre cómo optimizar y comprimir un conjunto de datos.