Configuración#
La configuración y los hiperparámetros de YOLO son fundamentales para el rendimiento, la velocidad y la precisión del modelo. Estos ajustes pueden afectar al comportamiento del modelo en distintas etapas, como el entrenamiento, la validación y la predicción.
Ver: Domina Ultralytics YOLO: configuración
Los comandos de Ultralytics usan la sintaxis siguiente:
yolo TASK MODE ARGSDonde:
TASK(opcional) es uno de (detectar, segmentar, semántica, profundidad, clasificar, pose, obb)MODE(obligatorio) es uno de (entrenar, val, predecir, exportar, seguir, benchmark)ARGS(opcional) son paresarg=valuecomoimgsz=640que anulan los valores predeterminados.
Los valores predeterminados de ARG se definen en esta página y proceden del archivo cfg/default.yaml.
Tareas#
Los modelos Ultralytics YOLO pueden realizar diversas tareas de visión artificial, entre ellas:
- Detectar: la detección de objetos identifica y localiza objetos en una imagen o un vídeo.
- Segmentar: la segmentación de instancias divide una imagen o un vídeo en regiones correspondientes a distintos objetos o clases.
- Segmentación semántica (
semantic): la segmentación semántica asigna una etiqueta de clase a cada píxel de una imagen para comprender la escena de forma densa. - Profundidad (
depth): la estimación monocular de profundidad predice un mapa de profundidad por píxel, en metros, a partir de una única imagen RGB. - Clasificar: la clasificación de imágenes predice la etiqueta de clase de una imagen de entrada.
- Pose: la estimación de pose identifica objetos y estima sus puntos clave en una imagen o un vídeo.
- OBB: los cuadros delimitadores orientados usan cuadros delimitadores girados, adecuados para imágenes por satélite o médicas.
| Argumento | Predeterminado | Descripció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 los cuadros delimitadores orientados. Cada tarea está adaptada a resultados y problemas específicos del análisis de imágenes y vídeos. |
Modos#
Los modelos Ultralytics YOLO funcionan en distintos modos, cada uno diseñado para una etapa 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: Usa un modelo YOLO entrenado para hacer predicciones sobre imágenes o vídeos nuevos.
- Export: Exporta un modelo YOLO para su implementación.
- Track: Rastrea objetos en tiempo real con un modelo YOLO.
- Benchmark: Evalúa la velocidad y la precisión de las exportaciones de YOLO (ONNX, TensorRT, etc.).
| Argumento | Predeterminado | Descripció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 convertirlo a formatos de implementación, track para el seguimiento de objetos y benchmark para evaluar el rendimiento. Cada modo admite distintas etapas, desde el desarrollo hasta la implementación. |
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 clave se encuentran el tamaño del lote, la tasa de aprendizaje, el momentum y la disminució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.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Especifica el archivo del modelo para el entrenamiento. Acepta la ruta a un modelo preentrenado .pt o a un archivo de configuración .yaml. Es esencial para definir la estructura del modelo o inicializar los pesos. |
data | str | None | Ruta al YAML del conjunto de datos (p. ej., 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. Para la clasificación, se usa en su lugar un directorio del conjunto de datos o el nombre de un conjunto de datos integrado (p. ej., imagenet10). |
epochs | int | 100 | Número total de épocas de entrenamiento. Cada época 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. |
time | float | None | Duración máxima del entrenamiento en horas. Si se establece, prevalece sobre el argumento epochs y permite que el entrenamiento se detenga automáticamente al cumplirse el tiempo especificado. Es útil cuando el tiempo de entrenamiento es limitado. |
patience | int | 100 | Número de épocas que se espera sin mejoras en las métricas de validación antes de detener el entrenamiento de forma anticipada. Ayuda a evitar el sobreajuste deteniendo el entrenamiento cuando el rendimiento se estabiliza. |
batch | int o float | 16 | Tamaño del lote, con tres modos: establecer un entero (p. ej., batch=16), usar el modo automático con un 60 % de utilización de la memoria de la GPU (batch=-1) o el modo automático con una fracción de utilización especificada (batch=0.70). |
imgsz | int | 640 | Tamaño objetivo de las imágenes para el entrenamiento. Las imágenes se redimensionan a cuadrados cuyos lados tienen el valor especificado (si rect=False); los modelos YOLO conservan la relación de aspecto, pero RT-DETR no. Afecta a la precisión del modelo y a la complejidad computacional. |
save | bool | True | Activa el guardado de los puntos de control del entrenamiento y de los pesos finales del modelo. Es útil para reanudar el entrenamiento o para la implementación del modelo. |
save_period | int | -1 | Frecuencia de guardado de los puntos de control del modelo, especificada en épocas. Un valor de -1 desactiva esta función. Es útil para guardar modelos intermedios durante sesiones de entrenamiento largas. |
cache | bool o str | False | Activa el almacenamiento en caché de las imágenes del conjunto de datos en memoria (True/ram), en disco (disk) o lo desactiva (False). Aumenta la velocidad del entrenamiento al reducir las operaciones de E/S de disco, a costa de un mayor uso de memoria. |
device | int o str o list | None | Especifica el dispositivo o los dispositivos de cálculo para el entrenamiento: una sola 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), Intel XPU (device=xpu:0), selección automática de una GPU inactiva (device=-1) o de varias GPU inactivas (device=[-1,-1]). |
workers | int | 8 | Número de hilos de trabajo para cargar datos (por cada RANK si se entrena con varias GPU). Influye en la velocidad del preprocesamiento de datos y de su suministro al modelo; resulta especialmente útil en configuraciones con varias GPU. |
project | str | None | Nombre del directorio del proyecto donde se guardan los resultados del entrenamiento. Permite organizar el almacenamiento de distintos experimentos. |
name | str | None | Nombre de la ejecución de entrenamiento. Se usa para crear un subdirectorio dentro de la carpeta del proyecto donde se almacenan los registros y los resultados del entrenamiento. |
exist_ok | bool | False | Si es True, permite sobrescribir un directorio de proyecto/nombre existente. Es útil para experimentar de forma iterativa sin tener que eliminar manualmente los resultados anteriores. |
save_dir | str | None | Especifica el directorio exacto donde se guardan los resultados de la ejecución y prevalece sobre la combinación project/name. La ruta se usa tal cual, sin incrementar automáticamente el nombre; por tanto, las ejecuciones consecutivas reutilizan el mismo directorio. |
pretrained | bool o str | True | Determina si se empieza el entrenamiento con pesos preentrenados. Puede ser un valor booleano o una ruta de cadena a los pesos que se cargarán. pretrained=False entrena con pesos inicializados aleatoriamente y mantiene la arquitectura del modelo. |
cls_remap | bool | True | Al ajustar el modelo con distintos conjuntos de datos, copia al nuevo modelo las filas de la cabeza de clasificación preentrenada correspondientes a las clases con nombres coincidentes. Así, las clases coincidentes conservan los sesgos aprendidos y también los pesos si el ancho de la cabeza no cambia. Se aplica tanto si el número de clases varía como si coincide pero el orden es distinto. |
optimizer | str | 'auto' | Elección del optimizador para el entrenamiento. Entre las opciones se 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 la estabilidad de la convergencia. |
seed | int | 0 | Establece la semilla aleatoria del entrenamiento para garantizar que los resultados sean reproducibles en ejecuciones con las mismas configuraciones. |
deterministic | bool | True | Fuerza el uso de algoritmos deterministas, lo que garantiza la reproducibilidad, pero puede afectar al rendimiento y la velocidad debido a la restricción de los algoritmos no deterministas. |
verbose | bool | True | Activa una salida detallada durante el entrenamiento, que muestra barras de progreso, métricas por época e información adicional sobre el entrenamiento en la consola. |
single_cls | bool | False | Trata todas las clases de los conjuntos de datos multiclase como una sola clase durante el entrenamiento. Es útil para tareas de clasificación binaria o cuando interesa detectar la presencia de objetos en lugar de clasificarlos. |
classes | list[int] | None | Especifica una lista de ID de clase con los que entrenar. Es útil para filtrar las clases y centrarse únicamente en algunas durante el entrenamiento. |
rect | bool | False | Activa 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. El entrenador estándar de YOLO usa rect=True para la validación de detección, segmentación, pose y OBB, independientemente de este ajuste. |
multi_scale | float | 0.0 | Varía aleatoriamente imgsz en cada lote en +/- multi_scale (p. ej., de 0.25 a 0.75x y 1.25x), redondeando a múltiplos del stride del modelo; 0.0 desactiva el entrenamiento multiescala. |
cos_lr | bool | False | Usa un programador cosenoidal de la tasa de aprendizaje, que la ajusta siguiendo una curva cosenoidal a lo largo de las épocas. Ayuda a gestionar la tasa de aprendizaje para lograr una mejor convergencia. |
close_mosaic | int | 10 | Desactiva la aumentación de datos mosaico durante las últimas N épocas para estabilizar el entrenamiento antes de que termine. Si se establece en 0, se desactiva esta función. |
resume | bool | False | Reanuda 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 épocas, para continuar el entrenamiento sin interrupciones. |
amp | bool o str | True | Establece la precisión del entrenamiento: True o "fp16" usa FP16, "bf16" usa BF16 en los dispositivos CUDA compatibles y False o "fp32" usa FP32. |
quantize | int o str | None | Establece 8 (o "int8") para el entrenamiento con cuantización INT8 consciente de la cuantización (QAT), que ajusta el modelo con cuantización simulada durante el proceso para que los pesos admitan la exportación a INT8. Consulta Entrenamiento con cuantización consciente. |
fraction | float, int o list | 1.0 | Subconjunto del conjunto de datos expresado como proporción, recuento o lista [train, val, test]. 1 indica que se usa toda la partición; los enteros superiores a 1 representan cantidades de imágenes, y solo la entrada de prueba opcional acepta 0/0.0 para indicar que no se usa ninguna. Las listas de dos elementos mantienen completa la partición de prueba. |
profile | bool | False | Activa la elaboración de perfiles de velocidad de ONNX y TensorRT durante el entrenamiento, útil para optimizar la implementación del modelo. |
freeze | int o list | None | Congela las primeras N capas del modelo o capas específicas por índice o nombre de módulo (23.cv2, sin el model. inicial), lo que reduce el número de parámetros entrenables. Es útil para el ajuste fino o el aprendizaje por transferencia. |
lr0 | float | 0.01 | Tasa de aprendizaje inicial (es decir, SGD=1E-2, Adam=1E-3). Se ignora con el valor predeterminado optimizer='auto'; indica un optimizador explícitamente para usarla. |
lrf | float | 0.01 | Tasa de aprendizaje final como fracción de la tasa inicial = (lr0 * lrf); se usa junto con los programadores para ajustar la tasa de aprendizaje con el tiempo. |
momentum | float | 0.937 | Factor de momentum para SGD o beta1 para los optimizadores Adam, que influye en la incorporación de gradientes anteriores a la actualización actual. |
weight_decay | float | 0.0005 | Término de regularización L2 que penaliza los pesos grandes para evitar el sobreajuste. |
warmup_epochs | float | 3.0 | Número de épocas de calentamiento de la tasa de aprendizaje. Esta aumenta gradualmente desde un valor bajo hasta la tasa de aprendizaje inicial para estabilizar el entrenamiento al principio. |
warmup_momentum | float | 0.8 | Momentum inicial para la fase de calentamiento, que se ajusta gradualmente al momentum establecido durante el periodo de calentamiento. |
warmup_bias_lr | float | 0.1 | Tasa de aprendizaje de los parámetros de sesgo durante la fase de calentamiento, que ayuda a estabilizar el entrenamiento del modelo en las primeras épocas. Se establece automáticamente en 0.0 con el valor predeterminado optimizer='auto'; indica un optimizador explícitamente para usarla. |
distill_model | str | None | Ruta a un punto de control del modelo profesor (p. ej., yolo26x.pt) para la destilación de conocimiento. Al establecerla, el modelo alumno se entrena con una pérdida de destilación adicional guiada por el modelo profesor congelado. |
dis | float | 6.0 | Peso de la pérdida de destilación que se añade a las pérdidas de detección estándar. Los valores más altos aumentan la influencia de la orientación basada en las características del modelo profesor. |
box | float | 7.5 | Peso del componente de pérdida de cuadros en la función de pérdida, que determina la importancia de predecir con precisión las coordenadas del cuadro delimitador. |
cls | float | 0.5 | Peso de la pérdida de clasificación en la función de pérdida total, que determina la importancia de predecir correctamente la clase respecto a los demás componentes. |
cls_pw | float | 0.0 | Potencia para ponderar las clases y gestionar el desequilibrio entre ellas mediante la frecuencia inversa de clase. 0.0 desactiva la ponderación de clases; 1.0 aplica la ponderación completa por frecuencia inversa. Los valores entre 0 y 1 aplican una ponderación parcial. |
dfl | float | 1.5 | Peso del término de regresión de la distancia de los cuadros: pérdida focal de distribución (DFL) cuando la cabeza de detección usa reg_max > 1; pérdida L1 sobre distancias de cuadros normalizadas en YOLO26 sin DFL (reg_max: 1). |
pose | float | 12.0 | Peso de la pérdida de pose en los modelos entrenados para estimar poses, que determina la importancia de predecir con precisión los puntos clave de la pose. |
kobj | float | 1.0 | Peso 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. |
rle | float | 1.0 | Peso de la pérdida de estimación residual de log-verosimilitud en los modelos de estimación de pose, que afecta a la precisión de la localización de los puntos clave. |
angle | float | 1.0 | Peso de la pérdida del ángulo en los modelos OBB, que afecta a la precisión de las predicciones del ángulo de los cuadros delimitadores orientados. |
dlog | float | 1.0 | Peso de la pérdida logarítmica invariante a la escala (SILog) en los modelos de estimación de profundidad; es el término principal que determina la precisión de la profundidad. |
dgrad | float | 0.5 | Peso de la pérdida de gradiente en los modelos de estimación de profundidad, que penaliza los errores en los bordes de profundidad y favorece límites de superficie más definidos. |
dlam | float | 1.0 | Factor de énfasis de la varianza de la pérdida SILog en los modelos de estimación de profundidad. 1.0 hace que la pérdida sea totalmente invariante a la escala, mientras que 0.0 la reduce a un RMSE logarítmico simple. |
nbs | int | 64 | Tamaño nominal del lote para normalizar la pérdida. |
overlap_mask | bool | True | Determina si las máscaras de los objetos deben combinarse en una sola máscara para el entrenamiento o mantenerse separadas para cada objeto. Si hay solapamiento, al combinarlas se superpone la máscara más pequeña sobre la más grande. |
mask_ratio | int | 4 | Proporción de submuestreo de las máscaras de segmentación, que afecta a la resolución de las máscaras usadas durante el entrenamiento. No modifica la resolución de las máscaras predichas. |
dropout | float | 0.0 | Tasa de abandono para la regularización en tareas de clasificación; evita el sobreajuste omitiendo unidades aleatoriamente durante el entrenamiento. |
val | bool | True | Activa la validación durante el entrenamiento para evaluar periódicamente el rendimiento del modelo con un conjunto de datos independiente. |
nms | bool, opcional | None | Selecciona la cabeza de inferencia que se usa para validar cada época, seleccionar puntos de control y detener el entrenamiento de forma anticipada. None o True usa una relación uno-a-muchos con NMS; False usa la cabeza sin NMS cuando está disponible. Ambas cabezas conservan sus pérdidas de entrenamiento. |
plots | bool | True | Genera y guarda gráficos de las métricas de entrenamiento y validación, así como ejemplos de predicciones, para ofrecer una visión visual del rendimiento del modelo y de su evolución durante el aprendizaje. |
compile | bool o str | False | Activa la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True → "default" para activarla, False → para desactivarla 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_last | bool | None | Usa el formato de memoria channels_last (NHWC) para las convoluciones durante el entrenamiento. None lo activa automáticamente en CUDA con PyTorch 1.11 o versiones posteriores, excepto en Windows, donde se ha medido un rendimiento más lento. False lo desactiva y True lo solicita explícitamente. El entrenamiento en CPU o MPS siempre mantiene el formato NCHW (True se ignora y se muestra una advertencia). |
max_det | int | 300 | Número máximo de detecciones por imagen durante la validación del entrenamiento. En las tareas de detección, segmentación, pose y OBB, el valor predeterminado de 300 aumenta hasta el mayor recuento de objetos etiquetados de entrenamiento/validación solo si dicho recuento supera 300. Los demás valores se mantienen fijos; si se supera el límite, se muestra una advertencia. |
El argumento batch ofrece tres opciones de configuración:
- Tamaño fijo del lote: Especifica el número de imágenes por lote con un entero (p. ej.,
batch=16). - Modo automático (60 % de memoria de GPU): Usa
batch=-1para ajustar automáticamente el uso de memoria CUDA a aproximadamente el 60 %. - Modo automático con fracción de utilización: Establece una fracción (p. ej.,
batch=0.70) para ajustar el uso a una proporción determinada de la memoria de la GPU. - No se encuentra un tamaño adecuado: Si ningún tamaño de lote candidato genera un perfil válido, AutoBatch produce un
RuntimeErrorclaro en lugar de recurrir silenciosamente a un valor predeterminado no relacionado.
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 clave se encuentran 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, además de funciones adicionales como las máscaras, también afectan a las predicciones. Ajustar estos valores es esencial para lograr un rendimiento óptimo.
Argumentos de inferencia:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
source | str o int o None | None | Especifica el origen de datos para la inferencia. Puede ser la ruta a una imagen, un archivo de vídeo, un directorio, una URL o el ID de un 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 orígenes, lo que permite usarlo con flexibilidad en distintos tipos de entrada. |
conf | float | 0.25 | Establece el umbral mínimo de confianza para las detecciones. Se descartan los objetos detectados con un nivel de confianza inferior a este umbral. Ajustar este valor puede ayudar a reducir los falsos positivos. |
iou | float | 0.7 | Umbral 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 cuadros superpuestos, lo que resulta útil para reducir los duplicados. |
imgsz | int o tuple | 640 | Objetivo de Letterbox. Un entero define un N×N cuadrado; una tupla define (height, width). Con rect=True, el tensor real puede ser más pequeño que este objetivo debido al relleno mínimo en rectángulo. Usa rect=False para fijar el tamaño. Consulta Forma fija frente a rectángulo mínimo. |
rect | bool | True | Si True, usa el relleno mínimo en rectángulo cuando sea posible (lotes con la misma forma y backend compatible). Si False, rellena siempre hasta el valor completo de imgsz. Consulta Forma fija frente a rectángulo mínimo. |
quantize | int o str | None | Precisión de inferencia: 16/"fp16" y 32/"fp32"/unset seleccionan el cálculo FP16 o FP32 para los modelos PyTorch y TorchScript (FP32 en CPU); los demás formatos usan la precisión que seleccionen el artefacto y el entorno de ejecución. En 16, OpenVINO sigue redondeando la entrada a FP16 en el cliente y volviéndola a ampliar a FP32, sin cambiar la precisión del entorno de ejecución. La cuantización INT8/PTQ se configura durante la exportación y se utiliza después al cargar el modelo exportado. Sustituye a la marca obsoleta half. |
device | str | None | Especifica el dispositivo para la inferencia (p. ej., cpu, cuda:0, 0, npu o npu:0). Permite seleccionar entre CPU, una GPU específica, una NPU Huawei Ascend u otros dispositivos de cálculo para ejecutar el modelo. |
dnn | bool | False | Si True, usa el módulo DNN de OpenCV en lugar de ONNX Runtime para la inferencia de modelos ONNX. |
data | str | None | Ruta a un YAML del conjunto de datos (p. ej., coco8.yaml) que se lee solo para obtener su names, y únicamente cuando el modelo cargado no incluye nombres de clase propios: una exportación de terceros o una exportación de Ultralytics separada de los metadatos que la acompañan. De lo contrario, el modelo indica class0, class1, etc. |
batch | int | 1 | Especifica 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 aumentar el rendimiento y reducir el tiempo total necesario para la inferencia. |
max_det | int | 300 | Número máximo de detecciones permitido por imagen. Limita el número total de objetos que el modelo puede detectar en una sola inferencia para evitar resultados excesivos en escenas densas. |
vid_stride | int | 1 | Salto de fotogramas para entradas de vídeo. Permite omitir fotogramas para acelerar el procesamiento a costa de la resolución temporal. El valor 1 procesa todos los fotogramas; los valores superiores los omiten. |
stream_buffer | bool | False | Determina si se ponen en cola los fotogramas entrantes de las secuencias de vídeo. Si False, se descartan los fotogramas antiguos para dejar sitio a los nuevos (optimizado para aplicaciones en tiempo real). Si True, los fotogramas nuevos se guardan en un búfer para garantizar que no se omita ninguno, pero se introduce latencia si los FPS de inferencia son inferiores a los FPS de la secuencia. |
visualize | bool | False | Guarda un mapa de calor de activación de clases junto a cada predicción, que muestra qué píxeles han elevado las puntuaciones de la clase predicha. Respeta conf y classes, por lo que classes=[0] solo asigna esa clase. Solo está disponible para modelos PyTorch de Ultralytics. |
augment | bool | False | Activa el aumento 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 PyTorch de Ultralytics. |
agnostic_nms | bool | False | Activa la supresión no máxima (NMS) independiente de la clase, que suprime los cuadros solapados con puntuaciones más bajas entre clases distintas, en lugar de hacerlo solo dentro de la misma clase. Es útil en escenarios de detección multiclase donde los solapamientos entre clases son frecuentes. Con la inferencia sin NMS (nms=False en YOLO26 o YOLOv10), solo impide que la misma detección aparezca con varias etiquetas de clase (duplicados con IoU=1.0); no suprime cuadros distintos según el umbral de IoU. |
classes | list[int] | None | Filtra las predicciones para limitarse a un conjunto de ID de clase. Solo se devuelven las detecciones pertenecientes a las clases especificadas. Es útil para centrarse en los objetos relevantes en tareas de detección multiclase. |
retina_masks | bool | False | Devuelve máscaras de segmentación de alta resolución. Si se activa, las máscaras devueltas (masks.data) coinciden con el tamaño de la imagen original. Si se desactiva, tienen el tamaño de imagen utilizado durante la inferencia. |
embed | list[int] | None | Especifica las capas de las que se extraen vectores de características o embeddings. Usa model.embed(source) para obtener embeddings de la penúltima capa o model.predict(source, embed=[layer]) para seleccionar capas concretas. Es útil para tareas posteriores, como la agrupación en clústeres o la búsqueda por similitud. Solo está disponible para modelos PyTorch de Ultralytics. |
project | str | None | Nombre del directorio del proyecto donde se guardan los resultados de las predicciones si se activa save. |
name | str | None | Nombre de la ejecución de predicción. Se usa para crear un subdirectorio dentro de la carpeta del proyecto, donde se guardan los resultados de las predicciones si se activa save. |
stream | bool | False | Permite procesar de forma eficiente en cuanto a memoria vídeos largos o numerosas imágenes, ya que devuelve un generador de objetos Results en lugar de cargar todos los fotogramas en memoria a la vez. |
verbose | bool | True | Controla si se muestran registros detallados de inferencia en el terminal para ofrecer información en tiempo real sobre el proceso de predicción. |
compile | bool o str | False | Activa la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True → "default" para activarla, False → para desactivarla 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_last | bool | None | Usa 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, compatible con oneDNN y PyTorch 1.13 o posterior; False lo desactiva y True lo solicita en dispositivos CPU x86 o CUDA compatibles. ARM64, MPS, las versiones anteriores de PyTorch, las CPU sin oneDNN y los formatos exportados como TensorRT y ONNX no cambian. |
nms | bool, opcional | None | Por defecto, ejecuta inferencia uno a varios con NMS (None o True). Configura False para usar el cabezal uno a uno sin NMS cuando esté disponible. Consulta la guía de detección de extremo a extremo para obtener más información. |
Argumentos de visualización:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si True, muestra las imágenes o los vídeos anotados en una ventana. Es útil para obtener información visual inmediata durante el desarrollo o las pruebas. |
save | bool | False or True | Activa el guardado de las imágenes o los vídeos anotados en archivos. Es útil para documentar, analizar más adelante o compartir resultados. De forma predeterminada, es True al usar la CLI y False al usar Python. |
save_frames | bool | False | Al procesar vídeos, guarda fotogramas individuales como imágenes. Es útil para extraer fotogramas concretos o analizarlos detalladamente uno por uno. |
save_txt | bool | False | Guarda los resultados de detección en un archivo de texto con el formato [class] [x_center] [y_center] [width] [height] [confidence]. Es útil para integrarlos con otras herramientas de análisis. |
save_conf | bool | False | Incluye puntuaciones de confianza en los archivos de texto guardados. Ofrece más detalles para el posprocesamiento y el análisis. |
save_crop | bool | False | Guarda imágenes recortadas de las detecciones. Es útil para aumentar conjuntos de datos, realizar análisis o crear conjuntos de datos centrados en objetos concretos. |
show_labels | bool | True | Muestra etiquetas para cada detección en la salida visual. Facilita la identificación inmediata de los objetos detectados. |
show_conf | bool | True | Muestra 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_boxes | bool | True | Dibuja cuadros delimitadores alrededor de los objetos detectados. Es esencial para identificar visualmente y localizar objetos en imágenes o fotogramas de vídeo. |
line_width | int or None | None | Especifica el grosor de línea de los cuadros delimitadores. Si None, el grosor de línea se ajusta automáticamente al tamaño de la imagen. Permite personalizar la visualización para mejorar la claridad. |
Configuración de validación#
La configuración de validación de los modelos YOLO incluye hiperparámetros y opciones 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, así como la tarea concreta, también influyen en el proceso.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
data | str | None | Especifica la ruta al YAML del conjunto de datos (p. ej., coco8.yaml), que debe incluir la ruta a los datos de validación. Para la clasificación, en cambio, se usa un directorio de conjunto de datos o el nombre de un conjunto de datos integrado (p. ej., imagenet10). |
imgsz | int | 640 | Define el tamaño de las imágenes de entrada. Todas las imágenes se redimensionan a estas dimensiones antes del procesamiento. Los tamaños mayores pueden mejorar la precisión en objetos pequeños, pero aumentan el tiempo de cálculo. |
batch | int | 16 | Establece el número de imágenes por lote. Los valores más altos aprovechan mejor la memoria de la GPU, pero requieren más VRAM. Ajústalo según los recursos de hardware disponibles. |
save_json | bool | False | Si True, guarda los resultados en un archivo JSON para analizarlos más adelante, integrarlos con otras herramientas o enviarlos 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 del mAP para objetos pequeños, medianos y grandes; durante el entrenamiento, estos valores se registran como metrics/mAP_small(B), metrics/mAP_medium(B) y metrics/mAP_large(B) en results.csv. |
conf | float | 0.001 | Establece 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, el mAP y las matrices de confusión de detección usan este valor; un conf más alto, como 0.25, genera una matriz más parecida a la salida de predicción, pero puede reducir el mAP. La precisión y la exhaustividad resumidas usan la confianza de F1 máximo, por lo que pueden diferir de los valores derivados de confusion_matrix.png. El valor predeterminado para la validación OBB es 0.01 para reducir el uso de memoria. |
iou | float | 0.7 | Establece el umbral de intersección sobre unión para la supresión no máxima. Controla la eliminación de detecciones duplicadas. |
max_det | int | 300 | Limita el número máximo de detecciones por imagen. Para detect, segment, pose y OBB, si se mantiene en 300, se aumenta hasta el número más alto de objetos etiquetados en la partición validada cuando una imagen supera ese límite, con una advertencia; cualquier otro valor se mantiene, con una advertencia de que la exhaustividad puede quedar limitada si una imagen lo supera. |
quantize | int o str | None | Precisión de validación: 16/"fp16" y 32/"fp32"/unset seleccionan el cálculo FP16 o FP32 para los modelos PyTorch y TorchScript (FP32 en CPU); los demás formatos usan la precisión que seleccionen el artefacto y el entorno de ejecución. En 16, OpenVINO sigue redondeando la entrada a FP16 en el cliente y volviéndola a ampliar a FP32, sin cambiar la precisión del entorno de ejecución. La cuantización INT8/PTQ se configura durante la exportación y se utiliza después al validar el modelo exportado. Sustituye a la marca obsoleta half. |
device | str | None | Especifica el dispositivo para la validación (cpu, cuda:0, npu, npu:0, etc.). Con None, selecciona automáticamente el mejor dispositivo disponible. Puedes especificar varios dispositivos CUDA separándolos con comas. |
dnn | bool | False | Si True, usa el módulo DNN de OpenCV para la inferencia de modelos ONNX, como alternativa a los métodos de inferencia de PyTorch. |
plots | bool | True | Si se establece en True, genera y guarda gráficos que comparan las predicciones con la verdad de referencia, matrices de confusión y curvas PR para evaluar visualmente el rendimiento del modelo. |
classes | list[int] | None | Especifica una lista de ID de clase que se van a evaluar. Es útil para filtrar y centrarse solo en determinadas clases durante la evaluación. |
rect | bool | True | Si True, agrupa en lotes imágenes con relaciones de aspecto similares y les da forma rectangular. Añade medio stride antes de redondear cada dimensión al siguiente múltiplo de stride (sin medio stride adicional para semantic). Con un stride de 32, una imagen de 640×640 en imgsz=640 pasa a 672×672 con un desplazamiento de 16 px, mientras que predict usa 640×640, por lo que las métricas pueden diferir. rect=False coincide con predict para las imágenes cuadradas. Se ignora para depth, que estira las imágenes hasta un cuadrado de imgsz. |
split | str | 'val' | Determina qué partición del conjunto de datos se usa para la validación (val, test o train). Permite elegir con flexibilidad el segmento de datos para evaluar el rendimiento. |
fraction | float, int o list | 1.0 | Subconjunto de la partición validada. Con una lista [train, val, test], se aplica la entrada que coincida con split (1 = partición completa; los enteros superiores a 1 = número de imágenes; las entradas omitidas corresponden a la partición completa). Un valor escalar solo se aplica con split=train; val y test usan entonces la partición completa. |
project | str | None | Nombre del directorio del proyecto donde se guardan los resultados de validación. Ayuda a organizar los resultados de distintos experimentos o modelos. |
name | str | None | Nombre de la ejecución de validación. Se usa para crear un subdirectorio dentro de la carpeta del proyecto, donde se guardan los registros y resultados de validación. |
verbose | bool | True | Si True, muestra información detallada durante el proceso de validación, incluidas las métricas por clase, el progreso de los lotes y más información de depuración. |
save_txt | bool | False | Si True, guarda los resultados de detección en archivos de texto, uno por imagen. Es útil para realizar análisis adicionales, posprocesamiento personalizado o integraciones con otros sistemas. |
save_conf | bool | False | Si True, incluye valores de confianza en los archivos de texto guardados cuando se activa save_txt, lo que proporciona resultados más detallados para el análisis y el filtrado. |
workers | int | 8 | Número de subprocesos de trabajo para cargar datos. Los valores más altos pueden acelerar el preprocesamiento, pero aumentar el uso de la CPU. Si se establece en 0, se usa el hilo principal, lo que puede ser más estable en algunos entornos. |
augment | bool | False | Activa 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 con versiones transformadas de la entrada. Solo está disponible para modelos PyTorch de Ultralytics. |
agnostic_nms | bool | False | Activa la supresión no máxima independiente de la clase, que suprime los cuadros solapados con puntuaciones más bajas sin tener en cuenta la clase predicha. Es útil en aplicaciones centradas en instancias. Con la inferencia sin NMS (nms=False en YOLO26 o YOLOv10), solo impide que la misma detección aparezca con varias etiquetas de clase (duplicados con IoU=1.0); no suprime cuadros distintos según el umbral de IoU. |
single_cls | bool | False | Trata todas las clases como una sola durante la validación. Es útil para evaluar el rendimiento del modelo en tareas de detección binaria o cuando las diferencias entre clases no son importantes. |
visualize | bool | False | Visualiza la verdad de referencia, los verdaderos positivos, los falsos positivos y los falsos negativos de cada imagen. Es útil para depurar e interpretar el modelo. |
show_labels | bool | True | Muestra las etiquetas de clase en las visualizaciones de validación cuando visualize=True. Configúralo en False para ver las coincidencias y los errores con más claridad. |
show_conf | bool | True | Muestra las puntuaciones de confianza en las visualizaciones de validación cuando visualize=True. Configúralo en False para ver las coincidencias y los errores con más claridad. |
compile | bool o str | False | Activa la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True → "default" para activarla, False → para desactivarla 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_last | bool | None | Usa el formato de memoria channels_last (NHWC) para la validación nativa de PyTorch. None lo activa automáticamente en CPU x86 con Linux y Windows, compatible con oneDNN y PyTorch 1.13 o posterior; False lo desactiva y True lo solicita en dispositivos CPU x86 o CUDA compatibles. ARM64, MPS, las versiones anteriores de PyTorch, las CPU sin oneDNN y los formatos exportados no cambian; durante el entrenamiento, la validación mantiene la disposición del modelo de entrenamiento. |
nms | bool, opcional | None | Por defecto, ejecuta inferencia uno a varios con NMS (None o True). Configura False para usar el cabezal uno a uno sin NMS cuando esté disponible. Consulta la guía de detección de extremo a extremo para obtener más información. |
Un ajuste cuidadoso y la experimentación son fundamentales para garantizar un rendimiento óptimo y detectar y prevenir el sobreajuste.
Configuración de exportación#
La configuración de exportación de los modelos YOLO incluye opciones para guardar o exportar el modelo y usarlo en distintos entornos. Estos ajustes afectan al rendimiento, el tamaño y la compatibilidad. Entre los ajustes principales se incluyen el formato del archivo exportado (p. ej., ONNX o TensorFlow SavedModel), el dispositivo de destino (p. ej., CPU o GPU) y funciones como las máscaras. La tarea del modelo y las limitaciones del entorno de destino también influyen en el proceso de exportación.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
format | str | 'torchscript' | Formato de destino del modelo exportado, como 'onnx', 'torchscript', 'engine' (TensorRT) u otros. Cada formato permite la compatibilidad con distintos entornos de implementación. |
name | str | None | Nombre del hardware de destino para los formatos que lo requieren: arquitectura Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; de forma predeterminada, 'hailo8l'), chip Rockchip RKNN (de forma predeterminada, 'rk3588'), SoC Huawei Ascend (un --soc_version de CANN; de forma predeterminada, 'Ascend310B4'), destino Qualcomm QNN HTP (de forma predeterminada, '73') o dispositivo AMD Xilinx Versal AI Edge Series Gen 2 (de forma predeterminada, 've2-xc2ve3858', el kit de evaluación VEK385). Es distinto del par project/name de nomenclatura de ejecuciones que usan otros modos. |
imgsz | int o tuple | 640 | Tamaño de imagen deseado para la entrada del modelo. Puede ser un entero para imágenes cuadradas (p. ej., 640 para 640×640) o una tupla (height, width) para dimensiones concretas. Si no se especifica, la exportación reutiliza el tamaño de entrenamiento registrado en el punto de control cargado: los puntos de control oficiales de YOLO26 registran 768 para depth, 224 para classify, 1024 para OBB y 640 para las demás tareas; un ajuste fino registra el valor 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. |
optimize | bool | False | Activa una optimización superior del compilador para DEEPX, lo que reduce la latencia de inferencia y aumenta el tiempo de compilación. |
quantize | int o str | None | Precisió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 precisión, principalmente para dispositivos periféricos; requiere calibración data/fraction); 32/sin especificar equivale a FP32. Un checkpoint entrenado con quantize=8 siempre se exporta en INT8: onnx y engine se exportan a partir de los rangos que incorporan, sin calibración, y se rechazan otros formatos o precisiones. 'w8a8' y 'w16a16' son alias de 8 y 16; las precisiones mixtas 'w8a16' (pesos INT8 con activaciones de 16 bits: CoreML, LiteRT, QNN) y 'w8a32' (INT8 dinámico: LiteRT) solo se admiten en esos formatos. Sustituye las opciones obsoletas half/int8 (half=True → 16, int8=True → 8; las opciones antiguas aún se aceptan con un aviso de obsolescencia). Solo se permiten las precisiones compatibles con el formato de destino (consulta más abajo). |
dynamic | bool | False | Permite tamaños de entrada dinámicos en las exportaciones TorchScript, ONNX, OpenVINO, TensorRT, CoreML y MNN, lo que aporta flexibilidad para gestionar distintas dimensiones de imagen. |
simplify | bool | True | Simplifica el grafo ONNX intermedio con onnxslim para las exportaciones que lo generan (consulta Formatos de exportación), lo que puede mejorar el rendimiento y la compatibilidad con motores de inferencia. |
opset | int | None | Especifica la versión de opset de ONNX para las exportaciones que generan un grafo ONNX (consulta Formatos de exportación), a fin de garantizar la compatibilidad con distintos analizadores y entornos de ejecución ONNX. Si no se establece, se usa la última versión compatible. |
workspace | float o None | None | Establece 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 lo asigne automáticamente hasta el máximo del dispositivo. |
nms | bool, opcional | None | None exporta predicciones sin procesar de uno a varios para aplicar NMS externamente; True incorpora NMS cuando es compatible; False selecciona el cabezal sin NMS cuando está disponible. La NMS integrada de CoreML admite detect, segment y pose con formas estáticas. Consulta la guía de detección de extremo a extremo. |
conf | float | None | Umbral de confianza que se usa siempre que se genera NMS durante la exportación: exportaciones nms=True; exportaciones detect de Hailo que no son de extremo a extremo; y exportaciones detect, pose y segment de IMX, que fuerzan internamente nms=True. Si no se establece, el valor predeterminado es 0.25. |
iou | float | 0.7 | Umbral de IoU que se usa siempre que se genera NMS durante la exportación: exportaciones nms=True; exportaciones detect de Hailo que no son de extremo a extremo; y exportaciones detect, pose y segment de IMX, que fuerzan internamente nms=True. |
max_det | int | 300 | Número máximo de detecciones que se conservan en la salida del modelo exportado. Se aplica a las exportaciones nms=True en todos los formatos, excepto a la detección de CoreML, cuya canalización de NMS nativa no limita el número de detecciones; también se aplica a las exportaciones de detección de extremo a extremo sin NMS (YOLO26, YOLOv10, limitado al número de anclas disponibles) y a las exportaciones detect, pose y segment de IMX. |
agnostic_nms | bool | False | Activa NMS independiente de la clase siempre que la NMS de exportación se genere mediante la canalización estándar nms=True, incluida la fase de NMS propia de CoreML. Suprime los cuadros solapados con puntuaciones más bajas entre clases distintas, en lugar de hacerlo solo dentro de la misma clase. No se aplica a las configuraciones de NMS generadas por Hailo o IMX, que no tienen una opción independiente de la clase y siguen teniendo en cuenta la clase, independientemente de esta marca. También se incorpora en las exportaciones de extremo a extremo sin NMS (YOLO26, YOLOv10), donde solo impide que la misma detección aparezca con varias etiquetas de clase (duplicados con IoU=1.0), pero no suprime cuadros distintos según el umbral de IoU. |
batch | int | 1 | Especifica el tamaño del lote de inferencia del modelo exportado o el número máximo de imágenes que el modelo exportado procesará simultáneamente en modo predict. Los formatos cuyos argumentos de exportación no incluyen batch (Edge TPU, IMX500, DEEPX, Hailo, AMD Xilinx) exportan con un lote de 1 y rechazan otros valores. |
device | str | None | Especifica 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 TensorRT usan automáticamente la GPU, pero TensorRT 11.0 no es compatible con DLA. |
verbose | bool | False | Aumenta a VERBOSE la gravedad del registro del generador de TensorRT durante la exportación format='engine'. Los demás formatos de exportación ignoran esta opción. |
data | str | None | Ruta al YAML del conjunto de datos, imprescindible para la calibración de la cuantización INT8; para la clasificación, en cambio, se usa un directorio de conjunto de datos o el nombre de un conjunto de datos integrado. Si no se especifica y se activa INT8, Ultralytics selecciona un conjunto de datos de calibración específico para la tarea cuando es necesario o recurre al conjunto de datos predeterminado de la tarea del modelo. Un punto de control entrenado con quantize=8 incluye sus propios rangos INT8 y no necesita datos de calibración. |
split | str | 'val' | Partición del conjunto de datos ('train', 'val' o 'test') que se usa para crear el cargador de datos de calibración de cuantización INT8 a partir de data. |
fraction | float, int o list | 1.0 | Subconjunto 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 partición completa; los enteros superiores a 1 indican el número de imágenes; solo la entrada de prueba opcional acepta 0/0.0 para indicar que no se use ninguna. Las listas de dos elementos dejan test completo. |
Una configuración bien pensada garantiza que el modelo exportado esté optimizado para su caso de uso y funcione eficazmente en el entorno de destino.
Configuración de Solutions#
La configuración de Ultralytics Solutions ofrece flexibilidad para personalizar modelos en 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 concretas.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta a un archivo de modelo Ultralytics YOLO. |
region | list o dict | None | Puntos que definen la región de interés, ya sea una lista de tuplas (x, y) o un diccionario que asigna nombres de región a listas de puntos para varias regiones (solo RegionCounter). Si None, las soluciones que requieren una región usan una región predeterminada predefinida. |
show_in | bool | True | Indicador que controla si se muestran los recuentos de entradas en la secuencia de vídeo. |
show_out | bool | True | Indicador que controla si se muestran los recuentos de salidas en la secuencia de vídeo. |
analytics_type | str | 'line' | Tipo de gráfico, es decir, line, bar, area o pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mapa de colores que se usa para el mapa de calor. |
line_width | int | 2 | Grosor de línea de los cuadros, puntos clave y recuentos que dibuja la solución. |
verbose | bool | True | Activa el registro por fotograma de la forma de entrada, los recuentos por clase y la velocidad de procesamiento de la solución. La llamada de seguimiento en sí siempre es silenciosa. |
json_file | str | None | Ruta al archivo JSON que contiene todos los datos de coordenadas de aparcamiento. |
up_angle | float | 145.0 | Umbral de ángulo para la pose «arriba». |
kpts | list[int] | [6, 8, 10] | Lista de tres índices de puntos clave que se usan para supervisar entrenamientos. Estos puntos clave corresponden a articulaciones o partes del cuerpo, como hombros, codos y muñecas, en ejercicios como flexiones, dominadas, sentadillas y ejercicios abdominales. |
down_angle | float | 90.0 | Umbral de ángulo para la pose «abajo». |
blur_ratio | float | 0.5 | Ajusta el porcentaje de intensidad del desenfoque, con valores dentro del intervalo 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Nombre del directorio donde se guardan las detecciones recortadas. |
records | int | 5 | Número total de detecciones necesario para activar un correo electrónico con el sistema de alarma de seguridad. |
vision_point | tuple[int, int] | (20, 20) | Punto desde el que la visión artificial seguirá los objetos y dibujará trayectorias mediante VisionEye Solution. |
source | str | None | Ruta a la fuente de entrada (vídeo, RTSP, etc.). Solo se puede utilizar con la interfaz de línea de comandos (CLI) de Solutions. |
figsize | tuple[float, float] | (12.8, 7.2) | Tamaño de las figuras en pulgadas para los gráficos de Analytics; (12.8, 7.2) genera un fotograma de 1280×720. |
fps | float | 30.0 | Fotogramas por segundo utilizados para los cálculos de velocidad. |
max_hist | int | 5 | Número máximo de puntos históricos que se registran por objeto para calcular la velocidad y la dirección. |
meter_per_pixel | float | 0.05 | Factor de escala utilizado para convertir la distancia en píxeles a unidades del mundo real. |
max_speed | int | 120 | Velocidad máxima en km/h; las velocidades estimadas superiores se limitan a este valor. |
data | str | 'images' | Ruta al directorio de imágenes utilizado para la búsqueda por similitud. |
imgsz | int | 640 | Tamaño de la imagen de entrada para la inferencia del modelo. |
Ajustes de aumento de datos#
Las técnicas de aumento de datos son esenciales para mejorar la robustez y el rendimiento de los modelos YOLO, ya que introducen variabilidad en los datos de entrenamiento y ayudan al modelo a generalizar mejor ante datos que no ha visto. En la siguiente tabla se describe el propósito y el efecto de cada argumento de aumento de datos:
| Argumento | Tipo | Predeterminado | Tareas compatibles | Intervalo | Descripción |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Ajusta el tono de la imagen en una fracción de la rueda de color, lo que introduce variabilidad cromática. Ayuda al modelo a generalizar en distintas condiciones de iluminación. Para classify, solo se aplica cuando auto_augment=None. |
hsv_s | float | 0.7 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Modifica la saturación de la imagen en una fracción, lo que afecta a la intensidad de los colores. Es útil para simular distintas condiciones ambientales. Para classify, solo se aplica cuando auto_augment=None. |
hsv_v | float | 0.4 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Modifica el valor (brillo) de la imagen en una fracción, lo que ayuda al modelo a funcionar bien en distintas condiciones de iluminación. Para classify, solo se aplica cuando auto_augment=None. |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | Gira la imagen aleatoriamente dentro del intervalo de grados especificado, lo que mejora la capacidad del modelo para reconocer objetos en distintas orientaciones. |
translate | float | 0.1 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Desplaza la imagen horizontal y verticalmente en una fracción de su tamaño, lo que ayuda al modelo a aprender a detectar objetos parcialmente visibles. |
scale | float | tuple | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1 o una tupla (min, max) explícita (no para classify). | Escala la imagen mediante un factor de ampliación, lo que simula objetos situados a distintas distancias de la cámara. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | Cizalla la imagen en los grados especificados, lo que imita el efecto de observar objetos desde distintos ángulos. |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 0.001 | Aplica una transformación de perspectiva aleatoria a la imagen, lo que mejora la capacidad del modelo para comprender los objetos en un espacio 3D. |
flipud | float | 0 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Invierte la imagen verticalmente con la probabilidad especificada, lo que aumenta la variabilidad de los datos sin afectar a las características del objeto. |
fliplr | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Invierte la imagen de izquierda a derecha con la probabilidad especificada; es útil para aprender a reconocer objetos simétricos y aumentar la diversidad del conjunto de datos. |
bgr | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Invierte los canales de la imagen de RGB a BGR con la probabilidad especificada; es útil para aumentar la robustez ante un orden incorrecto de los canales. |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Combina cuatro imágenes de entrenamiento en una, lo que simula distintas composiciones de escenas e interacciones entre objetos. Es muy eficaz para comprender escenas complejas. |
mixup | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Mezcla dos imágenes y sus etiquetas para crear una imagen compuesta. Mejora la capacidad del modelo para generalizar al introducir ruido en las etiquetas y variabilidad visual. |
cutmix | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Combina partes de dos imágenes para crear una mezcla parcial que mantiene regiones diferenciadas. Mejora la robustez del modelo al crear situaciones de oclusión. |
copy_paste | float | 0 | segment, semantic, obb | 0.0 - 1.0 | Fracció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_mode | str | flip | segment, semantic, obb | - | Especifica la estrategia de copy-paste que se va a utilizar. Las opciones incluyen 'flip' y 'mixup'. |
auto_augment | str | randaugment | classify | - | Aplica una política de aumento predefinida ('randaugment', 'autoaugment' o 'augmix') para mejorar el rendimiento del modelo mediante la diversidad visual. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Borra aleatoriamente regiones de la imagen durante el entrenamiento para animar al modelo a centrarse en características menos evidentes. |
augmentations | list | None | detect, segment, semantic, depth, pose, obb | - | Transformaciones personalizadas de Albumentations para el aumento de datos avanzado (solo API de Python). Acepta una lista de objetos de transformación para necesidades de aumento especializadas. |
Ajusta estos parámetros según los requisitos del conjunto de datos y de la tarea. Probar distintos valores puede ayudar a encontrar la estrategia de aumento óptima para lograr el mejor rendimiento del modelo.
Ajustes de registro, puntos de control y gráficos#
El registro, los puntos de control, los gráficos y la gestión de archivos son importantes al entrenar un modelo YOLO:
- Registro: sigue el progreso del modelo y diagnostica problemas con bibliotecas como TensorBoard o escribiendo en un archivo.
- Puntos de control: guarda el modelo a intervalos regulares para reanudar el entrenamiento o probar distintas configuraciones.
- Gráficos: visualiza el rendimiento y el progreso del entrenamiento con 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 seguir el progreso y facilita la depuración y la optimización.
| Argumento | Predeterminado | Descripción |
|---|---|---|
project | None | Especifica el directorio raíz donde se guardan las ejecuciones de entrenamiento. Si no se especifica, las ejecuciones se guardan en runs/<task>. Cada ejecución se guarda en un subdirectorio independiente. |
name | None | Define 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 sobrescribir datos. |
exist_ok | False | Determina si se sobrescribe un directorio de experimento existente. True permite sobrescribirlo; False lo impide. |
plots | True | Controla la generación y el guardado de gráficos de entrenamiento y validación. Establécelo en True para crear gráficos como las curvas de pérdida, las curvas de precisión-exhaustividad y las predicciones de muestra, con los que podrás seguir visualmente el rendimiento. |
save | True | Permite guardar los puntos de control del 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 archivo YAML guardado para reutilizar un conjunto completo de argumentos sin pasarlos en línea. El argumento cfg prevalece sobre los valores de default.yaml, mientras que los argumentos adicionales que se pasen junto a él siguen teniendo prioridad.
| Argumento | Predeterminado | Descripción |
|---|---|---|
cfg | None | Ruta a un archivo YAML cuyos valores sustituyen las entradas de default.yaml. Consulta Cómo sobrescribir el 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 del lote, la tasa de aprendizaje, el momentum y la caída de pesos. Ajusta los parámetros de aumento de datos, elige el optimizador adecuado y utiliza técnicas como la detención temprana o la precisión mixta. Encontrarás más información en la Guía de entrenamiento.
Entre los hiperparámetros clave que afectan a la precisión se incluyen:
- Tamaño del lote (
batch): los tamaños mayores pueden estabilizar el entrenamiento, pero requieren más memoria. - Tasa de aprendizaje (
lr0): las tasas más bajas permiten ajustes más precisos, pero la convergencia es más lenta. - Momentum (
momentum): acelera los vectores de gradiente y amortigua las oscilaciones. - Tamaño de imagen (
imgsz): los tamaños mayores mejoran la precisión, pero aumentan la carga computacional.
Ajústalos según tu conjunto de datos y tu hardware. Encontrarás más información en Ajustes de entrenamiento.
- Tamaño del lote (
La tasa de aprendizaje (
lr0) es fundamental; empieza con0.01para SGD o0.001para el optimizador Adam, y establece explícitamenteoptimizer, ya que el valor predeterminadoautoignoralr0. Supervisa las métricas y ajústala según sea necesario. Utiliza programadores de tasa de aprendizaje coseno (cos_lr) o 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 no máxima (NMS). - Tamaño de imagen (
imgsz=640): cambia el tamaño de las imágenes de entrada. - Dispositivo (
device=None): selecciona CPU, GPU CUDA, Apple MPS, Intel XPU (xpu) o NPU Huawei Ascend (npu).
Para obtener una descripción general completa, consulta Ajustes de predicción y la Guía de predicción.
- Umbral de confianza (
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. Encontrarás más información en la Guía de entrenamiento.