Ultralytics YOLO27:

Configuración#

Los ajustes y 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 distintas fases, como el entrenamiento, la validación y la predicción.



Watch: Mastering Ultralytics YOLO: Configuration

Los comandos de Ultralytics utilizan la sintaxis siguiente:

Ejemplo
yolo TASK MODE ARGS

Donde:

Los valores predeterminados de ARG se definen en esta página y proceden del archivo cfg/default.yaml.

Tareas#

Los modelos YOLO de Ultralytics pueden realizar diversas tareas de visión por ordenador, entre ellas:

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

Guía de tareas

Modos#

Los modelos YOLO de Ultralytics funcionan en distintos modos, cada uno diseñado para una fase específica del ciclo de vida del modelo:

  • Train: Entrena un modelo YOLO con un conjunto de datos personalizado.
  • Val: Valida un modelo YOLO entrenado.
  • Predict: Utiliza un modelo YOLO entrenado para realizar predicciones sobre imágenes o vídeos nuevos.
  • Export: Exporta un modelo YOLO para su implementación.
  • Track: Realiza el seguimiento de objetos en tiempo real mediante un modelo YOLO.
  • Benchmark: Evalúa la velocidad y la precisión de las exportaciones de 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 la conversión a formatos de implementación, track para el seguimiento de objetos y benchmark para la evaluación del rendimiento. Cada modo admite distintas fases, desde el desarrollo hasta la implementación.

Guía de modos

Ajustes de entrenamiento#

