Ir al contenido

Descripción General de los Conjuntos de Datos

Ultralytics ofrece soporte para varios conjuntos de datos para facilitar tareas de visión artificial como la detección, la segmentación de instancias, la estimación de pose, la clasificación y el seguimiento de múltiples objetos. 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 los conjuntos de datos respectivos.



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 implica detectar y localizar objetos en una imagen dibujando una caja delimitadora alrededor de cada objeto.

  • Argoverse: Un conjunto de datos que contiene información de seguimiento 3D y previsión de movimiento de entornos urbanos con anotaciones enriquecidas.
  • COCO: Common Objects in Context (COCO) es un conjunto de datos a gran escala para la detección de objetos, la segmentación y la descripción de imágenes con 80 categorías de objetos.
  • LVIS: Un conjunto de datos a gran escala para la detección de objetos, la segmentación y la descripción de imágenes con 1203 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 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 reconocimiento espectral.
  • COCO128: Un subconjunto más pequeño de las primeras 128 imágenes de COCO train y COCO val, adecuado para pruebas.
  • Global Wheat 2020: Un conjunto de datos que contiene imágenes de espigas de trigo para el Global Wheat Challenge 2020.
  • Objects365: 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 conjunto de datos completo 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 que presenta la detección densa de objetos en entornos minoristas con más de 11.000 imágenes y 1,7 millones de cuadros delimitadores.
  • HomeObjects-3K Nuevo 🚀: Un conjunto de datos de escenas interiores anotadas con 12 artículos domésticos comunes, ideal para desarrollar y probar modelos de visión artificial en sistemas domésticos inteligentes, robótica y realidad aumentada.
  • VisDrone: Un conjunto de datos que contiene datos de detección de objetos y seguimiento multi-objeto 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.
  • xView: 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.
  • RF100: Un diverso benchmark de detección de objetos con 100 conjuntos de datos que abarcan siete dominios de imágenes para una evaluación exhaustiva del modelo.
  • Brain-tumor: Un conjunto de datos para la detección de tumores cerebrales que incluye imágenes de resonancia magnética o tomografía computarizada con detalles sobre la presencia, la ubicación y las características del tumor.
  • African-wildlife: Un conjunto de datos que presenta imágenes de la vida silvestre africana, incluyendo búfalos, elefantes, rinocerontes y cebras.
  • Signature: Un conjunto de datos que presenta imágenes de varios documentos con firmas anotadas, que respaldan la verificación de documentos y la investigación de detección de fraudes.
  • Medical-pills: Un conjunto de datos que contiene imágenes etiquetadas de píldoras médicas, diseñado para ayudar en tareas como el control de calidad farmacéutica, la clasificación y el cumplimiento de las normas del sector.

Segmentación de instancias

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

  • COCO: Un conjunto de datos a gran escala diseñado para tareas de detección de objetos, segmentación y subtitulado 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.
  • 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 COCO con anotaciones de segmentación.
  • Crack-seg: Conjunto de datos creado específicamente para detectar grietas en carreteras y paredes, aplicable tanto para la detección de objetos como para tareas de segmentación.
  • Package-seg: Conjunto de datos a medida para identificar paquetes en almacenes o entornos industriales, adecuado tanto para la detección de objetos como para aplicaciones 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 la detección de objetos como para tareas de segmentación.

Estimación de pose

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

  • COCO: Un conjunto de datos a gran escala con anotaciones de pose humana diseñado para tareas de estimación de pose.
  • COCO8-pose: Un conjunto de datos más pequeño para tareas de estimación de pose, que contiene un subconjunto de 8 imágenes COCO con anotaciones de pose humana.
  • 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 pose.
  • Hand-Keypoints: Un conjunto de datos conciso con 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 pose.
  • Dog-pose: Un conjunto de datos completo con aproximadamente 6,000 imágenes centradas en perros, anotadas con 24 puntos clave por perro, diseñado para tareas de estimación de pose.

Clasificación

La clasificación de imágenes es una tarea de visión artificial que implica 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 60,000 imágenes a color de 32x32 en 10 clases, con 6,000 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 consta de 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 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 manuscritos 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 la visión artificial para detectar objetos en ángulo en imágenes utilizando cajas delimitadoras rotadas, a menudo aplicado a imágenes aéreas y de satélite. A diferencia de las cajas delimitadoras tradicionales, las OBB pueden ajustarse mejor a los objetos en varias orientaciones.

  • DOTA-v2: Un conjunto de datos popular 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.

Seguimiento de múltiples objetos

El seguimiento de múltiples objetos es una técnica de visión artificial que implica la detección y el seguimiento de múltiples objetos a lo largo del tiempo en una secuencia de vídeo. Esta tarea amplía la detección de objetos manteniendo identidades consistentes de los objetos a través de los fotogramas.

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

