Meet YOLO26: next-gen vision AI.

Link to this sectionConfiguración#

Los ajustes y los hiperparámetros de YOLO desempeñan un papel fundamental en el rendimiento, la velocidad y la precisión del modelo. Estos ajustes pueden afectar al comportamiento del modelo en varias etapas, incluyendo el entrenamiento, la validación y la predicción.



Watch: Mastering Ultralytics YOLO: Configuration

Los comandos de Ultralytics utilizan la siguiente sintaxis:

Ejemplo
yolo TASK MODE ARGS

Donde:

Default ARG values are defined on this page and come from the cfg/default.yaml file.

Link to this sectionTareas#

Los modelos Ultralytics YOLO pueden realizar una variedad de tareas de visión por ordenador, incluyendo:

ArgumentoPredeterminadoDescripción
task'detect'Especifica la tarea de YOLO: detect para detección de objetos, segment para segmentación de instancias, semantic para segmentación semántica, classify para clasificación, pose para estimación de poses y obb para cajas delimitadoras orientadas. Cada tarea está adaptada a salidas y problemas específicos en el análisis de imágenes y vídeos.

Guía de tareas

Link to this sectionModos#

Los modelos Ultralytics YOLO operan en diferentes modos, cada uno diseñado para una etapa específica del ciclo de vida del modelo:

  • Train: Entrena un modelo YOLO en un conjunto de datos personalizado.
  • Val: Valida un modelo YOLO entrenado.
  • Predict: Utiliza un modelo YOLO entrenado para hacer predicciones en imágenes o vídeos nuevos.
  • Export: Exporta un modelo YOLO para su despliegue.
  • Track: Rastrea objetos en tiempo real utilizando un modelo YOLO.
  • Benchmark: Evalúa la velocidad y precisión de las exportaciones YOLO (ONNX, TensorRT, etc.).
ArgumentoPredeterminadoDescripción
mode'train'Especifica el modo de funcionamiento del modelo YOLO: train para el entrenamiento del modelo, val para la validación, predict para la inferencia, export para convertir a formatos de despliegue, track para el rastreo de objetos y benchmark para la evaluación del rendimiento. Cada modo admite diferentes etapas, desde el desarrollo hasta el despliegue.

Guía de modos

Link to this sectionConfiguración de entrenamiento#

Los ajustes de entrenamiento para los modelos YOLO incluyen hiperparámetros y configuraciones que afectan al rendimiento, la velocidad y la precisión del modelo. Los ajustes clave incluyen el tamaño del lote, la tasa de aprendizaje, el momentum y la caída de peso. La elección del optimizador, la función de pérdida y la composición del conjunto de datos también influyen en el entrenamiento. El ajuste y la experimentación son cruciales para un rendimiento óptimo. Para más detalles, consulta la función de punto de entrada de Ultralytics.