Los ajustes de entrenamiento de los modelos YOLO incluyen hiperparámetros y configuraciones que afectan al rendimiento, la velocidad y la precisión del modelo. Entre los ajustes principales se incluyen el tamaño del lote, la tasa de aprendizaje, el momentum y la reducción de pesos. 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 fundamentales para lograr un rendimiento óptimo. Para obtener más información, consulta la función 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 los pesos.
datastrNoneRuta al YAML del conjunto de datos (por ejemplo, coco8.yaml), que contiene las rutas a los datos de entrenamiento y validación, los nombres de las clases y el número de clases. La clasificación requiere un directorio del conjunto de datos o el nombre de un conjunto de datos integrado (por ejemplo, imagenet10).
epochsint100Número total de épocas de entrenamiento. Cada época representa un recorrido completo 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, anula el argumento epochs y permite que el entrenamiento se detenga automáticamente una vez transcurrida la duración especificada. Resulta útil en escenarios de entrenamiento con limitaciones de tiempo.
patienceint100Número de épocas que se deben esperar sin mejoras en las métricas de validación antes de detener prematuramente el entrenamiento. Ayuda a evitar el sobreajuste al detener el entrenamiento cuando el rendimiento se estabiliza.
batchint o float16Tamaño del lote, con tres modos: establecerlo como un entero (por ejemplo, batch=16), modo automático para utilizar el 60 % de la memoria de la GPU (batch=-1) o modo automático con una fracción de uso especificada (batch=0.70).
imgszint640Tamaño objetivo de la imagen para el entrenamiento. Las imágenes se redimensionan a cuadrados cuyos lados tienen el valor especificado (si rect=False), conservando la relación de aspecto para los modelos YOLO, pero no para RT-DETR. Afecta a la precisión del modelo y a la complejidad computacional.
saveboolTrueActiva el guardado de los puntos de control del entrenamiento y de los pesos finales del modelo. Resulta útil para reanudar el entrenamiento o para la implementación del modelo.
save_periodint-1Frecuencia de guardado de los puntos de control del modelo, especificada en épocas. Un valor de -1 desactiva esta función. Resulta útil para guardar modelos intermedios durante sesiones de entrenamiento prolongadas.
cacheboolFalseActiva la caché de las imágenes del conjunto de datos en memoria (True/ram), en disco (disk) o la desactiva (False). Mejora la velocidad del entrenamiento al reducir la E/S de disco, a costa de aumentar el uso de memoria.
deviceint o str o listNoneEspecifica el dispositivo o dispositivos de cálculo para el entrenamiento: una única GPU (device=0), varias GPU (device=[0,1]), CPU (device=cpu), MPS para Apple Silicon (device=mps), NPU Huawei Ascend (device=npu:0 o device=npu:0,1), o selección automática de una GPU inactiva (device=-1) o de varias GPU inactivas (device=[-1,-1]).
workersint8Número de hilos de trabajo para la carga de datos (por RANK en el entrenamiento con varias GPU). Influye en la velocidad del preprocesamiento de datos y de su suministro al modelo, especialmente en configuraciones con varias GPU.
projectstrNoneNombre del directorio del proyecto donde se guardan los resultados del entrenamiento. Permite almacenar de forma organizada distintos 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 resultados del entrenamiento.
exist_okboolFalseSi es True, permite sobrescribir un directorio de proyecto/nombre existente. Resulta útil para realizar experimentos iterativos sin tener que borrar manualmente los resultados anteriores.
save_dirstrNoneEspecifica el directorio exacto donde se guardan los resultados de la ejecución, anulando la combinación project/name. La ruta se utiliza tal cual, sin incrementos automáticos, por lo que las ejecuciones consecutivas reutilizan el mismo directorio.
pretrainedbool o strTrueDetermina si el entrenamiento comienza a partir de pesos preentrenados. Puede ser un valor booleano o una ruta de cadena a los pesos que se cargarán. pretrained=False entrena a partir de pesos inicializados aleatoriamente, manteniendo la arquitectura del modelo.
cls_remapboolTrueAl ajustar el modelo entre distintos conjuntos de datos, copia las filas de la cabeza de clasificación preentrenada al nuevo modelo cuando coinciden los nombres de las clases, de modo que las clases coincidentes conserven el sesgo aprendido y sus pesos cuando el ancho de la cabeza no cambie. Se aplica tanto si el número de clases difiere como si coincide pero cambia el orden de las clases.
optimizerstr'auto'Elección del optimizador para el entrenamiento. Las opciones incluyen SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp o auto para elegir AdamW o MuSGD según el número de iteraciones de entrenamiento. Afecta a la velocidad y estabilidad de la convergencia.
seedint0Establece la semilla aleatoria del entrenamiento para garantizar la reproducibilidad de los resultados entre ejecuciones con las mismas configuraciones.
deterministicboolTrueFuerza el uso de algoritmos deterministas, lo que garantiza la reproducibilidad, pero puede afectar al rendimiento y a la velocidad debido a la restricción de los algoritmos no deterministas.
verboseboolTrueActiva una salida detallada durante el entrenamiento, mostrando barras de progreso, métricas por época e información adicional del entrenamiento en la consola.
single_clsboolFalseTrata todas las clases de los conjuntos de datos multiclase como una sola clase durante el entrenamiento. Resulta útil para tareas de clasificación binaria o cuando el objetivo es centrarse en la presencia de objetos en lugar de en su clasificación.
classeslist[int]NoneEspecifica una lista de ID de clase con los que se entrenará. Resulta útil para filtrar clases y centrarse únicamente en algunas durante el entrenamiento.
rectboolFalseActiva la estrategia de relleno mínimo: las imágenes de un lote reciben el relleno mínimo necesario para alcanzar un tamaño común, con el lado más largo igual a imgsz. Puede mejorar la eficiencia y la velocidad, pero afectar a la precisión del modelo.
multi_scalefloat0.0Varía aleatoriamente imgsz en cada lote en +/- multi_scale (por ejemplo, 0.25 -> 0.75x a 1.25x), redondeando a múltiplos del stride del modelo; 0.0 desactiva el entrenamiento multiescala.
cos_lrboolFalseUtiliza un planificador de la tasa de aprendizaje cosenoidal, ajustando la tasa de aprendizaje siguiendo una curva cosenoidal a lo largo de las épocas. Ayuda a gestionar la tasa de aprendizaje para lograr una mejor convergencia.
close_mosaicint10Desactiva la aumentación de datos de mosaico durante las últimas N épocas para estabilizar el entrenamiento antes de completarlo. 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 número de época, y continúa el entrenamiento sin interrupciones.
ampbool o strTrueEstablece la precisión del entrenamiento: True o "fp16" utilizan FP16, "bf16" utiliza BF16 en dispositivos CUDA compatibles, y False o "fp32" utilizan FP32.
quantizeint o strNoneConfigúralo en 8 (o "int8") para el entrenamiento consciente de la cuantización (QAT) con INT8, que ajusta los pesos con cuasi-cuantización en el bucle para que los pesos toleren la exportación a INT8. Consulta la página sobre entrenamiento consciente de la cuantización.
fractionfloat, int o list1.0Subconjunto del conjunto de datos como proporción/recuento o lista [train, val, test]. 1 significa la división completa, los enteros superiores a 1 son recuentos de imágenes, y solo la entrada de prueba opcional acepta 0/0.0 para indicar ninguno. Las listas de dos elementos mantienen la prueba completa.
profileboolFalseActiva la creación de perfiles de velocidad de ONNX y TensorRT durante el entrenamiento, lo que resulta útil para optimizar la implementación del modelo.
freezeint o listNoneCongela las primeras N capas del modelo o capas específicas por índice o nombre de módulo (23.cv2, sin el model. inicial), reduciendo el número de parámetros entrenables. Resulta útil para el ajuste fino o el aprendizaje por transferencia.
lr0float0.01Tasa de aprendizaje inicial (es decir, SGD=1E-2, Adam=1E-3). Ajustar este valor es fundamental 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 fracción de la tasa inicial = (lr0 * lrf), utilizada junto con los planificadores para ajustar la tasa de aprendizaje con el tiempo.
momentumfloat0.937Factor de momentum para SGD o beta1 para los optimizadores Adam, que influye en la incorporación de los gradientes anteriores en la actualización actual.
weight_decayfloat0.0005Término de regularización L2 que penaliza los pesos grandes para evitar el sobreajuste.
warmup_epochsfloat3.0Número de épocas de calentamiento de la tasa de aprendizaje, durante las cuales esta aumenta gradualmente desde un valor bajo hasta la tasa de aprendizaje inicial para estabilizar el entrenamiento al principio.
warmup_momentumfloat0.8Momentum inicial de la fase de calentamiento, que se ajusta gradualmente al momentum establecido durante el periodo de calentamiento.
warmup_bias_lrfloat0.1Tasa de aprendizaje de los parámetros de sesgo durante la fase de calentamiento, lo que ayuda a estabilizar el entrenamiento del modelo en las primeras épocas. Se establece automáticamente en 0.0 con el optimizer='auto' predeterminado, por lo que debes indicar explícitamente un optimizador para utilizarla.
distill_modelstrNoneRuta a un punto de control del modelo profesor (por ejemplo, yolo26x.pt) para la destilación de conocimiento. Cuando se establece, el modelo alumno se entrena con una pérdida de destilación adicional guiada por el profesor congelado.
disfloat6.0Peso de la pérdida de destilación añadida a las pérdidas de detección estándar. Los valores más altos aumentan la influencia de la guía de características del profesor.
boxfloat7.5Peso del componente de pérdida de las cajas en la función de pérdida, que influye en la importancia otorgada a la predicción precisa de las coordenadas de la caja delimitadora.
clsfloat0.5Peso de la pérdida de clasificación en la función de pérdida total, que afecta a la importancia de predecir correctamente la clase con respecto a otros componentes.
cls_pwfloat0.0Potencia de la ponderación de clases para gestionar el desequilibrio entre clases mediante la frecuencia inversa de las clases. 0.0 desactiva la ponderación de clases, mientras que 1.0 aplica la ponderación de frecuencia inversa completa. Los valores entre 0 y 1 proporcionan una ponderación parcial.
dflfloat1.5Peso del término de regresión de distancia de las cajas: pérdida focal de distribución (DFL) cuando la cabeza de detección utiliza reg_max > 1; una pérdida L1 sobre las distancias normalizadas de las cajas en YOLO26 sin DFL (reg_max: 1).
posefloat12.0Peso de la pérdida de pose en los modelos entrenados para la estimación de pose, que influye en la importancia otorgada a la predicción precisa de los puntos clave de la pose.
kobjfloat1.0Peso de la pérdida de objetividad de los puntos clave en los modelos de estimación de pose, que equilibra la confianza de detección y la precisión de la pose.
rlefloat1.0Peso de la pérdida de estimación de log-verosimilitud residual en los modelos de estimación de pose, que afecta a la precisión de la localización de los puntos clave.
anglefloat1.0Peso de la pérdida angular en los modelos obb, que afecta a la precisión de las predicciones de los ángulos de las cajas delimitadoras orientadas.
dlogfloat1.0Peso de la pérdida logarítmica invariante a la escala (SILog) en los modelos de estimación de profundidad, el término principal que determina la precisión de la profundidad.
dgradfloat0.5Peso de la pérdida de gradiente en los modelos de estimación de profundidad, que penaliza los errores en los bordes de profundidad y fomenta límites de superficie más nítidos.
dlamfloat1.0Factor de enfoque de la varianza de la pérdida SILog en los modelos de estimación de profundidad. 1.0 hace que la pérdida sea completamente invariante a la escala, mientras que 0.0 la reduce a un RMSE logarítmico simple.
nbsint64Tamaño de lote nominal para la normalización de la pérdida.
overlap_maskboolTrueDetermina si las máscaras de objetos deben combinarse en una única máscara para el entrenamiento o mantenerse separadas para cada objeto. En caso de solapamiento, la máscara más pequeña se superpone a la más grande durante la combinación.
mask_ratioint4Proporción de submuestreo de las máscaras de segmentación, que afecta a la resolución de las máscaras utilizadas durante el entrenamiento.
dropoutfloat0.0Tasa de dropout para la regularización en tareas de clasificación, que evita el sobreajuste al omitir unidades aleatoriamente durante el entrenamiento.
valboolTrueActiva la validación durante el entrenamiento, lo que permite evaluar periódicamente el rendimiento del modelo en un conjunto de datos independiente.
nmsbool, opcionalNoneSelecciona la cabeza de inferencia utilizada para la validación de épocas, la selección de puntos de control y la parada temprana. None o True utiliza uno a muchos con NMS; False utiliza la cabeza sin NMS cuando está disponible. Ambas cabezas conservan sus pérdidas de entrenamiento.
plotsboolTrueGenera y guarda gráficos de las métricas de entrenamiento y validación, así como ejemplos de predicciones, proporcionando una visión visual del rendimiento del modelo y de la evolución del aprendizaje.
compilebool o strFalseHabilita la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True"default", False → deshabilita la función, o un modo de cadena como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Si no es compatible, vuelve al modo eager y muestra una advertencia.
channels_lastboolNoneUsa el formato de memoria channels_last (NHWC) para las convoluciones durante el entrenamiento. None lo habilita automáticamente en CUDA con PyTorch 1.11 o posterior, excepto en Windows, donde se midió que es más lento. False lo deshabilita y True lo solicita explícitamente. PyTorch 1.10 y anterior, CPU y MPS siguen usando NCHW de forma predeterminada.
max_detint300Detecciones máximas por imagen durante la validación del entrenamiento. Para detect, segment, pose y OBB, el valor predeterminado de 300 aumenta hasta alcanzar el recuento de objetos etiquetados de entrenamiento o validación más alto solo cuando ese recuento supera 300; otros valores se mantienen fijos y superar el límite genera una advertencia.
Nota sobre los ajustes del tamaño del 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 entero (por ejemplo, batch=16).
  • Modo automático (60 % de memoria de la GPU): Utiliza batch=-1 para ajustar automáticamente el uso de memoria CUDA a aproximadamente el 60 %.
  • Modo automático con fracción de uso: Establece una fracción (por ejemplo, batch=0.70) para realizar el ajuste según un uso especificado de la memoria de la GPU.
  • No se ha encontrado un ajuste válido: Si ningún tamaño de lote candidato produce un perfil utilizable, AutoBatch genera un RuntimeError claro en lugar de recurrir silenciosamente a un valor predeterminado no relacionado.