Contribuir con nuevos conjuntos de datos

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



Ver: Cómo contribuir a los conjuntos de datos de Ultralytics 🚀

Pasos para contribuir con un nuevo conjunto de datos

  1. Recopilar Imágenes: Reúna las imágenes que pertenecen al conjunto de datos. Estas podrían recopilarse de varias fuentes, como bases de datos públicas o su propia colección.
  2. Anotar Imágenes: Anote estas imágenes con cajas delimitadoras, segmentos o puntos clave, según la tarea.
  3. Exportar Anotaciones: Convierte estas anotaciones al formato de archivo 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 un data.yaml archivo: En el directorio raíz de tu conjunto de datos, crea un data.yaml archivo que describa el conjunto de datos, las clases y otra información necesaria.

  6. Optimizar 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 siguiente código. Esto no es obligatorio, pero sí recomendable para tamaños de conjuntos de datos más pequeños y velocidades de descarga más rápidas.
  7. Comprimir el conjunto de datos en un archivo ZIP: Comprime toda la carpeta del conjunto de datos en un archivo zip.
  8. Documentar y enviar una solicitud de extracción (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 de eso, envía una solicitud de extracción (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

Optimizar y comprimir un conjunto de datos en un archivo ZIP

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 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 la detección de objetos, incluyendo:

  • COCO: Un conjunto de datos a gran escala para la detección, segmentación y subtitulado de objetos con 80 categorías de objetos.
  • LVIS: Un extenso conjunto de datos con 1203 categorías de objetos, diseñado para una detección y segmentación de objetos más precisa.
  • Argoverse: Un conjunto de datos que contiene información de seguimiento 3D y previsión de movimiento de entornos urbanos con anotaciones enriquecidas.
  • VisDrone: Un conjunto de datos con detección de objetos y datos de seguimiento multi-objeto de imágenes capturadas por drones.
  • SKU-110K: Con detección densa de objetos en entornos minoristas con más de 11,000 imágenes.

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

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

Contribuir con un nuevo conjunto de datos implica varios pasos:

  1. Recopilar imágenes: Reúne imágenes de bases de datos públicas o colecciones personales.
  2. Anotar imágenes: Aplica cuadros delimitadores, segmentos o puntos clave, según la tarea.
  3. Exportar Anotaciones: Convierte las anotaciones al formato YOLO. *.txt formato.
  4. Organizar el conjunto de datos: Utiliza la estructura de carpetas con train/ y val/ directorios, cada uno conteniendo images/ y labels/ subdirectorios.
  5. Crea un data.yaml archivo: Incluye descripciones del conjunto de datos, clases y otra información relevante.
  6. Optimizar Imágenes (Opcional): Reduce el tamaño del conjunto de datos para mayor eficiencia.
  7. Comprimir Dataset: Comprime el conjunto de datos en un archivo zip.
  8. Documentar y Pull Request: Describe tu conjunto de datos y envía un Pull Request siguiendo las Guías de Contribución de Ultralytics.

Visita Contribuir con Nuevos Datasets para una guía completa.

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

Ultralytics HUB ofrece potentes funciones para la gestión y el análisis de conjuntos de datos, que incluyen:

  • Gestión de conjuntos de datos sin problemas: Cargue, organice y gestione sus conjuntos de datos en un solo lugar.
  • Integración inmediata del entrenamiento: Utilice conjuntos de datos cargados directamente para el entrenamiento del modelo sin configuración adicional.
  • Herramientas de visualización: Explore y visualice las imágenes y anotaciones de su conjunto de datos.
  • Análisis de Conjuntos de Datos: Obtenga información sobre la distribución y las características de su 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. Obtenga más información sobre los conjuntos de datos de Ultralytics HUB.

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

Los modelos YOLO de Ultralytics 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, clasificación y estimación de pose en un marco de trabajo unificado.
  • Modelos preentrenados: Acceda 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 completa para la resolución de problemas y el desarrollo.
  • Fácil integración: API simple para la integración con proyectos y flujos de trabajo existentes.

Descubra más sobre los modelos YOLO en la página de Modelos Ultralytics.

¿Cómo puedo optimizar y comprimir un conjunto de datos utilizando las herramientas de Ultralytics?

Para optimizar y comprimir un conjunto de datos utilizando las herramientas de Ultralytics, sigue este código de ejemplo:

Optimizar y comprimir un conjunto de datos en un archivo ZIP

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 conjunto de datos para un almacenamiento más eficiente y velocidades de descarga más rápidas. Obtenga más información sobre cómo optimizar y comprimir un conjunto de datos.



📅 Creado hace 1 año ✏️ Actualizado hace 3 meses

Comentarios