ArgumentoTipoPredeterminadoDescripción
modelstrNoneEspecifica el archivo del modelo para el entrenamiento. Acepta una ruta a un modelo preentrenado .pt o a un archivo de configuración .yaml. Esencial para definir la estructura del modelo o inicializar pesos.
datastrNoneRuta al archivo de configuración del conjunto de datos (p. ej., coco8.yaml). Este archivo contiene parámetros específicos del conjunto de datos, incluidas rutas a los datos de entrenamiento y validation data, nombres de clases y número de clases.
epochsint100Número total de epochs de entrenamiento. Cada epoch representa una pasada completa por todo el conjunto de datos. Ajustar este valor puede afectar a la duración del entrenamiento y al rendimiento del modelo.
timefloatNoneTiempo máximo de entrenamiento en horas. Si se establece, esto sobrescribe el argumento epochs, permitiendo que el entrenamiento se detenga automáticamente después de la duración especificada. Útil para escenarios de entrenamiento con limitaciones de tiempo.
patienceint100Número de epochs a esperar sin mejora en las métricas de validación antes de detener prematuramente el entrenamiento. Ayuda a prevenir el overfitting deteniendo el entrenamiento cuando el rendimiento se estanca.
batchint o float16Batch size, con tres modos: establecido como un número entero (p. ej., batch=16), modo automático para una utilización de la memoria de la GPU del 60% (batch=-1), o modo automático con una fracción de utilización especificada (batch=0.70).
imgszint640Tamaño de imagen objetivo para el entrenamiento. Las imágenes se redimensionan a cuadrados con lados iguales al valor especificado (si rect=False), conservando la relación de aspecto para los modelos YOLO pero no para RT-DETR. Afecta a la accuracy del modelo y a la complejidad computacional.
saveboolTrueHabilita el guardado de puntos de control de entrenamiento y los pesos finales del modelo. Útil para reanudar el entrenamiento o para el model deployment.
save_periodint-1Frecuencia de guardado de puntos de control del modelo, especificada en epochs. Un valor de -1 deshabilita esta función. Útil para guardar modelos intermedios durante sesiones de entrenamiento largas.
cacheboolFalseHabilita el almacenamiento en caché de imágenes del conjunto de datos en memoria (True/ram), en disco (disk), o lo deshabilita (False). Mejora la velocidad de entrenamiento al reducir la E/S de disco a costa de un mayor uso de memoria.
deviceint o str o listNoneEspecifica el/los dispositivo(s) computacional(es) para el entrenamiento: una sola GPU (device=0), múltiples GPU (device=[0,1]), CPU (device=cpu), MPS para Apple silicon (device=mps), Huawei Ascend NPU (device=npu o device=npu:0), o selección automática de la GPU más inactiva (device=-1) o múltiples GPU inactivas (device=[-1,-1]).
workersint8Número de hilos de trabajo para la carga de datos (por RANK si el entrenamiento es Multi-GPU). Influye en la velocidad del preprocesamiento de datos y en la alimentación del modelo, especialmente útil en configuraciones Multi-GPU.
projectstrNoneNombre del directorio del proyecto donde se guardan los resultados del entrenamiento. Permite el almacenamiento organizado de diferentes experimentos.
namestrNoneNombre de la ejecución de entrenamiento. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan los registros y los resultados del entrenamiento.
exist_okboolFalseSi es True, permite sobrescribir un directorio de proyecto/nombre existente. Útil para la experimentación iterativa sin necesidad de borrar manualmente los resultados anteriores.
pretrainedbool o strTrueDetermina si se debe comenzar el entrenamiento desde pesos preentrenados. Puede ser un valor booleano o una ruta de cadena a los pesos que se van a cargar. pretrained=False entrena a partir de pesos inicializados aleatoriamente manteniendo la arquitectura del modelo.
optimizerstr'auto'Elección del optimizador para el entrenamiento. Las opciones incluyen SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp o auto para la selección automática basada en la configuración del modelo. Afecta a la velocidad de convergencia y a la estabilidad.
seedint0Establece la semilla aleatoria para el entrenamiento, asegurando la reproducibilidad de los resultados entre ejecuciones con las mismas configuraciones.
deterministicboolTrueFuerza el uso de algoritmos deterministas, asegurando la reproducibilidad pero pudiendo afectar al rendimiento y la velocidad debido a la restricción de algoritmos no deterministas.
verboseboolTrueHabilita la salida detallada durante el entrenamiento, mostrando barras de progreso, métricas por época e información adicional de entrenamiento en la consola.
single_clsboolFalseTrata todas las clases en conjuntos de datos multiclase como una sola clase durante el entrenamiento. Útil para tareas de clasificación binaria o cuando te enfocas en la presencia de objetos en lugar de en su clasificación.
classeslist[int]NoneEspecifica una lista de IDs de clase para entrenar. Útil para filtrar y enfocarte solo en ciertas clases durante el entrenamiento.
rectboolFalseHabilita la estrategia de relleno mínimo: las imágenes en un lote se rellenan mínimamente para alcanzar un tamaño común, con el lado más largo igual a imgsz. Puede mejorar la eficiencia y la velocidad, pero puede afectar la precisión del modelo.
multi_scalefloat0.0Varía aleatoriamente imgsz en cada lote por +/- multi_scale (p. ej., 0.25 -> 0.75x a 1.25x), redondeando a múltiplos del paso del modelo; 0.0 desactiva el entrenamiento a múltiples escalas.
cos_lrboolFalseUtiliza un planificador de tasa de aprendizaje de coseno, ajustando la tasa de aprendizaje siguiendo una curva de coseno a lo largo de las épocas. Ayuda a gestionar la tasa de aprendizaje para una mejor convergencia.
close_mosaicint10Desactiva la aumentación de datos de mosaico en las últimas N épocas para estabilizar el entrenamiento antes de finalizar. Establecerlo en 0 desactiva esta función.
resumeboolFalseReanuda el entrenamiento desde el último punto de control guardado. Carga automáticamente los pesos del modelo, el estado del optimizador y el conteo de épocas, continuando el entrenamiento sin problemas.
ampboolTrueHabilita el entrenamiento con Precisión Mixta (AMP) automática, reduciendo el uso de memoria y posiblemente acelerando el entrenamiento con un impacto mínimo en la precisión.
fractionfloat1.0Especifica la fracción del conjunto de datos a usar para el entrenamiento. Permite entrenar con un subconjunto del conjunto de datos completo, útil para experimentos o cuando los recursos son limitados.
profileboolFalseHabilita la creación de perfiles de velocidades de ONNX y TensorRT durante el entrenamiento, útil para optimizar el despliegue del modelo.
freezeint o listNoneCongela las primeras N capas del modelo o las capas especificadas por índice, reduciendo el número de parámetros entrenables. Útil para el ajuste fino o aprendizaje por transferencia.
lr0float0.01Tasa de aprendizaje inicial (p. ej., SGD=1E-2, Adam=1E-3). Ajustar este valor es crucial para el proceso de optimización, ya que influye en la rapidez con la que se actualizan los pesos del modelo.
lrffloat0.01Tasa de aprendizaje final como una fracción de la tasa inicial = (lr0 * lrf), utilizada junto con planificadores para ajustar la tasa de aprendizaje con el tiempo.
momentumfloat0.937Factor de momento para SGD o beta1 para optimizadores Adam, que influye en la incorporación de gradientes pasados en la actualización actual.
weight_decayfloat0.0005Término de regularización L2, que penaliza pesos grandes para evitar el sobreajuste.
warmup_epochsfloat3.0Número de épocas para el calentamiento de la tasa de aprendizaje, aumentando gradualmente la tasa de aprendizaje desde un valor bajo hasta la tasa inicial para estabilizar el entrenamiento desde el principio.
warmup_momentumfloat0.8Momento inicial para la fase de calentamiento, ajustándose gradualmente al momento establecido durante el periodo de calentamiento.
warmup_bias_lrfloat0.1Tasa de aprendizaje para los parámetros de sesgo durante la fase de calentamiento, ayudando a estabilizar el entrenamiento del modelo en las épocas iniciales.
boxfloat7.5Peso del componente de pérdida de caja en la función de pérdida, que influye en cuánto énfasis se pone en predecir con precisión las coordenadas de la caja delimitadora.
clsfloat0.5Peso de la pérdida de clasificación en la función de pérdida total, afectando la importancia de una predicción de clase correcta en relación con otros componentes.
cls_pwfloat0.0Potencia para la ponderación de clases con el fin de manejar el desequilibrio de clases utilizando la frecuencia inversa de clase. 0.0 desactiva la ponderación de clases, 1.0 aplica una ponderación de frecuencia inversa completa. Los valores entre 0 y 1 proporcionan una ponderación parcial.
dflfloat1.5Peso de la pérdida focal de distribución, utilizada en ciertas versiones de YOLO para la clasificación de grano fino.
posefloat12.0Peso de la pérdida de pose en modelos entrenados para la estimación de pose, influyendo en el énfasis en la predicción precisa de los puntos clave de pose.
kobjfloat1.0Peso de la pérdida de objetividad de puntos clave en modelos de estimación de pose, equilibrando la confianza de detección con la precisión de la pose.
rlefloat1.0Peso de la pérdida de estimación de log-verosimilitud residual en modelos de estimación de pose, que afecta la precisión de la localización de los puntos clave.
anglefloat1.0Peso de la pérdida de ángulo en modelos obb, que afecta la precisión de las predicciones de ángulo de la caja delimitadora orientada.
nbsint64Tamaño de lote nominal para la normalización de la pérdida.
overlap_maskboolTrueDetermina si las máscaras de objetos deben fusionarse en una sola máscara para el entrenamiento o mantenerse separadas para cada objeto. En caso de superposición, la máscara más pequeña se superpone a la máscara más grande durante la fusión.
mask_ratioint4Tasa de submuestreo para máscaras de segmentación, que afecta la resolución de las máscaras utilizadas durante el entrenamiento.
dropoutfloat0.0Tasa de dropout para regularización en tareas de clasificación, evitando el sobreajuste al omitir aleatoriamente unidades durante el entrenamiento.
valboolTrueHabilita la validación durante el entrenamiento, permitiendo la evaluación periódica del rendimiento del modelo en un conjunto de datos separado.
plotsboolTrueGenera y guarda gráficos de métricas de entrenamiento y validación, así como ejemplos de predicción, proporcionando información visual sobre el rendimiento del modelo y la progresión del aprendizaje.
compilebool o strFalseHabilita la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True"default", False → desactiva, o un modo de cadena como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Vuelve al modo entusiasta con una advertencia si no es compatible.
max_detint300Especifica el número máximo de objetos retenidos durante la fase de validación del entrenamiento.
Nota sobre la configuración del tamaño de lote