Guía de entrenamiento

Ajustes de predicción#

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

Argumentos de inferencia:

ArgumentoTipoPredeterminadoDescripción
sourcestr o int o NoneNoneEspecifica el origen de los 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 transmisiones en directo. Si se omite, se registra una advertencia y el modelo recurre a los recursos de demostración integrados (ultralytics/assets o una URL de demostración para OBB). Admite una amplia variedad de formatos y fuentes, lo que permite utilizarlo de forma flexible con distintos tipos de entrada.
conffloat0.25Establece el umbral mínimo de confianza para las detecciones. Los objetos detectados con una confianza inferior a este umbral se descartarán. Ajustar este valor puede ayudar a reducir los falsos positivos.
ioufloat0.7Umbral de Intersección sobre Unión (IoU) para la Supresión no máxima (NMS). Los valores más bajos producen menos detecciones al eliminar las cajas superpuestas, lo que resulta útil para reducir duplicados.
imgszint o tuple640Objetivo del letterbox. Un entero proporciona un N×N cuadrado; una tupla proporciona (height, width). Con rect=True, el tensor real puede ser más pequeño que este objetivo debido al relleno de rectángulo mínimo. Usa rect=False para obtener un tamaño fijo. Consulta Forma fija frente a rectángulo mínimo.
rectboolTrueSi True, usa el relleno de rectángulo mínimo cuando sea posible (lotes con la misma forma y backend compatible). Si False, aplica siempre el relleno hasta imgsz completo. Consulta Forma fija frente a rectángulo mínimo.
quantizeint o strNonePrecisión de inferencia: 16/"fp16" y 32/"fp32"/sin definir seleccionan cálculo FP16 o FP32 para modelos de PyTorch y TorchScript; otros formatos calculan con la precisión que seleccionan su artefacto y su motor de ejecución. En 16, OpenVINO sigue redondeando la entrada a FP16 en el cliente y la vuelve a ampliar a FP32, sin cambiar aquello con lo que calcula el motor de ejecución. La cuantización INT8/PTQ se configura durante la exportación y luego se utiliza cargando el modelo exportado. Reemplaza al indicador obsoleto half.
devicestrNoneEspecifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0, 0, npu o npu:0). Permite seleccionar entre la CPU, una GPU específica, la NPU Huawei Ascend u otros dispositivos de cálculo para ejecutar el modelo.
dnnboolFalseSi True, usa el módulo DNN de OpenCV en lugar de ONNX Runtime para la inferencia de modelos ONNX.
datastrNoneRuta a un YAML de conjunto de datos (por ejemplo, coco8.yaml) que se lee únicamente para obtener su names, y solo cuando el modelo cargado no contiene nombres de clase propios: una exportación de terceros o una exportación de Ultralytics separada de los metadatos con los que se distribuye. De lo contrario, dicho modelo muestra class0, class1, etc.
batchint1Especifica el tamaño del lote para la inferencia (solo funciona cuando el origen es un directorio, un archivo de vídeo o un archivo .txt). Un tamaño de lote mayor puede proporcionar un rendimiento superior y reducir el tiempo total necesario para la inferencia.
max_detint300Número máximo de detecciones permitido por imagen. Limita el número total de objetos que el modelo puede detectar en una sola inferencia, evitando salidas excesivas en escenas densas.
vid_strideint1Salto de fotogramas para entradas de vídeo. Permite omitir fotogramas en los vídeos para acelerar el procesamiento, a costa de la resolución temporal. Un valor de 1 procesa todos los fotogramas; los valores superiores omiten fotogramas.
stream_bufferboolFalseDetermina si se ponen en cola los fotogramas entrantes de los streams de vídeo. Si False, se descartan los fotogramas antiguos para dar cabida a los nuevos (optimizado para aplicaciones en tiempo real). Si True, los fotogramas nuevos se guardan en un búfer, lo que garantiza que no se omita ninguno, pero provoca latencia si los FPS de inferencia son inferiores a los FPS del stream.
visualizeboolFalseGuarda un mapa de calor de activación de clase junto a cada predicción, mostrando qué píxeles elevaron las puntuaciones de la clase predicha. Respeta conf y classes, por lo que classes=[0] asigna el mapa únicamente a esa clase. Solo está disponible para modelos de PyTorch de Ultralytics.
augmentboolFalseActiva la aumentación en tiempo de prueba (TTA) para las predicciones, lo que puede mejorar la robustez de la detección a costa de la velocidad de inferencia. Solo está disponible para modelos de PyTorch de Ultralytics.
agnostic_nmsboolFalseHabilita la supresión no máxima independiente de la clase (NMS), suprimiendo las cajas superpuestas con puntuaciones más bajas entre diferentes clases en lugar de solo dentro de la misma clase. Es útil en escenarios de detección multiclase donde la superposición de clases es común. Con la inferencia sin NMS (nms=False en YOLO26 o YOLOv10), esto solo evita que la misma detección aparezca con múltiples etiquetas de clase (duplicados con IoU=1.0) y no realiza la supresión basada en el umbral de IoU entre cajas distintas.
classeslist[int]NoneFiltra las predicciones según un conjunto de ID de clase. Solo se devolverán las detecciones pertenecientes a las clases especificadas. Resulta útil para centrarse en los objetos relevantes en tareas de detección multiclase.
retina_masksboolFalseDevuelve máscaras de segmentación de alta resolución. Si está activado, las máscaras devueltas (masks.data) coincidirán con el tamaño de la imagen original. Si está desactivado, tendrán el tamaño de imagen utilizado durante la inferencia.
embedlist[int]NoneEspecifica las capas de las que se extraerán vectores de características o embeddings. Usa model.embed(source) para los embeddings de la penúltima capa, o model.predict(source, embed=[layer]) para seleccionar capas concretas. Resulta útil para tareas posteriores, como la agrupación o la búsqueda por similitud. Solo está disponible para modelos de PyTorch de Ultralytics.
projectstrNoneNombre del directorio del proyecto donde se guardan las salidas de predicción si save está activado.
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á activado.
streamboolFalseActiva un procesamiento eficiente en memoria para vídeos largos o numerosas imágenes, devolviendo un generador de objetos Results en lugar de cargar todos los fotogramas en memoria a la vez.
verboseboolTrueControla si se muestran registros detallados de inferencia 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 → deshabilita la función, o un modo de cadena como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Si no es compatible, vuelve al modo eager y muestra una advertencia.
channels_lastboolNoneUsa el formato de memoria channels_last (NHWC) para la inferencia nativa de PyTorch. None lo activa automáticamente en CPU x86 con Linux y Windows que tengan oneDNN habilitado y PyTorch 1.13 o posterior; False lo desactiva; y True lo solicita en CPU x86 o dispositivos CUDA compatibles. ARM64, MPS, versiones antiguas de PyTorch, CPU sin oneDNN y formatos exportados como TensorRT y ONNX no se modifican.
nmsbool, opcionalNoneEjecuta la inferencia de uno a muchos con NMS por defecto (None o True). Configura False para utilizar la cabeza de uno a uno sin NMS cuando esté disponible. Consulta la guía de detección de extremo a extremo para obtener más detalles.