El argumento batch ofrece tres opciones de configuración:

  • Tamaño de lote fijo: Especifica el número de imágenes por lote con un número entero (p. ej., batch=16).
  • Modo automático (60% de memoria de GPU): Usa batch=-1 para el ajuste automático a aproximadamente el 60% de utilización de memoria CUDA.
  • Modo automático con fracción de utilización: Define una fracción (p. ej., batch=0.70) para ajustar en función de un uso específico de memoria de GPU.

Guía de entrenamiento

Link to this sectionAjustes de predicción#

Los ajustes de predicción para los modelos YOLO incluyen hiperparámetros y configuraciones que influyen en el rendimiento, la velocidad y la precisión durante la inferencia. Los ajustes clave incluyen el umbral de confianza, el umbral de Supresión de no máximos (NMS) y el número de clases. El tamaño de los datos de entrada, el formato y las características complementarias como las máscaras también afectan a las predicciones. Ajustar estos parámetros es esencial para un rendimiento óptimo.

Argumentos de inferencia:

ArgumentoTipoPredeterminadoDescripción
sourcestr o int o NoneNoneEspecifica la fuente de datos para la inferencia. Puede ser una ruta de imagen, un archivo de vídeo, un directorio, una URL o un ID de dispositivo para fuentes en directo. Si se omite, se registra una advertencia y el modelo vuelve a los activos de demostración integrados (ultralytics/assets, o una URL de demostración para OBB). Admite una amplia gama de formatos y fuentes, lo que permite una aplicación flexible en diferentes tipos de entrada.
conffloat0.25Establece el umbral mínimo de confianza para las detecciones. Los objetos detectados con una confianza inferior a este umbral serán descartados. Ajustar este valor puede ayudar a reducir los falsos positivos.
ioufloat0.7Umbral de Intersección sobre Unión (IoU) para la Supresión de no máximos (NMS). Valores más bajos resultan en menos detecciones al eliminar cajas superpuestas, lo cual es útil para reducir duplicados.
imgszint o tuple640Destino para Letterbox. Un número entero da un cuadrado N×N; una tupla da (height, width). Con rect=True, el tensor real puede ser más pequeño que este destino debido al relleno de rectángulo mínimo. Usa rect=False para un tamaño fijo. Consulta Forma fija frente a rectángulo mínimo.
rectboolTrueSi es True, utiliza el relleno de rectángulo mínimo cuando sea posible (lotes de misma forma y backend admitido). Si es False, siempre rellena hasta el imgsz completo. Consulta Forma fija frente a rectángulo mínimo.
halfboolFalseHabilita la inferencia de media precisión (FP16), que puede acelerar la inferencia del modelo en GPU compatibles con un impacto mínimo en la precisión.
devicestrNoneEspecifica el dispositivo para la inferencia (p. ej., cpu, cuda:0, 0, npu o npu:0). Permite a los usuarios seleccionar entre CPU, una GPU específica, NPU Huawei Ascend u otros dispositivos de cómputo para la ejecución del modelo.
batchint1Especifica el tamaño del lote para la inferencia (solo funciona cuando la fuente es un directorio, un archivo de vídeo o un archivo .txt). Un tamaño de lote mayor puede proporcionar un mayor rendimiento, acortando la cantidad total de tiempo necesario para la inferencia.
max_detint300Número máximo de detecciones permitidas por imagen. Limita el número total de objetos que el modelo puede detectar en una única inferencia, evitando salidas excesivas en escenas densas.
vid_strideint1Salto de fotogramas para entradas de vídeo. Permite omitir fotogramas en vídeos para acelerar el procesamiento a costa de la resolución temporal. Un valor de 1 procesa cada fotograma, valores más altos omiten fotogramas.
stream_bufferboolFalseDetermina si se deben poner en cola los fotogramas entrantes para flujos de vídeo. Si es False, los fotogramas antiguos se descartan para dar cabida a los nuevos (optimizado para aplicaciones en tiempo real). Si es True, pone en cola los nuevos fotogramas en un búfer, asegurando que no se omitan fotogramas, pero provocará latencia si los FPS de inferencia son inferiores a los FPS del flujo.
visualizeboolFalseActiva la visualización de las características del modelo durante la inferencia, proporcionando información sobre lo que el modelo está "viendo". Útil para depuración e interpretación del modelo.
augmentboolFalseHabilita la aumentación durante la prueba (TTA) para las predicciones, mejorando potencialmente la robustez de la detección a costa de la velocidad de inferencia.
agnostic_nmsboolFalseHabilita la Supresión de no máximos (NMS) agnóstica de clase, que fusiona cajas superpuestas de diferentes clases. Útil en escenarios de detección multiclase donde la superposición de clases es común. Para modelos de extremo a extremo (YOLO26, YOLOv10), esto solo evita que la misma detección aparezca con múltiples etiquetas de clase (duplicados de IoU=1.0) y no realiza una supresión basada en el umbral de IoU entre cajas distintas.
classeslist[int]NoneFiltra las predicciones a un conjunto de IDs de clase. Solo se devolverán las detecciones pertenecientes a las clases especificadas. Útil para centrarse en objetos relevantes en tareas de detección multiclase.
retina_masksboolFalseDevuelve máscaras de segmentación de alta resolución. Las máscaras devueltas (masks.data) coincidirán con el tamaño original de la imagen si está habilitado. Si está deshabilitado, tienen el tamaño de la imagen utilizado durante la inferencia.
embedlist[int]NoneEspecifica las capas desde las cuales extraer vectores de características o incrustaciones. Útil para tareas posteriores como agrupamiento o búsqueda de similitud.
projectstrNoneNombre del directorio del proyecto donde se guardan las salidas de predicción si save está habilitado.
namestrNoneNombre de la ejecución de predicción. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan las salidas de predicción si save está habilitado.
streamboolFalseHabilita el procesamiento eficiente en memoria para vídeos largos o numerosas imágenes al devolver un generador de objetos Results en lugar de cargar todos los fotogramas en la memoria de una vez.
verboseboolTrueControla si se deben mostrar registros de inferencia detallados en el terminal, proporcionando información en tiempo real sobre el proceso de predicción.
compilebool o strFalseHabilita la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True"default", False → desactiva, o un modo de cadena como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Vuelve al modo entusiasta con una advertencia si no es compatible.
end2endboolNoneSobrescribe el modo de extremo a extremo en los modelos YOLO que admiten inferencia sin NMS (YOLO26, YOLOv10). Establecerlo en False permite ejecutar la predicción utilizando la tubería tradicional de NMS, permitiendo además utilizar el argumento iou. Consulta la Guía de detección de extremo a extremo para más detalles.

Argumentos de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi es True, muestra las imágenes o vídeos anotados en una ventana. Útil para una retroalimentación visual inmediata durante el desarrollo o las pruebas.
saveboolFalse or TrueHabilita el guardado de las imágenes o vídeos anotados en archivos. Útil para documentación, análisis posterior o compartir resultados. Predeterminado a True cuando se usa CLI y False cuando se usa en Python.
save_framesboolFalseAl procesar vídeos, guarda fotogramas individuales como imágenes. Útil para extraer fotogramas específicos o para un análisis detallado fotograma a fotograma.
save_txtboolFalseGuarda los resultados de detección en un archivo de texto, siguiendo el formato [class] [x_center] [y_center] [width] [height] [confidence]. Útil para la integración con otras herramientas de análisis.
save_confboolFalseIncluye puntuaciones de confianza en los archivos de texto guardados. Mejora el detalle disponible para el posprocesamiento y el análisis.
save_cropboolFalseGuarda imágenes recortadas de las detecciones. Útil para la aumentación de conjuntos de datos, el análisis o la creación de conjuntos de datos enfocados en objetos específicos.
show_labelsboolTrueMuestra las etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados.
show_confboolTrueMuestra la puntuación de confianza para cada detección junto a la etiqueta. Proporciona información sobre la certeza del modelo para cada detección.
show_boxesboolTrueDibuja cajas delimitadoras alrededor de los objetos detectados. Esencial para la identificación visual y la ubicación de objetos en imágenes o fotogramas de vídeo.
line_widthint or NoneNoneEspecifica el ancho de línea de los cuadros delimitadores. Si es None, el ancho de línea se ajusta automáticamente según el tamaño de la imagen. Proporciona personalización visual para mayor claridad.

Guía de predicción

Link to this sectionAjustes de validación#

Los ajustes de validación para los modelos YOLO implican hiperparámetros y configuraciones para evaluar el rendimiento en un conjunto de datos de validación. Estos ajustes influyen en el rendimiento, la velocidad y la precisión. Los ajustes comunes incluyen el tamaño del lote, la frecuencia de validación y las métricas de rendimiento. El tamaño y la composición del conjunto de datos de validación, junto con la tarea específica, también afectan al proceso.