Argumentos de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener información visual inmediata durante el desarrollo o las pruebas.
saveboolFalse or TrueActiva el guardado de las imágenes o vídeos anotados en archivos. Resulta útil para documentar, analizar posteriormente o compartir resultados. De forma predeterminada, es True al utilizar la CLI y False al utilizar Python.
save_framesboolFalseAl procesar vídeos, guarda los fotogramas individuales como imágenes. Resulta útil para extraer fotogramas concretos o realizar 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]. Resulta útil para integrarlos con otras herramientas de análisis.
save_confboolFalseIncluye las puntuaciones de confianza en los archivos de texto guardados. Aumenta el nivel de detalle disponible para el posprocesamiento y el análisis.
save_cropboolFalseGuarda imágenes recortadas de las detecciones. Resulta útil para aumentar conjuntos de datos, realizar análisis o crear conjuntos centrados en objetos concretos.
show_labelsboolTrueMuestra las etiquetas de cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados.
show_confboolTrueMuestra la puntuación de confianza de cada detección junto a su etiqueta. Permite conocer el grado de certeza del modelo para cada detección.
show_boxesboolTrueDibuja cuadros delimitadores 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 las cajas delimitadoras. Si None, el ancho de línea se ajusta automáticamente según el tamaño de la imagen. Permite personalizar la visualización para mejorar la claridad.

Guía de predicción

Configuración de validación#