ArgumentoTipoPredeterminadoDescripción
datastrNoneEspecifica la ruta al archivo de configuración del conjunto de datos (p. ej., coco8.yaml). Este archivo debe incluir la ruta a los datos de validación.
imgszint640Define el tamaño de las imágenes de entrada. Todas las imágenes se redimensionan a esta dimensión antes del procesamiento. Tamaños mayores pueden mejorar la precisión para objetos pequeños pero aumentan el tiempo de cómputo.
batchint16Establece el número de imágenes por lote. Valores más altos utilizan la memoria de la GPU de forma más eficiente pero requieren más VRAM. Ajusta según los recursos de hardware disponibles.
save_jsonboolFalseSi es True, guarda los resultados en un archivo JSON para un análisis posterior, integración con otras herramientas o envío a servidores de evaluación como COCO.
conffloat0.001Establece el umbral mínimo de confianza para las detecciones. Valores más bajos aumentan la recuperación pero pueden introducir más falsos positivos. Se utiliza durante la validación para calcular curvas de precisión-recuperación. Predeterminado a 0.01 para validación OBB para reducir el uso de memoria.
ioufloat0.7Establece el umbral de Intersección sobre Unión para la Supresión de no máximos. Controla la eliminación de detecciones duplicadas.
max_detint300Limita el número máximo de detecciones por imagen. Útil en escenas densas para evitar detecciones excesivas y gestionar los recursos computacionales.
halfboolFalseHabilita el cómputo de media precisión (FP16), reduciendo el uso de memoria y aumentando potencialmente la velocidad con un impacto mínimo en la precisión.
devicestrNoneEspecifica el dispositivo para la validación (cpu, cuda:0, npu, npu:0, etc.). Cuando es None, selecciona automáticamente el mejor dispositivo disponible. Se pueden especificar múltiples dispositivos CUDA separados por comas.
dnnboolFalseSi es True, utiliza el módulo DNN de OpenCV para la inferencia del modelo ONNX, ofreciendo una alternativa a los métodos de inferencia de PyTorch.
plotsboolTrueCuando se establece en True, genera y guarda gráficos de predicciones frente a la verdad fundamental, matrices de confusión y curvas PR para la evaluación visual del rendimiento del modelo.
classeslist[int]NoneEspecifica una lista de IDs de clase para evaluar. Útil para filtrar y centrarse solo en determinadas clases durante la evaluación.
rectboolTrueSi True, utiliza inferencia rectangular para el procesamiento por lotes, lo que reduce el relleno (padding) y potencialmente aumenta la velocidad y la eficiencia al procesar las imágenes en su relación de aspecto original.
splitstr'val'Determina la división del conjunto de datos a utilizar para la validación (val, test o train). Permite flexibilidad al elegir el segmento de datos para la evaluación del rendimiento.
projectstrNoneNombre del directorio del proyecto donde se guardan las salidas de validación. Ayuda a organizar los resultados de diferentes experimentos o modelos.
namestrNoneNombre de la ejecución de validación. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan los registros y resultados de la validación.
verboseboolTrueSi True, muestra información detallada durante el proceso de validación, incluidas las métricas por clase, el progreso de los lotes e información de depuración adicional.
save_txtboolFalseSi True, guarda los resultados de la detección en archivos de texto, con un archivo por imagen, lo que resulta útil para un análisis posterior, post-procesamiento personalizado o integración con otros sistemas.
save_confboolFalseSi True, incluye valores de confianza en los archivos de texto guardados cuando save_txt está habilitado, lo que proporciona una salida más detallada para su análisis y filtrado.
workersint8Número de hilos de trabajo para la carga de datos. Valores más altos pueden acelerar el preprocesamiento de datos, pero pueden aumentar el uso de CPU. Establecerlo en 0 utiliza el hilo principal, lo que puede ser más estable en algunos entornos.
augmentboolFalseHabilita la técnica de aumento durante la prueba (TTA) durante la validación, lo que mejora potencialmente la precisión de la detección a costa de la velocidad de inferencia al ejecutar la inferencia en versiones transformadas de la entrada.
agnostic_nmsboolFalseHabilita la Non-Maximum Suppression independiente de la clase, que combina cuadros superpuestos independientemente de su clase predicha. Útil para aplicaciones centradas en instancias. Para modelos de extremo a extremo (YOLO26, YOLOv10), esto solo evita que la misma detección aparezca con múltiples etiquetas de clase (duplicados de IoU=1.0) y no realiza supresión basada en el umbral de IoU entre cuadros distintos.
single_clsboolFalseTrata todas las clases como una sola clase durante la validación. Útil para evaluar el rendimiento del modelo en tareas de detección binaria o cuando las distinciones de clase no son importantes.
visualizeboolFalseVisualiza las verdades fundamentales, los verdaderos positivos, los falsos positivos y los falsos negativos para cada imagen. Útil para la depuración y la interpretación del modelo.
show_labelsboolTrueMuestra etiquetas de clase en las visualizaciones de validación cuando visualize=True. Configúralo en False para una vista más limpia de coincidencias y errores.
show_confboolTrueMuestra puntuaciones de confianza en las visualizaciones de validación cuando visualize=True. Configúralo en False para una vista más limpia de coincidencias y errores.
compilebool o strFalseHabilita la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True"default", False → desactiva, o un modo de cadena como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Vuelve al modo entusiasta con una advertencia si no es compatible.
end2endboolNoneAnula el modo de extremo a extremo en modelos YOLO que admiten inferencia sin NMS (YOLO26, YOLOv10). Establecerlo en False te permite ejecutar la validación utilizando la canalización NMS tradicional, lo que además te permite hacer uso del argumento iou.

Un ajuste y experimentación cuidadosos son cruciales para garantizar un rendimiento óptimo y para detectar y prevenir el overfitting.

Guía de Val

Link to this sectionConfiguración de exportación#

La configuración de exportación para los modelos YOLO incluye configuraciones para guardar o exportar el modelo para su uso en diferentes entornos. Estos ajustes afectan al rendimiento, al tamaño y a la compatibilidad. Los ajustes clave incluyen el formato de archivo exportado (p. ej., ONNX, TensorFlow SavedModel), el dispositivo de destino (p. ej., CPU, GPU) y funciones como las máscaras. La tarea del modelo y las restricciones del entorno de destino también afectan al proceso de exportación.

ArgumentoTipoPredeterminadoDescripción
formatstr'torchscript'Formato de destino para el modelo exportado, como 'onnx', 'torchscript', 'engine' (TensorRT), u otros. Cada formato permite la compatibilidad con diferentes entornos de despliegue.
imgszint o tuple640Tamaño de imagen deseado para la entrada del modelo. Puede ser un número entero para imágenes cuadradas (p. ej., 640 para 640×640) o una tupla (height, width) para dimensiones específicas.
kerasboolFalseHabilita la exportación al formato Keras para TensorFlow SavedModel, proporcionando compatibilidad con el servicio y las API de TensorFlow.
optimizeboolFalseAplica la optimización para dispositivos móviles al exportar a TorchScript, reduciendo potencialmente el tamaño del modelo y mejorando el rendimiento de la inferencia. No es compatible con el formato NCNN ni con dispositivos CUDA. Para DEEPX, habilita una optimización del compilador superior que reduce la latencia de inferencia y aumenta el tiempo de compilación.
halfboolFalseHabilita la cuantización FP16 (precisión media), reduciendo el tamaño del modelo y acelerando potencialmente la inferencia en hardware compatible. No es compatible con la cuantización INT8 o exportaciones solo de CPU. Solo disponible para ciertos formatos, p. ej. ONNX (ver más abajo).
int8boolFalseActiva la cuantización INT8, comprimiendo aún más el modelo y acelerando la inferencia con una pérdida mínima de precisión, principalmente para dispositivos periféricos (edge devices). Cuando se utiliza con TensorRT, realiza la cuantización post-entrenamiento (PTQ).
dynamicboolFalsePermite tamaños de entrada dinámicos para exportaciones de TorchScript, ONNX, OpenVINO, TensorRT y CoreML, mejorando la flexibilidad en el manejo de dimensiones de imagen variables.
simplifyboolTrueSimplifica el grafo del modelo para exportaciones ONNX con onnxslim, lo que potencialmente mejora el rendimiento y la compatibilidad con motores de inferencia.
opsetintNoneEspecifica la versión del opset de ONNX para la compatibilidad con diferentes analizadores y motores de ejecución de ONNX. Si no se establece, utiliza la última versión compatible.
workspacefloat o NoneNoneEstablece el tamaño máximo del espacio de trabajo en GiB para las optimizaciones de TensorRT, equilibrando el uso de memoria y el rendimiento. Usa None para la asignación automática por parte de TensorRT hasta el máximo del dispositivo.
nmsboolFalseAñade la Non-Maximum Suppression (NMS) al modelo exportado cuando sea compatible (consulta Formatos de exportación), mejorando la eficiencia del post-procesamiento de detección. No está disponible para modelos de extremo a extremo (end2end).
batchint1Especifica el tamaño de inferencia por lotes del modelo de exportación o el número máximo de imágenes que el modelo exportado procesará simultáneamente en modo predict. Para las exportaciones de Edge TPU, esto se establece automáticamente en 1.
devicestrNoneEspecifica el dispositivo para la exportación: GPU (device=0), CPU (device=cpu), MPS para Apple silicon (device=mps), Huawei Ascend NPU (device=npu o device=npu:0), o DLA para NVIDIA Jetson (device=dla:0 o device=dla:1). Las exportaciones de TensorRT utilizan automáticamente la GPU.
datastr'coco8.yaml'Ruta al archivo de configuración del conjunto de datos, esencial para la calibración de cuantización INT8. Si no se especifica con INT8 habilitado, se utilizará coco8.yaml como alternativa para la calibración.
fractionfloat1.0Especifica la fracción del conjunto de datos a utilizar para la calibración de cuantización INT8. Permite calibrar en un subconjunto del conjunto de datos completo, útil para experimentos o cuando los recursos son limitados. Si no se especifica con INT8 habilitado, se utilizará el conjunto de datos completo.
end2endboolNoneAnula el modo de extremo a extremo en modelos YOLO que admiten inferencia sin NMS (YOLO26, YOLOv10). Establecerlo en False te permite exportar estos modelos para que sean compatibles con la canalización tradicional de post-procesamiento basada en NMS. Consulta la Guía de detección de extremo a extremo para obtener detalles.

Una configuración meditada garantiza que el modelo exportado esté optimizado para su caso de uso y funcione eficazmente en el entorno de destino.

Guía de exportación

Link to this sectionConfiguración de soluciones#