La configuración de validación de los modelos YOLO incluye hiperparámetros y ajustes para evaluar el rendimiento en un conjunto de datos de validación. Estos ajustes influyen en el rendimiento, la velocidad y la precisión. Entre los ajustes habituales se 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 YAML del conjunto de datos (por ejemplo, coco8.yaml), que debe incluir la ruta a los datos de validación. En clasificación, se indica un directorio de conjunto de datos o el nombre de un conjunto de datos integrado (por ejemplo, imagenet10).
imgszint640Define el tamaño de las imágenes de entrada. Todas las imágenes se redimensionan a estas dimensiones antes del procesamiento. Los tamaños más grandes pueden mejorar la precisión con objetos pequeños, pero aumentan el tiempo de cálculo.
batchint16Establece el número de imágenes por lote. Los valores más altos utilizan la memoria de la GPU de forma más eficiente, pero requieren más VRAM. Ajústalo según los recursos de hardware disponibles.
save_jsonboolFalseSi True, guarda los resultados en un archivo JSON para su posterior análisis, integración con otras herramientas o envío a servidores de evaluación como COCO. En conjuntos de datos de detección, también evalúa las predicciones con faster-coco-eval e informa el mAP de objetos pequeños, medianos y grandes, registrado durante el entrenamiento como metrics/mAP_small(B), metrics/mAP_medium(B) y metrics/mAP_large(B) en results.csv.
conffloat0.001Establece el umbral mínimo de confianza para las detecciones. Los valores más bajos aumentan la exhaustividad, pero pueden introducir más falsos positivos. Las curvas de precisión-exhaustividad usan 0.001 de forma predeterminada; las matrices de confusión de detección usan un valor explícito conf, o 0.25 cuando se omite. La precisión y la exhaustividad resumidas usan la confianza del F1 máximo, por lo que pueden diferir de los valores derivados de confusion_matrix.png. El valor predeterminado es 0.01 para la validación de OBB con el fin de reducir el uso de memoria.
ioufloat0.7Establece el umbral de intersección sobre unión para la supresión no máxima. Controla la eliminación de detecciones duplicadas.
max_detint300Limita el número máximo de detecciones por imagen. Para detect, segment, pose y OBB, si se deja en 300, este valor se eleva al mayor recuento de objetos etiquetados en la división validada cuando una imagen lo supera, acompañado de una advertencia; cualquier otro valor se mantiene, con la advertencia de que la recuperación puede verse limitada cuando una imagen lo supera.
quantizeint o strNonePrecisión de validación: 16/"fp16" y 32/"fp32"/sin definir seleccionan cálculo FP16 o FP32 para modelos de PyTorch y TorchScript; otros formatos calculan con la precisión que seleccionan su artefacto y su motor de ejecución. En 16, OpenVINO sigue redondeando la entrada a FP16 en el cliente y la vuelve a ampliar a FP32, sin cambiar aquello con lo que calcula el motor de ejecución. La cuantización INT8/PTQ se configura durante la exportación y luego se utiliza validando el modelo exportado. Reemplaza al indicador obsoleto half.
devicestrNoneEspecifica el dispositivo para la validación (cpu, cuda:0, npu, npu:0, etc.). Cuando se establece en None, selecciona automáticamente el mejor dispositivo disponible. Se pueden especificar varios dispositivos CUDA separándolos mediante comas.
dnnboolFalseSi True, utiliza el módulo DNN de OpenCV para la inferencia de modelos ONNX, como alternativa a los métodos de inferencia de PyTorch.
plotsboolTrueCuando se establece en True, genera y guarda gráficos de las predicciones frente a la verdad fundamental, matrices de confusión y curvas PR para evaluar visualmente el rendimiento del modelo.
classeslist[int]NoneEspecifica una lista de identificadores de clase que se evaluarán. Es útil para filtrar y centrarse únicamente en determinadas clases durante la evaluación.
rectboolTrueSi True, utiliza inferencia rectangular para el procesamiento por lotes, reduciendo el relleno y aumentando potencialmente la velocidad y la eficiencia al procesar las imágenes con su relación de aspecto original. Se ignora en la validación de depth, que ajusta cada imagen a un cuadrado fijo de imgsz en lugar de añadir relleno.
splitstr'val'Determina la partición del conjunto de datos que se usará para la validación (val, test o train). Permite elegir con flexibilidad el segmento de datos para evaluar el rendimiento.
fractionfloat, int o list1.0Subconjunto de la partición validada. Con una lista [train, val, test], se aplica la entrada que coincide con split (1 = partición completa, enteros superiores a 1 = recuentos de imágenes; las entradas omitidas son completas). Un escalar solo se aplica con split=train; val y test utilizan entonces la partición completa.
projectstrNoneNombre del directorio del proyecto donde se guardan las salidas de validación. Ayuda a organizar los resultados de distintos 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 las salidas de 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 y datos adicionales de depuración.
save_txtboolFalseSi True, guarda los resultados de detección en archivos de texto, uno por imagen, lo que resulta útil para análisis posteriores, posprocesamiento personalizado o integración con otros sistemas.
save_confboolFalseSi True, incluye los valores de confianza en los archivos de texto guardados cuando save_txt está habilitado, proporcionando resultados más detallados para el análisis y el filtrado.
workersint8Número de subprocesos de trabajo para la carga de datos. Los valores más altos pueden acelerar el preprocesamiento de datos, pero pueden aumentar el uso de la CPU. Establecerlo en 0 utiliza el subproceso principal, lo que puede ser más estable en algunos entornos.
augmentboolFalseHabilita el aumento en tiempo de prueba (TTA) durante la validación, lo que puede mejorar la precisión de detección a costa de la velocidad de inferencia al ejecutar la inferencia sobre versiones transformadas de la entrada. Solo está disponible para modelos de PyTorch de Ultralytics.
agnostic_nmsboolFalseHabilita la supresión no máxima independiente de la clase, suprimiendo las cajas superpuestas con puntuaciones más bajas independientemente de su clase predicha. Es útil para aplicaciones centradas en instancias. Con la inferencia sin NMS (nms=False en YOLO26 o YOLOv10), esto solo evita que la misma detección aparezca con múltiples etiquetas de clase (duplicados con IoU=1.0) y no realiza la supresión basada en el umbral de IoU entre cajas distintas.
single_clsboolFalseTrata todas las clases como una sola clase durante la validación. Es útil para evaluar el rendimiento del modelo en tareas de detección binaria o cuando las distinciones entre clases no son importantes.
visualizeboolFalseVisualiza la verdad fundamental, los verdaderos positivos, los falsos positivos y los falsos negativos de cada imagen. Es útil para depurar e interpretar el modelo.
show_labelsboolTrueMuestra las etiquetas de clase en las visualizaciones de validación cuando visualize=True. Establécelo en False para obtener una vista más limpia de las coincidencias y los errores.
show_confboolTrueMuestra las puntuaciones de confianza en las visualizaciones de validación cuando visualize=True. Establécelo en False para obtener una vista más limpia de las coincidencias y los errores.
compilebool o strFalseHabilita la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True"default", False → deshabilita la función, o un modo de cadena como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Si no es compatible, vuelve al modo eager y muestra una advertencia.
channels_lastboolNoneUtiliza el formato de memoria channels_last (NHWC) para la validación nativa de PyTorch. None lo habilita automáticamente en CPU x86 con Linux y Windows que tengan oneDNN habilitado y PyTorch 1.13 o posterior; False lo deshabilita y True lo solicita en dispositivos CPU x86 o CUDA compatibles. ARM64, MPS, las versiones antiguas de PyTorch, las CPU sin oneDNN y los formatos exportados no cambian; la validación durante el entrenamiento mantiene la disposición del modelo de entrenamiento.
nmsbool, opcionalNoneEjecuta la inferencia de uno a muchos con NMS por defecto (None o True). Configura False para utilizar la cabeza de uno a uno sin NMS cuando esté disponible. Consulta la guía de detección de extremo a extremo para obtener más detalles.