Los ajustes de configuración de Ultralytics Solutions ofrecen flexibilidad para personalizar modelos para tareas como el conteo de objetos, la creación de mapas de calor, el seguimiento de ejercicios, el análisis de datos, el seguimiento de zonas, la gestión de colas y el conteo basado en regiones. Estas opciones permiten ajustes sencillos para obtener resultados precisos y útiles adaptados a necesidades específicas.

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo YOLO de Ultralytics.
regionlist'[(20, 400), (1260, 400)]'Lista de puntos que definen la región de conteo.
show_inboolTrueFlag para controlar si se muestran los conteos de entrada en la transmisión de vídeo.
show_outboolTrueFlag para controlar si se muestran los conteos de salida en la transmisión de vídeo.
analytics_typestr'line'Tipo de gráfico, p. ej., line, bar, area o pie.
colormapintcv2.COLORMAP_DEEPGREENMapa de colores a usar para el mapa de calor.
json_filestrNoneRuta al archivo JSON que contiene todos los datos de coordenadas del aparcamiento.
up_anglefloat145.0Umbral de ángulo para la pose 'arriba'.
kptslist[int]'[6, 8, 10]'Lista de tres índices de puntos clave utilizados para monitorear entrenamientos. Estos puntos clave corresponden a articulaciones o partes del cuerpo, como hombros, codos y muñecas, para ejercicios como flexiones, dominadas, sentadillas y ejercicios abdominales.
down_angleint90Umbral de ángulo para la pose 'abajo'.
blur_ratiofloat0.5Ajusta el porcentaje de intensidad del desenfoque, con valores en el rango 0.1 - 1.0.
crop_dirstr'cropped-detections'Nombre del directorio para almacenar las detecciones recortadas.
recordsint5Recuento total de detecciones para activar un correo electrónico con el sistema de alarma de seguridad.
vision_pointtuple[int, int](20, 20)El punto donde la visión rastreará objetos y dibujará trayectorias usando la solución VisionEye.
sourcestrNoneRuta a la fuente de entrada (vídeo, RTSP, etc.). Solo utilizable con la interfaz de línea de comandos (CLI) de Solutions.
figsizetuple[int, int](12.8, 7.2)Tamaño de la figura para gráficos analíticos como mapas de calor o gráficas.
fpsfloat30.0Fotogramas por segundo utilizados para los cálculos de velocidad.
max_histint5Máximos puntos históricos a rastrear por objeto para los cálculos de velocidad/dirección.
meter_per_pixelfloat0.05Factor de escala utilizado para convertir la distancia de píxeles a unidades del mundo real.
max_speedint120Límite máximo de velocidad en superposiciones visuales (utilizado en alertas).
datastr'images'Ruta al directorio de imágenes utilizado para la búsqueda por similitud.
imgszint640Tamaño de la imagen de entrada para la inferencia del modelo.

Guía de soluciones

Link to this sectionConfiguración de aumento#

Las técnicas de aumento de datos son esenciales para mejorar la robustez y el rendimiento del modelo YOLO al introducir variabilidad en los datos de entrenamiento, lo que ayuda al modelo a generalizar mejor ante datos no vistos. La siguiente tabla describe el propósito y el efecto de cada argumento de aumento:

ArgumentoTipoPredeterminadoTareas compatiblesRangoDescripción
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Ajusta el tono de la imagen mediante una fracción de la rueda de colores, introduciendo variabilidad de color. Ayuda al modelo a generalizar bajo diferentes condiciones de iluminación.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Altera la saturación de la imagen mediante una fracción, afectando la intensidad de los colores. Útil para simular diferentes condiciones ambientales.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Modifica el valor (brillo) de la imagen mediante una fracción, ayudando al modelo a funcionar bien bajo diversas condiciones de iluminación.
degreesfloat0detect, segment, pose, obb0.0 - 180Rota la imagen aleatoriamente dentro del rango de grados especificado, lo que mejora la capacidad del modelo para reconocer objetos en diversas orientaciones.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Traslada la imagen horizontal y verticalmente en una fracción del tamaño de la imagen, lo que ayuda a aprender a detectar objetos parcialmente visibles.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Escala la imagen mediante un factor de ganancia, simulando objetos a diferentes distancias de la cámara.
shearfloat0detect, segment, pose, obb-180 - +180Inclina (cizalla) la imagen en un grado especificado, imitando el efecto de ver objetos desde diferentes ángulos.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001Aplica una transformación de perspectiva aleatoria a la imagen, mejorando la capacidad del modelo para entender objetos en el espacio 3D.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0Voltea la imagen verticalmente (arriba/abajo) con la probabilidad especificada, aumentando la variabilidad de los datos sin afectar a las características del objeto.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Voltea la imagen horizontalmente (izquierda/derecha) con la probabilidad especificada, útil para aprender objetos simétricos y aumentar la diversidad del conjunto de datos.
bgrfloat0detect, segment, pose, obb0.0 - 1.0Intercambia los canales de la imagen de RGB a BGR con la probabilidad especificada, útil para aumentar la robustez ante un orden de canales incorrecto.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Combina cuatro imágenes de entrenamiento en una, simulando diferentes composiciones de escenas e interacciones entre objetos. Es altamente eficaz para la comprensión de escenas complejas.
mixupfloat0detect, segment, pose, obb0.0 - 1.0Fusiona dos imágenes y sus etiquetas, creando una imagen compuesta. Mejora la capacidad de generalización del modelo introduciendo ruido en las etiquetas y variabilidad visual.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Combina porciones de dos imágenes, creando una fusión parcial mientras mantiene regiones distintas. Aumenta la robustez del modelo al crear escenarios de oclusión.
copy_pastefloat0segment0.0 - 1.0Copia y pega objetos entre imágenes para aumentar el número de instancias de objetos.
copy_paste_modestrflipsegment-Especifica la estrategia de copy-paste a utilizar. Las opciones incluyen 'flip' y 'mixup'.
auto_augmentstrrandaugmentclassify-Aplica una política de aumento predefinida ('randaugment', 'autoaugment' o 'augmix') para mejorar el rendimiento del modelo mediante la diversidad visual.
erasingfloat0.4classify0.0 - 1.0Elimina regiones de la imagen aleatoriamente durante el entrenamiento para animar al modelo a centrarse en características menos obvias.
augmentationslist``detect, segment, pose, obb-Transformaciones personalizadas de Albumentations para un aumento de datos avanzado (solo para la API de Python). Acepta una lista de objetos de transformación para necesidades de aumento especializadas.

Ajusta estos parámetros para cumplir con los requisitos del conjunto de datos y la tarea. Experimentar con diferentes valores puede ayudar a encontrar la estrategia de aumento óptima para obtener el mejor rendimiento del modelo.

Guía de aumento

Link to this sectionConfiguración de registros, puntos de control y gráficos#

El registro, los puntos de control, la representación gráfica y la gestión de archivos son importantes al entrenar un modelo YOLO:

  • Registro: Realiza un seguimiento del progreso del modelo y diagnostica problemas utilizando bibliotecas como TensorBoard o escribiendo en un archivo.
  • Puntos de control (checkpoints): Guarda el modelo a intervalos regulares para reanudar el entrenamiento o experimentar con diferentes configuraciones.
  • Representación gráfica (plotting): Visualiza el rendimiento y el progreso del entrenamiento utilizando bibliotecas como Matplotlib o TensorBoard.
  • Gestión de archivos: Organiza los archivos generados durante el entrenamiento, como puntos de control, archivos de registro y gráficos, para facilitar el acceso y el análisis.

La gestión eficaz de estos aspectos ayuda a realizar un seguimiento del progreso y facilita la depuración y la optimización.

ArgumentoPredeterminadoDescripción
projectNoneEspecifica el directorio raíz para guardar las ejecuciones de entrenamiento. Si no se especifica, las ejecuciones se guardan en runs/<task>. Cada ejecución se guarda en un subdirectorio separado.
nameNoneDefine el nombre del experimento. Si no se especifica, YOLO utiliza el nombre del modo y lo incrementa para cada ejecución (p. ej., train, train-2) para evitar sobrescribir.
exist_okFalseDetermina si se debe sobrescribir un directorio de experimento existente. True permite sobrescribir; False lo impide.
plotsTrueControla la generación y el guardado de gráficos de entrenamiento y validación. Establece en True para crear gráficos como curvas de pérdida, curvas de precisión-recuperación y predicciones de muestra para el seguimiento visual del rendimiento.
saveTrueHabilita el guardado de puntos de control de entrenamiento y pesos finales del modelo. Establece en True para guardar periódicamente los estados del modelo, permitiendo la reanudación del entrenamiento o el despliegue del modelo.

Link to this sectionArchivo de configuración personalizado#

Carga un YAML guardado para reutilizar un conjunto completo de argumentos sin pasarlos en línea. El argumento cfg sobrescribe los valores de default.yaml, mientras que los argumentos adicionales pasados junto a él siguen teniendo prioridad.

ArgumentoPredeterminadoDescripción
cfgNoneRuta a un archivo YAML cuyos valores sustituyen a las entradas de default.yaml. Consulta Sustitución del archivo de configuración predeterminado para ver un ejemplo práctico de CLI.

Link to this sectionFAQ#

Link to this section¿Cómo puedo mejorar el rendimiento de mi modelo YOLO durante el entrenamiento?#

Mejora el rendimiento ajustando hiperparámetros como el tamaño del lote, la tasa de aprendizaje, el momento (momentum) y la decaimiento de pesos (weight decay). Ajusta la configuración de aumento de datos, selecciona el optimizador correcto y utiliza técnicas como la parada temprana o la precisión mixta. Para obtener detalles, consulta la Guía de entrenamiento.

Link to this section¿Cuáles son los hiperparámetros clave para la precisión del modelo YOLO?#

Los hiperparámetros clave que afectan a la precisión incluyen:

  • Tamaño del lote (batch): Tamaños mayores pueden estabilizar el entrenamiento pero requieren más memoria.
  • Tasa de aprendizaje (lr0): Tasas menores ofrecen ajustes finos pero una convergencia más lenta.
  • Momento (momentum): Acelera los vectores de gradiente, amortiguando las oscilaciones.
  • Tamaño de imagen (imgsz): Tamaños mayores mejoran la precisión pero aumentan la carga computacional.

Ajústalos según tu conjunto de datos y hardware. Obtén más información en Configuración de entrenamiento.

Link to this section¿Cómo establezco la tasa de aprendizaje para entrenar un modelo YOLO?#

La tasa de aprendizaje (lr0) es crucial; empieza con 0.01 para SGD o 0.001 para el optimizador Adam. Monitoriza las métricas y ajústalas según sea necesario. Utiliza programadores de tasa de aprendizaje coseno (cos_lr) o calentamiento (warmup_epochs, warmup_momentum). Los detalles se encuentran en la Guía de entrenamiento.

Link to this section¿Cuáles son los ajustes de inferencia predeterminados para los modelos YOLO?#

Los ajustes predeterminados incluyen:

  • Umbral de confianza (conf=0.25): Confianza mínima para las detecciones.
  • Umbral de IoU (iou=0.7): Para la Non-Maximum Suppression (NMS).
  • Tamaño de imagen (imgsz=640): Cambia el tamaño de las imágenes de entrada.
  • Dispositivo (device=None): Selecciona CPU, GPU, Apple MPS o Huawei Ascend NPU (npu).

Para obtener una visión general completa, consulta Configuración de predicción y la Guía de predicción.

Link to this section¿Por qué utilizar el entrenamiento con precisión mixta con modelos YOLO?#

El entrenamiento con precisión mixta (amp=True) reduce el uso de memoria y acelera el entrenamiento utilizando FP16 y FP32. Es beneficioso para las GPU modernas, lo que permite modelos más grandes y cálculos más rápidos sin una pérdida significativa de precisión. Obtén más información en la Guía de entrenamiento.

Comentarios