Un ajuste y una experimentación cuidadosos son fundamentales para garantizar un rendimiento óptimo y detectar y prevenir el sobreajuste.

Guía de validación

Configuración de exportación#

La configuración de exportación de los modelos YOLO incluye opciones para guardar o exportar el modelo y utilizarlo en distintos entornos. Estos ajustes afectan al rendimiento, el tamaño y la compatibilidad. Entre los ajustes clave se incluyen el formato de archivo exportado (por ejemplo, ONNX o TensorFlow SavedModel), el dispositivo de destino (por ejemplo, CPU o GPU) y funciones como las máscaras. La tarea del modelo y las limitaciones del entorno de destino también afectan al proceso de exportación.

ArgumentoTipoPredeterminadoDescripción
formatstr'torchscript'Formato de destino del modelo exportado, como 'onnx', 'torchscript', 'engine' (TensorRT) u otros. Cada formato permite la compatibilidad con distintos entornos de despliegue.
namestrNoneNombre del destino de hardware para los formatos que lo requieren: arquitectura Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; el valor predeterminado es 'hailo8l'), chip Rockchip RKNN (el valor predeterminado es 'rk3588'), SoC Huawei Ascend (un --soc_version de CANN; el valor predeterminado es 'Ascend310B4') o destino Qualcomm QNN HTP (el valor predeterminado es '73'). Es distinto del par project/name utilizado para nombrar ejecuciones en otros modos.
imgszint o tuple640Tamaño de imagen deseado para la entrada del modelo. Puede ser un entero para imágenes cuadradas (por ejemplo, 640 para 640×640) o una tupla (height, width) para dimensiones específicas. Si no se indica, la exportación reutiliza el tamaño de entrenamiento registrado en el checkpoint cargado: los checkpoints oficiales de YOLO26 registran 768 para profundidad, 224 para clasificación, 1024 para OBB y 640 para las demás tareas, mientras que un ajuste fino registra el imgsz con el que se entrenó. Un modelo creado a partir de un YAML no tiene un tamaño de entrenamiento registrado y usa 640.
kerasboolFalseActiva la exportación al formato Keras para TensorFlow SavedModel, proporcionando compatibilidad con TensorFlow Serving y sus API.
optimizeboolFalseActiva una optimización superior del compilador para DEEPX, reduciendo la latencia de inferencia y aumentando el tiempo de compilación.
quantizeint o strNonePrecisión de cuantización: 16 (FP16, reduce el tamaño del modelo y puede acelerar la inferencia en hardware compatible) o 8 (INT8/PTQ, comprime aún más el modelo con una pérdida mínima de accuracy, principalmente para edge devices; necesita calibración data/fraction); 32/sin configurar es FP32. Un punto de control entrenado con quantize=8 siempre exporta INT8: onnx y engine se exportan desde los rangos que transporta sin calibración, y se rechazan otros formatos o precisiones. Los formatos de exportación que admiten precisión mixta de pesos y activaciones también aceptan la notación 'w8a8'/'w16a16'/'w8a16'/'w8a32'. Sustituye las banderas obsoletas half/int8 (half=True16, int8=True8, que todavía se aceptan con una advertencia de obsolescencia). Solo se permiten las precisiones compatibles con el formato de destino (véase más abajo).
dynamicboolFalsePermite tamaños de entrada dinámicos en las exportaciones a TorchScript, ONNX, OpenVINO, TensorRT y CoreML, lo que mejora la flexibilidad para gestionar distintas dimensiones de imagen.
simplifyboolTrueSimplifica el grafo intermedio de ONNX con onnxslim para las exportaciones que generan uno (consulta Formatos de exportación), lo que puede mejorar el rendimiento y la compatibilidad con los motores de inferencia.
opsetintNoneEspecifica la versión del opset de ONNX para las exportaciones que generan un grafo ONNX (consulta Formatos de exportación), para garantizar la compatibilidad con distintos analizadores y runtimes de ONNX. Si no se establece, usa 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 que TensorRT asigne automáticamente hasta el máximo del dispositivo.
nmsbool, opcionalNoneNone exporta predicciones brutas de uno a muchos para NMS externo; True incrusta NMS donde sea compatible; False selecciona la cabeza sin NMS cuando está disponible. El NMS incrustado de CoreML es compatible con la detección, la segmentación y la estimación de poses con formas estáticas. Consulta la guía de detección de extremo a extremo.
conffloatNoneUmbral de confianza utilizado siempre que se genera NMS durante la exportación: exportaciones nms=True; exportaciones de detección de Hailo que no son de extremo a extremo; y exportaciones de detección, pose y segmentación de IMX, que fuerzan internamente nms=True. Si no se establece, el valor predeterminado es 0.25.
ioufloat0.7Umbral de IoU utilizado siempre que se genera NMS durante la exportación: exportaciones nms=True; exportaciones de detección de Hailo que no son de extremo a extremo; y exportaciones de detección, pose y segmentación de IMX, que fuerzan internamente nms=True.
max_detint300Número máximo de detecciones conservadas en la salida del modelo exportado. Se aplica a las exportaciones de nms=True en todos los formatos excepto a la detección de CoreML, cuya canalización NMS nativa no tiene límite de detecciones, además de las exportaciones de detección de extremo a extremo sin NMS (YOLO26, YOLOv10, limitadas al número de anclajes disponibles) y las exportaciones de detección, pose y segmentación de IMX.
agnostic_nmsboolFalseActiva la NMS independiente de la clase siempre que se genere NMS durante la exportación mediante el flujo estándar nms=True, incluida la propia fase de NMS de CoreML, suprimiendo las cajas superpuestas con menor puntuación entre clases diferentes, en lugar de hacerlo únicamente dentro de la misma clase. Hailo e IMX no respetan esta opción en sus propias configuraciones de NMS generadas, ya que no disponen de una opción independiente de la clase y siguen teniendo en cuenta la clase independientemente de esta marca. También se incorpora a las exportaciones de extremo a extremo sin NMS (YOLO26, YOLOv10), donde solo evita que la misma detección aparezca con varias etiquetas de clase (duplicados con IoU=1.0), pero no suprime cajas distintas según el umbral de IoU.
batchint1Especifica el tamaño del lote de inferencia del modelo exportado o el número máximo de imágenes que procesará simultáneamente el modelo exportado en el modo predict. En las exportaciones para Edge TPU, 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), NPU Huawei Ascend (device=npu o device=npu:0) o DLA para NVIDIA Jetson (device=dla:0 o device=dla:1). Las exportaciones a TensorRT usan automáticamente la GPU, pero TensorRT 11.0 no es compatible con DLA.
verboseboolFalseEleva el registro del compilador de TensorRT al nivel de gravedad VERBOSE durante la exportación format='engine'. Los demás formatos de exportación lo ignoran.
datastrNoneRuta al YAML del dataset, esencial para la calibración de cuantización INT8; la clasificación en su lugar toma un directorio de conjuntos de datos o el nombre de un conjunto de datos integrado. Si no se especifica con INT8 habilitado, Ultralytics selecciona un conjunto de datos de calibración específico para la tarea cuando es necesario, o recurre al conjunto de datos predeterminado para la tarea del modelo. Un punto de control entrenado con quantize=8 transporta sus propios rangos INT8 y no necesita datos de calibración.
splitstr'val'División del conjunto de datos ('train', 'val' o 'test') utilizada para crear el cargador de datos de calibración de cuantización INT8 a partir de data.
fractionfloat, int o list1.0Subconjunto del conjunto de datos utilizado para la calibración INT8: una proporción, un número de imágenes o valores [train, val, test]. 1 indica la división completa; los enteros superiores a 1 indican cantidades de imágenes; y solo la entrada de prueba opcional acepta 0/0.0 para indicar ninguno. Las listas de dos elementos dejan test completo.

Una configuración bien planteada 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

Configuración de Solutions#

La configuración de Ultralytics Solutions ofrece flexibilidad para personalizar modelos para tareas como el recuento de objetos, la creación de mapas de calor, el seguimiento de entrenamientos, el análisis de datos, el seguimiento de zonas, la gestión de colas y el recuento por regiones. Estas opciones permiten realizar ajustes fácilmente para obtener resultados precisos y útiles adaptados a necesidades específicas.

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta al archivo del modelo YOLO de Ultralytics.
regionlist o dictNonePuntos que definen la región de interés, ya sea una lista de tuplas (x, y) o un diccionario que asigne nombres de región a listas de puntos para varias regiones (solo RegionCounter). Cuando None, las soluciones que requieren una región recurren a una región predeterminada.
show_inboolTrueIndicador que controla si se muestran los recuentos de entradas en la secuencia de vídeo.
show_outboolTrueIndicador que controla si se muestran los recuentos de salidas en la secuencia de vídeo.
analytics_typestr'line'Tipo de gráfico, es decir, line, bar, area o pie.
colormapintcv2.COLORMAP_DEEPGREENMapa de colores que se utilizará para el mapa de calor.
line_widthint2Grosor de línea de las cajas, los puntos clave y los recuentos que dibuja la solución.
verboseboolTrueActiva el registro por fotograma de la solución, que incluye la forma de entrada, los recuentos de clases y la velocidad de procesamiento. La llamada de seguimiento en sí siempre es silenciosa.
json_filestrNoneRuta al archivo JSON que contiene todos los datos de coordenadas de las plazas de aparcamiento.
up_anglefloat145.0Umbral de ángulo para la pose «arriba».
kptslist[int]'[6, 8, 10]'Lista de tres índices de puntos clave utilizados para supervisar 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 donde se almacenan las detecciones recortadas.
recordsint5Número total de detecciones necesario para activar un correo electrónico con el sistema de alarma de seguridad.
vision_pointtuple[int, int](20, 20)Punto en el que la solución VisionEye seguirá los objetos y dibujará las trayectorias.
sourcestrNoneRuta a la fuente de entrada (vídeo, RTSP, etc.). Solo se puede utilizar con la interfaz de línea de comandos de Solutions (CLI).
figsizetuple[float, float](12.8, 7.2)Tamaño de las figuras para gráficos analíticos, como mapas de calor o gráficos.
fpsfloat30.0Fotogramas por segundo utilizados para los cálculos de velocidad.
max_histint5Número máximo de puntos históricos que se seguirán por objeto para calcular la velocidad y la dirección.
meter_per_pixelfloat0.05Factor de escala utilizado para convertir la distancia en píxeles a unidades del mundo real.
max_speedint120Límite máximo de velocidad en las superposiciones visuales (utilizado en las 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

Configuración de aumentación#

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

ArgumentoTipoPredeterminadoTareas compatiblesRangoDescripción
hsv_hfloat0.015detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Ajusta el tono de la imagen en una fracción de la rueda de color, introduciendo variabilidad cromática. Ayuda al modelo a generalizar en distintas condiciones de iluminación. Para classify, solo se aplica cuando auto_augment=None.
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Modifica la saturación de la imagen en una fracción, afectando a la intensidad de los colores. Resulta útil para simular distintas condiciones ambientales. Para classify, solo se aplica cuando auto_augment=None.
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Modifica el valor (brillo) de la imagen en una fracción, ayudando al modelo a funcionar correctamente en distintas condiciones de iluminación. Para classify, solo se aplica cuando auto_augment=None.
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180Gira la imagen aleatoriamente dentro del intervalo de grados especificado, mejorando la capacidad del modelo para reconocer objetos con distintas orientaciones.
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0Traslada la imagen horizontal y verticalmente en una fracción de su tamaño, ayudando al modelo a aprender a detectar objetos parcialmente visibles.
scalefloat | tuple0.5detect, segment, semantic, depth, classify, pose, obb0 - 1 o una tupla (min, max) explícita (no para classify)Escala la imagen mediante un factor de ganancia, simulando objetos situados a distintas distancias de la cámara.
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180Inclina la imagen en el grado especificado, imitando el efecto de observar objetos desde distintos ángulos.
perspectivefloat0detect, segment, semantic, depth, pose, obb0.0 - 0.001Aplica una transformación de perspectiva aleatoria a la imagen, mejorando la capacidad del modelo para comprender objetos en un espacio 3D.
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Voltea la imagen al revés con la probabilidad especificada, aumentando la variabilidad de los datos sin afectar a las características del objeto.
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Voltea la imagen de izquierda a derecha con la probabilidad especificada, lo que resulta útil para aprender objetos simétricos y aumentar la diversidad del conjunto de datos.
bgrfloat0detect, segment, semantic, depth, pose, obb0.0 - 1.0Cambia los canales de la imagen de RGB a BGR con la probabilidad especificada, lo que resulta útil para aumentar la robustez frente a un orden incorrecto de los canales.
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.0Combina cuatro imágenes de entrenamiento en una, simulando distintas composiciones de escena e interacciones entre objetos. Es muy eficaz para comprender escenas complejas.
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.0Combina dos imágenes y sus etiquetas para crear una imagen compuesta. Mejora la capacidad de generalización del modelo al introducir ruido en las etiquetas y variabilidad visual.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Combina partes de dos imágenes para crear una mezcla parcial manteniendo regiones diferenciadas. Mejora la robustez del modelo al crear escenarios de oclusión.
copy_pastefloat0segment, obb0.0 - 1.0Fracción de objetos aptos que se pegan; flip los refleja dentro de la imagen, mientras que mixup también utiliza el valor como probabilidad de aplicación entre imágenes.
copy_paste_modestrflipsegment, obb-Especifica la estrategia copy-paste que se utilizará. Las opciones incluyen 'flip' y 'mixup'.
auto_augmentstrrandaugmentclassify-Aplica una política de aumentación predefinida ('randaugment', 'autoaugment' o 'augmix') para mejorar el rendimiento del modelo mediante diversidad visual.
erasingfloat0.4classify0.0 - 1.0Borra aleatoriamente regiones de la imagen durante el entrenamiento para animar al modelo a centrarse en características menos evidentes.
augmentationslistNonedetect, segment, semantic, depth, pose, obb-Transformaciones personalizadas de Albumentations para una aumentación de datos avanzada (solo API de Python). Acepta una lista de objetos de transformación para necesidades de aumentación especializadas.

Ajusta estas opciones para satisfacer los requisitos del conjunto de datos y la tarea. Experimentar con distintos valores puede ayudar a encontrar la estrategia de aumentación óptima para obtener el mejor rendimiento del modelo.

Guía de aumento de datos

Configuración de registros, checkpoints y gráficos#

Los registros, los checkpoints, los gráficos y la gestión de archivos son importantes al entrenar un modelo YOLO:

  • Registros: realiza un seguimiento del progreso del modelo y diagnostica problemas mediante bibliotecas como TensorBoard o escribiendo en un archivo.
  • Checkpoints: guarda el modelo a intervalos regulares para reanudar el entrenamiento o experimentar con distintas configuraciones.
  • Gráficos: visualiza el rendimiento y el progreso del entrenamiento mediante bibliotecas como Matplotlib o TensorBoard.
  • Gestión de archivos: organiza los archivos generados durante el entrenamiento, como checkpoints, archivos de registro y gráficos, para facilitar el acceso y el análisis.

Una 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 independiente.
nameNoneDefine el nombre del experimento. Si no se especifica, YOLO utiliza el nombre del modo y lo incrementa en cada ejecución (por ejemplo, train, train-2) para evitar sobrescrituras.
exist_okFalseDetermina si se debe sobrescribir un directorio de experimento existente. True permite sobrescribirlo; False lo impide.
plotsTrueControla la generación y el guardado de gráficos de entrenamiento y validación. Establécelo en True para crear gráficos como curvas de pérdida, curvas de precisión-recall y predicciones de muestra para realizar un seguimiento visual del rendimiento.
saveTruePermite guardar los checkpoints de entrenamiento y los pesos finales del modelo. Establécelo en True para guardar periódicamente los estados del modelo, lo que permite reanudar el entrenamiento o desplegar el modelo.

Archivo de configuración personalizado#

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

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

Preguntas frecuentes#

  • Mejora el rendimiento ajustando hiperparámetros como el tamaño de lote, la tasa de aprendizaje, el momentum y la decaída de pesos. Ajusta la configuración de aumento de datos, selecciona el optimizador adecuado y utiliza técnicas como la detención temprana o la precisión mixta. Para obtener más información, consulta la Guía de entrenamiento.

  • Entre los hiperparámetros clave que afectan a la precisión se incluyen:

    • Tamaño de lote (batch): Los tamaños más grandes pueden estabilizar el entrenamiento, pero necesitan más memoria.
    • Tasa de aprendizaje (lr0): Las tasas más pequeñas permiten ajustes más precisos, pero ralentizan la convergencia.
    • Momentum (momentum): Acelera los vectores de gradiente y amortigua las oscilaciones.
    • Tamaño de imagen (imgsz): Los tamaños más grandes mejoran la precisión, pero aumentan la carga computacional.

    Ajusta estos valores en función de tu conjunto de datos y tu hardware. Obtén más información en Configuración de entrenamiento.

  • La tasa de aprendizaje (lr0) es fundamental; empieza con 0.01 para SGD o con 0.001 para el optimizador Adam. Supervisa las métricas y ajústala según sea necesario. Utiliza planificadores de la tasa de aprendizaje coseno (cos_lr) o un calentamiento (warmup_epochs, warmup_momentum). Encontrarás más información en la Guía de entrenamiento.

  • Los ajustes predeterminados incluyen:

    • Umbral de confianza (conf=0.25): Confianza mínima para las detecciones.
    • Umbral de IoU (iou=0.7): Se utiliza para la supresión de no máximos (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 NPU Huawei Ascend (npu).

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

  • El entrenamiento con precisión mixta (amp=True) reduce el uso de memoria y acelera el entrenamiento mediante FP16 y FP32. Resulta beneficioso para las GPU modernas, ya que permite utilizar modelos más grandes y realizar 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