Configuración
La configuración y los hiperparámetros de YOLO desempeñan un papel fundamental en el rendimiento, la velocidad y la precisión del modelo. Estos ajustes pueden afectar al comportamiento del modelo en varias etapas, incluyendo el entrenamiento, la validación y la predicción.
Ver: Dominando Ultralytics YOLO: Configuración
Ver: Dominar Ultralytics YOLO: Configuración
Los comandos de Ultralytics utilizan la siguiente sintaxis:
Ejemplo
yolo TASK MODE ARGS
from ultralytics import YOLO
# Load a YOLO model from a pre-trained weights file
model = YOLO("yolo11n.pt")
# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)
Dónde:
TASK
(opcional) es uno de (detect, segment, classify, pose, obb)MODE
(obligatorio) es uno de (train, val, predict, export, track, benchmark)ARGS
(opcional) sonarg=value
pares comoimgsz=640
que anulan los valores predeterminados.
Predeterminado ARG
los valores se definen en esta página y provienen de cfg/defaults.yaml
archivo.
Tareas
Los modelos YOLO de Ultralytics pueden realizar una variedad de tareas de visión artificial, incluyendo:
- Detectar: La detección de objetos identifica y localiza objetos dentro de una imagen o video.
- Segmento: La segmentación de instancias divide una imagen o video en regiones que corresponden a diferentes objetos o clases.
- 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 video.
- OBB: Cajas delimitadoras orientadas utiliza cajas delimitadoras rotadas, adecuadas para imágenes satelitales o médicas.
Argumento | Predeterminado | Descripción |
---|---|---|
task |
'detect' |
Especifica la tarea YOLO: detect para detección de objetos, segment para segmentación, classify para clasificación, pose para la estimación de la pose, y obb para cajas delimitadoras orientadas. Cada tarea está adaptada a salidas y problemas específicos en el análisis de imágenes y vídeos. |
Modos
Los modelos YOLO de Ultralytics operan en diferentes modos, cada uno diseñado para una etapa específica del ciclo de vida del modelo:
- Entrenar: Entrena un modelo YOLO en un conjunto de datos personalizado.
- Val: Valide un modelo YOLO entrenado.
- Predecir: Utilice un modelo YOLO entrenado para hacer predicciones sobre nuevas imágenes o vídeos.
- Exportar: Exporte un modelo YOLO para su implementación.
- Seguimiento: Realice un seguimiento de objetos en tiempo real utilizando un modelo YOLO.
- Benchmark: Evalúe la velocidad y la precisión de las exportaciones de YOLO (ONNX, TensorRT, etc.).
Argumento | Predeterminado | Descripción |
---|---|---|
mode |
'train' |
Especifica el modo de operación 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 diferentes etapas, desde el desarrollo hasta la implementación. |
Ajustes de Entrenamiento
La configuración de entrenamiento para los modelos YOLO incluye hiperparámetros y configuraciones que afectan el rendimiento, la velocidad y la precisión del modelo. Los ajustes clave incluyen el tamaño del lote, la tasa de aprendizaje, el momento y la disminución del peso. La elección del optimizador, la función de pérdida y la composición del conjunto de datos también influyen en el entrenamiento. El ajuste y la experimentación son cruciales para un rendimiento óptimo. Para obtener más detalles, consulte la función de punto de entrada de Ultralytics.
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
model |
str |
None |
Especifica el archivo del modelo para el entrenamiento. Acepta una ruta a un .pt modelo preentrenado o a un .yaml archivo de configuración. Esencial para definir la estructura del modelo o inicializar los pesos. |
data |
str |
None |
Ruta al archivo de configuración del conjunto de datos (p. ej., coco8.yaml ). Este archivo contiene parámetros específicos del conjunto de datos, incluyendo las rutas al entrenamiento y a los datos de validación, los nombres de las clases y el número de clases. |
epochs |
int |
100 |
Número total de épocas de entrenamiento. Cada época representa un pase completo sobre todo el conjunto de datos. El ajuste de este valor puede afectar la duración del entrenamiento y el rendimiento del modelo. |
time |
float |
None |
Tiempo máximo de entrenamiento en horas. Si se establece, esto anula el epochs argumento, que permite que el entrenamiento se detenga automáticamente tras la duración especificada. Útil para escenarios de entrenamiento con restricciones de tiempo. |
patience |
int |
100 |
Número de épocas que se esperan sin mejora en las métricas de validación antes de detener el entrenamiento anticipadamente. Ayuda a prevenir el sobreajuste deteniendo el entrenamiento cuando el rendimiento se estanca. |
batch |
int o float |
16 |
Tamaño del lote (Batch size), con tres modos: establecido como un entero (p. ej., batch=16 ), modo automático para el 60% de utilización de la memoria de la GPU (batch=-1 ), o modo automático con fracción de utilización especificada (batch=0.70 ). |
imgsz |
int |
640 |
Tamaño de imagen objetivo para el entrenamiento. Las imágenes se redimensionan a cuadrados con lados iguales al valor especificado (si rect=False ), conservando la relación de aspecto para los modelos YOLO, pero no para RTDETR. Afecta al modelo precisión y complejidad computacional. |
save |
bool |
True |
Permite guardar los puntos de control del entrenamiento y los pesos finales del modelo. Útil para reanudar el entrenamiento o 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. Útil para guardar modelos provisionales durante sesiones de entrenamiento largas. |
cache |
bool |
False |
Permite el almacenamiento en caché de las imágenes del conjunto de datos en la memoria (True /ram ), en el disco (disk ), o lo desactiva (False ). Mejora la velocidad de entrenamiento al reducir las operaciones de E/S en el disco a costa de un mayor uso de la memoria. |
device |
int o str o list |
None |
Especifica el(los) dispositivo(s) computacional(es) para el entrenamiento: una sola GPU (device=0 ), múltiples GPUs (device=[0,1] ), CPU (device=cpu ), MPS para Apple silicon (device=mps ), o la selección automática de la GPU más inactiva (device=-1 ) o varias GPU inactivas (device=[-1,-1] ) |
workers |
int |
8 |
Número de hilos de trabajo para la carga de datos (por RANK si se entrena con múltiples GPU). Influye en la velocidad del preprocesamiento de los datos y en la alimentación del modelo, especialmente útil en configuraciones con múltiples GPU. |
project |
str |
None |
Nombre del directorio del proyecto donde se guardan los resultados del entrenamiento. Permite un almacenamiento organizado de los diferentes experimentos. |
name |
str |
None |
Nombre de la ejecución del entrenamiento. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan los registros y las salidas del entrenamiento. |
exist_ok |
bool |
False |
Si es True, permite sobrescribir un directorio de proyecto/nombre existente. Útil para la experimentación iterativa sin necesidad de borrar manualmente las salidas anteriores. |
pretrained |
bool o str |
True |
Determina si se debe comenzar el entrenamiento a partir de un modelo preentrenado. Puede ser un valor booleano o una ruta de cadena a un modelo específico desde el cual cargar los pesos. Mejora la eficiencia del entrenamiento y el rendimiento del modelo. |
optimizer |
str |
'auto' |
Elección del optimizador para el entrenamiento. Las opciones incluyen SGD , Adam , AdamW , NAdam , RAdam , RMSProp etc., o auto para la selección automática basada en la configuración del modelo. Afecta la velocidad y la estabilidad de la convergencia. |
seed |
int |
0 |
Establece la semilla aleatoria para el entrenamiento, asegurando la reproducibilidad de los resultados en ejecuciones con las mismas configuraciones. |
deterministic |
bool |
True |
Fuerza el uso de algoritmos deterministas, asegurando la reproducibilidad, pero puede afectar el rendimiento y la velocidad debido a la restricción de algoritmos no deterministas. |
single_cls |
bool |
False |
Trata todas las clases en conjuntos de datos de múltiples clases como una sola clase durante el entrenamiento. Útil para tareas de clasificación binaria o cuando se enfoca en la presencia de objetos en lugar de la clasificación. |
classes |
list[int] |
None |
Especifica una lista de IDs de clase para entrenar. Útil para filtrar y centrarse solo en ciertas clases durante el entrenamiento. |
rect |
bool |
False |
Permite una estrategia de relleno mínimo: las imágenes en un lote se rellenan mínimamente para alcanzar un tamaño común, con el lado más largo igual a imgsz . Puede mejorar la eficiencia y la velocidad, pero puede afectar la precisión del modelo. |
multi_scale |
bool |
False |
Permite el entrenamiento a múltiples escalas aumentando/disminuyendo imgsz hasta un factor de 0.5 durante el entrenamiento. Entrena el modelo para que sea más preciso con múltiples imgsz durante la inferencia. |
cos_lr |
bool |
False |
Utiliza un programador de tasa de aprendizaje coseno, ajustando la tasa de aprendizaje siguiendo una curva coseno a lo largo de las épocas. Ayuda a administrar la tasa de aprendizaje para una mejor convergencia. |
close_mosaic |
int |
10 |
Desactiva el aumento de datos de mosaico en las últimas N épocas para estabilizar el entrenamiento antes de completarse. Establecer en 0 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 recuento de épocas, continuando el entrenamiento sin problemas. |
amp |
bool |
True |
Habilita el entrenamiento Automático de Precisión Mixta (AMP), reduciendo el uso de memoria y posiblemente acelerando el entrenamiento con un impacto mínimo en la precisión. |
fraction |
float |
1.0 |
Especifica la fracción del conjunto de datos que se utilizará para el entrenamiento. Permite el entrenamiento en un subconjunto del conjunto de datos completo, útil para experimentos o cuando los recursos son limitados. |
profile |
bool |
False |
Permite la creación de perfiles de velocidades 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 las capas especificadas por índice, reduciendo el número de parámetros entrenables. Ú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 ). Ajustar este valor es crucial para el proceso de optimización, ya que influye en la rapidez con la que se actualizan los pesos del modelo. |
lrf |
float |
0.01 |
Tasa de aprendizaje final como una fracción de la tasa inicial = (lr0 * lrf ), utilizada junto con los programadores para ajustar la tasa de aprendizaje con el tiempo. |
momentum |
float |
0.937 |
Factor de momento para SGD o beta1 para optimizadores Adam, que influye en la incorporación de gradientes pasados en 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 para el calentamiento de la tasa de aprendizaje, aumentando gradualmente la tasa de aprendizaje desde un valor bajo hasta la tasa de aprendizaje inicial para estabilizar el entrenamiento al principio. |
warmup_momentum |
float |
0.8 |
Momento inicial para la fase de calentamiento, ajustándose gradualmente al momento establecido durante el período de calentamiento. |
warmup_bias_lr |
float |
0.1 |
Tasa de aprendizaje para los parámetros de sesgo durante la fase de calentamiento, lo que ayuda a estabilizar el entrenamiento del modelo en las épocas iniciales. |
box |
float |
7.5 |
Peso del componente de pérdida de la caja en la función de pérdida, que influye en la cantidad de énfasis que se pone en la predicción precisa de 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 afecta la importancia de la predicción correcta de la clase en relación con otros componentes. |
dfl |
float |
1.5 |
Peso de la pérdida focal de distribución, utilizada en ciertas versiones de YOLO para la clasificación de grano fino. |
pose |
float |
12.0 |
Peso de la pérdida de pose en los modelos entrenados para la estimación de la pose, lo que influye en el énfasis en la predicción precisa de los puntos clave de la pose. |
kobj |
float |
2.0 |
Peso de la pérdida de objetividad de los puntos clave en los modelos de estimación de pose, equilibrando la confianza de la detección con la precisión de la pose. |
nbs |
int |
64 |
Tamaño de lote nominal para la normalización de la pérdida. |
overlap_mask |
bool |
True |
Determina si las máscaras de objeto deben fusionarse en una sola máscara para el entrenamiento, o mantenerse separadas para cada objeto. En caso de superposición, la máscara más pequeña se superpone a la máscara más grande durante la fusión. |
mask_ratio |
int |
4 |
Ratio de submuestreo para las máscaras de segmentación, que afecta la resolución de las máscaras utilizadas durante el entrenamiento. |
dropout |
float |
0.0 |
Tasa de dropout para la regularización en tareas de clasificación, previniendo el sobreajuste al omitir aleatoriamente unidades durante el entrenamiento. |
val |
bool |
True |
Habilita la validación durante el entrenamiento, permitiendo la evaluación periódica del rendimiento del modelo en un conjunto de datos separado. |
plots |
bool |
False |
Genera y guarda gráficos de las métricas de entrenamiento y validación, así como ejemplos de predicción, proporcionando información visual sobre el rendimiento del modelo y la progresión del aprendizaje. |
Nota sobre la configuración del tamaño de lote
El batch
argumento ofrece tres opciones de configuración:
- Tamaño de lote fijo: Especifica el número de imágenes por lote con un entero (p. ej.,
batch=16
). - Modo Automático (60% de Memoria de la GPU): Use
batch=-1
para el ajuste automático a aproximadamente el 60% de la utilización de la memoria CUDA. - Modo Automático con Fracción de Utilización: Establece una fracción (p. ej.,
batch=0.70
) para ajustarse en función del uso especificado de la memoria de la GPU.
Ajustes de Predicción
La configuración de predicción para los modelos YOLO incluye hiperparámetros y configuraciones que influyen en el rendimiento, la velocidad y la precisión durante la inferencia. Los ajustes clave incluyen el umbral de confianza, el umbral de Supresión No Máxima (NMS) y el número de clases. El tamaño de los datos de entrada, el formato y las características suplementarias como las máscaras también afectan a las predicciones. Ajustar esta configuración es esencial para un rendimiento óptimo.
Argumentos de inferencia:
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
source |
str |
'ultralytics/assets' |
Especifica la fuente de datos para la inferencia. Puede ser una ruta de imagen, un archivo de vídeo, un directorio, una URL o un ID de dispositivo para transmisiones en vivo. Admite una amplia gama de formatos y fuentes, lo que permite una aplicación flexible a través de diferentes tipos de entrada. |
conf |
float |
0.25 |
Establece 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. |
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 resultan en menos detecciones al eliminar los cuadros superpuestos, lo cual es útil para reducir los duplicados. |
imgsz |
int o tuple |
640 |
Define el tamaño de la imagen para la inferencia. Puede ser un entero único 640 para el redimensionamiento cuadrado o una tupla (alto, ancho). El tamaño adecuado puede mejorar la detección precisión y la velocidad de procesamiento. |
rect |
bool |
True |
Si está habilitado, rellena mínimamente el lado más corto de la imagen hasta que sea divisible por el stride para mejorar la velocidad de inferencia. Si está deshabilitado, rellena la imagen a un cuadrado durante la inferencia. |
half |
bool |
False |
Activa la inferencia de media precisión (FP16), lo que puede acelerar la inferencia del modelo en las GPUs compatibles con un impacto mínimo en la precisión. |
device |
str |
None |
Especifica el dispositivo para la inferencia (p. ej., cpu , cuda:0 o 0 ). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de cálculo para la ejecución del modelo. |
batch |
int |
1 |
Especifica el tamaño del lote para la inferencia (solo funciona cuando la fuente es un directorio, archivo de video o .txt archivo). Un tamaño de lote mayor puede proporcionar un mayor rendimiento, acortando la cantidad total de tiempo requerido para la inferencia. |
max_det |
int |
300 |
Número máximo de detecciones permitidas 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_stride |
int |
1 |
Stride de fotogramas para entradas de vídeo. Permite omitir fotogramas en vídeos para acelerar el procesamiento a costa de la resolución temporal. Un valor de 1 procesa cada fotograma, los valores más altos omiten fotogramas. |
stream_buffer |
bool |
False |
Determina si se deben poner en cola los fotogramas entrantes para las transmisiones de vídeo. Si False , los fotogramas antiguos se descartan para dar cabida a los nuevos (optimizado para aplicaciones en tiempo real). Si True , pone en cola nuevos fotogramas en un búfer, asegurando que no se omitan fotogramas, pero causará latencia si los FPS de inferencia son más bajos que los FPS del flujo. |
visualize |
bool |
False |
Activa la visualización de las características del modelo durante la inferencia, proporcionando información sobre lo que el modelo está "viendo". Útil para la depuración y la interpretación del modelo. |
augment |
bool |
False |
Activa el aumento de datos en tiempo de prueba (TTA) para las predicciones, lo que podría mejorar la robustez de la detección a costa de la velocidad de inferencia. |
agnostic_nms |
bool |
False |
Activa la Supresión No Máxima (NMS) agnóstica a la clase, que fusiona los cuadros superpuestos de diferentes clases. Útil en escenarios de detección de múltiples clases donde la superposición de clases es común. |
classes |
list[int] |
None |
Filtra las predicciones a un conjunto de ID de clase. Solo se devolverán las detecciones pertenecientes a las clases especificadas. Útil para centrarse en objetos relevantes en tareas de detección de múltiples clases. |
retina_masks |
bool |
False |
Devuelve máscaras de segmentación de alta resolución. Las máscaras devueltas (masks.data ) coincidirán con el tamaño de la imagen original si está activado. Si está desactivado, tienen el tamaño de imagen utilizado durante la inferencia. |
embed |
list[int] |
None |
Especifica las capas de las que se extraerán los vectores de características o los embeddings. Útil para tareas posteriores como la agrupación o la búsqueda de similitud. |
project |
str |
None |
Nombre del directorio del proyecto donde se guardan las salidas de predicción si save está activado. |
name |
str |
None |
Nombre de la ejecución de la predicción. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan las salidas de la predicción si save está activado. |
stream |
bool |
False |
Permite el procesamiento eficiente de la memoria para videos largos o numerosas imágenes al devolver un generador de objetos Results en lugar de cargar todos los fotogramas en la memoria a la vez. |
verbose |
bool |
True |
Controla si se deben mostrar registros de inferencia detallados en la terminal, proporcionando retroalimentación en tiempo real sobre el proceso de predicción. |
Argumentos de visualización:
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
show |
bool |
False |
Si True , muestra las imágenes o vídeos anotados en una ventana. Útil para obtener información visual inmediata durante el desarrollo o las pruebas. |
save |
bool |
False or True |
Permite guardar las imágenes o vídeos anotados en un archivo. Útil para la documentación, el análisis posterior o el intercambio de resultados. El valor predeterminado es True cuando se utiliza la CLI y False cuando se utiliza en python. |
save_frames |
bool |
False |
Cuando se procesan vídeos, guarda los fotogramas individuales como imágenes. Útil para extraer fotogramas específicos o para un análisis detallado fotograma a fotograma. |
save_txt |
bool |
False |
Guarda los resultados de la detección en un archivo de texto, siguiendo el formato [class] [x_center] [y_center] [width] [height] [confidence] . Útil para la integración con otras herramientas de análisis. |
save_conf |
bool |
False |
Incluye las puntuaciones de confianza en los archivos de texto guardados. Mejora el detalle disponible para el post-procesamiento y el análisis. |
save_crop |
bool |
False |
Guarda imágenes recortadas de las detecciones. Útil para el aumento del conjunto de datos, el análisis o la creación de conjuntos de datos enfocados para objetos específicos. |
show_labels |
bool |
True |
Muestra etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados. |
show_conf |
bool |
True |
Muestra la puntuación de confianza para cada detección junto con la etiqueta. Ofrece información sobre la certeza del modelo para cada detección. |
show_boxes |
bool |
True |
Dibuja 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_width |
None or int |
None |
Especifica el ancho de línea de los cuadros delimitadores. Si None , el ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad. |
Ajustes de Validación
La configuración de validación para los modelos YOLO implica hiperparámetros y configuraciones para evaluar el rendimiento en un conjunto de datos de validación. Estos ajustes influyen en el rendimiento, la velocidad y la precisión. Los ajustes comunes incluyen el tamaño del lote, la frecuencia de validación y las métricas de rendimiento. El tamaño y la composición del conjunto de datos de validación, junto con la tarea específica, también afectan el proceso.
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
data |
str |
None |
Especifica la ruta al archivo de configuración del conjunto de datos (por ejemplo, coco8.yaml ). Este archivo incluye rutas a datos de validación, los nombres de las clases y el número de clases. |
imgsz |
int |
640 |
Define el tamaño de las imágenes de entrada. Todas las imágenes se redimensionan a esta dimensión antes de procesarlas. Los tamaños más grandes pueden mejorar la precisión para 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 utilizan la memoria de la GPU de forma más eficiente, pero requieren más VRAM. Ajústelo en función de los recursos de hardware disponibles. |
save_json |
bool |
False |
Si 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. |
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. Se utiliza durante la validación para calcular las curvas de precisión-exhaustividad. |
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. Útil en escenas densas para evitar detecciones excesivas y gestionar los recursos computacionales. |
half |
bool |
True |
Activa el cálculo en media precisión (FP16), lo que reduce el uso de memoria y puede aumentar la velocidad con un impacto mínimo en la precisión. |
device |
str |
None |
Especifica el dispositivo para la validación (cpu , cuda:0 , etc.). Cuando None , selecciona automáticamente el mejor dispositivo disponible. Se pueden especificar múltiples dispositivos CUDA separados por comas. |
dnn |
bool |
False |
Si True , utiliza el OpenCV módulo DNN para la inferencia del modelo ONNX, ofreciendo una alternativa a los métodos de inferencia PyTorch . |
plots |
bool |
False |
Cuando se establece en True , genera y guarda gráficos de predicciones versus la verdad fundamental, matrices de confusión y curvas PR para la evaluación visual del rendimiento del modelo. |
classes |
list[int] |
None |
Especifica una lista de IDs de clase para entrenar. Útil para filtrar y centrarse solo en ciertas clases durante la evaluación. |
rect |
bool |
True |
Si True , utiliza la inferencia rectangular para el procesamiento por lotes, reduciendo el relleno y aumentando potencialmente la velocidad y la eficiencia al procesar las imágenes en su relación de aspecto original. |
split |
str |
'val' |
Determina la división del conjunto de datos que se utilizará para la validación (val , test , o train ). Permite flexibilidad al elegir el segmento de datos para la evaluación del rendimiento. |
project |
str |
None |
Nombre del directorio del proyecto donde se guardan los resultados de la validación. Ayuda a organizar los resultados de diferentes experimentos o modelos. |
name |
str |
None |
Nombre 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 la validación. |
verbose |
bool |
False |
Si True , muestra información detallada durante el proceso de validación, incluyendo métricas por clase, progreso del lote e información de depuración adicional. |
save_txt |
bool |
False |
Si True , guarda los resultados de la detección en archivos de texto, con un archivo por imagen, lo que es útil para análisis posteriores, post-procesamiento personalizado o integración con otros sistemas. |
save_conf |
bool |
False |
Si True , incluye valores de confianza en los archivos de texto guardados cuando save_txt está habilitado, proporcionando una salida más detallada para el análisis y el filtrado. |
workers |
int |
8 |
Número de hilos 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. Establecer en 0 utiliza el hilo principal, que puede ser más estable en algunos entornos. |
augment |
bool |
False |
Habilita el aumento en tiempo de prueba (TTA) durante la validación, lo que podría mejorar la precisión de la detección a costa de la velocidad de inferencia al ejecutar la inferencia en versiones transformadas de la entrada. |
agnostic_nms |
bool |
False |
Habilita la Supresión No Máxima independiente de la clase, que fusiona cuadros superpuestos independientemente de su clase predicha. Útil para aplicaciones centradas en instancias. |
single_cls |
bool |
False |
Trata todas las clases como una sola clase durante la validación. Útil para evaluar el rendimiento del modelo en tareas de detección binaria o cuando las distinciones de clase no son importantes. |
visualize |
bool |
False |
Visualiza los ground truths, verdaderos positivos, falsos positivos y falsos negativos para cada imagen. Útil para la depuración e interpretación del modelo. |
Un ajuste y experimentación cuidadosos son cruciales para asegurar un rendimiento óptimo y para detectar y prevenir el sobreajuste.
Ajustes de Exportación
Los ajustes de exportación para los modelos YOLO incluyen configuraciones para guardar o exportar el modelo para su uso en diferentes entornos. Estos ajustes impactan el rendimiento, el tamaño y la compatibilidad. Los ajustes clave incluyen el formato de archivo exportado (p. ej., ONNX, TensorFlow SavedModel), el dispositivo de destino (p. ej., CPU, GPU) y características como las máscaras. La tarea del modelo y las restricciones del entorno de destino también afectan el proceso de exportación.
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
format |
str |
'torchscript' |
Formato de destino para el modelo exportado, como 'onnx' , 'torchscript' , 'engine' (TensorRT) u otros. Cada formato permite la compatibilidad con diferentes entornos de implementación. |
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 específicas. |
keras |
bool |
False |
Activa la exportación al formato Keras para TensorFlow SavedModel, proporcionando compatibilidad con el servicio y las API de TensorFlow. |
optimize |
bool |
False |
Aplica la optimización para dispositivos móviles al exportar a TorchScript, lo que podría reducir el tamaño del modelo y mejorar el rendimiento de la inferencia. No es compatible con el formato NCNN ni con los dispositivos CUDA. |
half |
bool |
False |
Habilita la cuantificación FP16 (media precisión), reduciendo el tamaño del modelo y potencialmente acelerando la inferencia en hardware compatible. No es compatible con la cuantificación INT8 o las exportaciones solo para CPU para ONNX. |
int8 |
bool |
False |
Activa la cuantificación INT8, comprimiendo aún más el modelo y acelerando la inferencia con una mínima pérdida de precisión, principalmente para dispositivos de borde. Cuando se utiliza con TensorRT, realiza la cuantificación posterior al entrenamiento (PTQ). |
dynamic |
bool |
False |
Permite tamaños de entrada dinámicos para las exportaciones de ONNX, TensorRT y OpenVINO, lo que mejora la flexibilidad en el manejo de diferentes dimensiones de imagen. Se establece automáticamente en True al usar TensorRT con INT8. |
simplify |
bool |
True |
Simplifica el gráfico del modelo para las exportaciones ONNX con onnxslim , mejorando potencialmente el rendimiento y la compatibilidad con los motores de inferencia. |
opset |
int |
None |
Especifica la versión de ONNX opset para la compatibilidad con diferentes analizadores y tiempos de ejecución ONNX. Si no se establece, utiliza la última versión compatible. |
workspace |
float o None |
None |
Establece el tamaño máximo del espacio de trabajo en GiB para TensorRT optimizaciones, equilibrando el uso de la memoria y el rendimiento. Utilice None para la asignación automática por TensorRT hasta el máximo del dispositivo. |
nms |
bool |
False |
Añade la supresión no máxima (NMS) al modelo exportado cuando es compatible (ver Formatos de exportación), mejorando la eficiencia del post-procesamiento de la detección. No disponible para modelos end2end. |
batch |
int |
1 |
Especifica el tamaño del lote de inferencia del modelo de exportación o el número máximo de imágenes que el modelo exportado procesará simultáneamente en predict modo. Para las exportaciones de Edge TPU, esto se establece automáticamente en 1. |
device |
str |
None |
Especifica el dispositivo para la exportación: GPU (device=0 ), CPU (device=cpu ), MPS para Apple silicon (device=mps ) o DLA para NVIDIA Jetson (device=dla:0 o device=dla:1 ). Las exportaciones de TensorRT utilizan automáticamente la GPU. |
data |
str |
'coco8.yaml' |
Ruta al conjunto de datos archivo de configuración (por defecto: coco8.yaml ), esencial para la calibración de la cuantificación INT8. Si no se especifica con INT8 habilitado, se asignará un conjunto de datos predeterminado. |
fraction |
float |
1.0 |
Especifica la fracción del conjunto de datos que se utilizará para la calibración de la cuantificación INT8. Permite calibrar en un subconjunto del conjunto de datos completo, útil para experimentos o cuando los recursos son limitados. Si no se especifica con INT8 habilitado, se utilizará el conjunto de datos completo. |
Una configuración bien pensada asegura que el modelo exportado esté optimizado para su caso de uso y funcione eficazmente en el entorno objetivo.
Ajustes de soluciones
La configuración de las soluciones de Ultralytics ofrece flexibilidad para personalizar modelos para tareas como el conteo 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 conteo basado en regiones. Estas opciones permiten ajustes sencillos para obtener resultados precisos y útiles adaptados a necesidades específicas.
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
model |
str |
None |
Ruta al archivo del modelo YOLO de Ultralytics. |
region |
list |
'[(20, 400), (1260, 400)]' |
Lista de puntos que definen la región de conteo. |
show_in |
bool |
True |
Indica si se deben mostrar los conteos de entrada en la transmisión de video. |
show_out |
bool |
True |
Indica si se deben mostrar los conteos de salida en la transmisión de video. |
analytics_type |
str |
line |
Tipo de gráfico, es decir, line , bar , area , o pie . |
colormap |
int |
cv2.COLORMAP_JET |
Mapa de colores que se utilizará para el mapa de calor. |
json_file |
str |
None |
Ruta al archivo JSON que contiene todos los datos de coordenadas de estacionamiento. |
up_angle |
float |
145.0 |
Umbral de ángulo para la pose 'arriba'. |
kpts |
list[int, int, int] |
'[6, 8, 10]' |
Lista de puntos clave utilizados para monitorizar los 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_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 en el rango 0.1 - 1.0 . |
crop_dir |
str |
'cropped-detections' |
Nombre del directorio para almacenar las detecciones recortadas. |
records |
int |
5 |
Conteo total de detecciones para activar un correo electrónico con el sistema de alarma de seguridad. |
vision_point |
tuple[int, int] |
(20, 20) |
El punto donde la visión rastreará objetos y dibujará rutas utilizando VisionEye Solution. |
source |
str |
None |
Ruta a la fuente de entrada (video, RTSP, etc.). Solo se puede utilizar con la interfaz de línea de comandos (CLI) de Solutions. |
figsize |
tuple[int, int] |
(12.8, 7.2) |
Tamaño de la figura para gráficos analíticos como mapas de calor o gráficos. |
fps |
float |
30.0 |
Fotogramas por segundo utilizados para los cálculos de velocidad. |
max_hist |
int |
5 |
Puntos históricos máximos para rastrear por objeto para cálculos de velocidad/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 |
Límite de velocidad máximo en superposiciones visuales (utilizado en alertas). |
data |
str |
'images' |
Ruta al directorio de imágenes utilizado para la búsqueda de similitud. |
Ajustes de Aumento de Datos
Las técnicas de aumento de datos son esenciales para mejorar la robustez y el rendimiento del modelo YOLO al introducir variabilidad en los datos de entrenamiento, lo que ayuda al modelo a generalizar mejor a datos no vistos. La siguiente tabla describe el propósito y el efecto de cada argumento de aumento:
Argumento | Tipo | Predeterminado | Rango | Descripción |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
Ajusta el tono de la imagen en una fracción de la rueda de colores, introduciendo variabilidad de color. Ayuda al modelo a generalizar en diferentes condiciones de iluminación. |
hsv_s |
float |
0.7 |
0.0 - 1.0 |
Altera la saturación de la imagen en una fracción, afectando la intensidad de los colores. Útil para simular diferentes condiciones ambientales. |
hsv_v |
float |
0.4 |
0.0 - 1.0 |
Modifica el valor (brillo) de la imagen en una fracción, ayudando al modelo a funcionar bien en diversas condiciones de iluminación. |
degrees |
float |
0.0 |
0.0 - 180 |
Rota la imagen aleatoriamente dentro del rango de grados especificado, mejorando la capacidad del modelo para reconocer objetos en varias orientaciones. |
translate |
float |
0.1 |
0.0 - 1.0 |
Traslada la imagen horizontal y verticalmente en una fracción del tamaño de la imagen, ayudando a aprender a detectar objetos parcialmente visibles. |
scale |
float |
0.5 |
>=0.0 |
Escala la imagen mediante un factor de ganancia, simulando objetos a diferentes distancias de la cámara. |
shear |
float |
0.0 |
-180 - +180 |
Cizalla la imagen según un grado especificado, imitando el efecto de objetos vistos desde diferentes ángulos. |
perspective |
float |
0.0 |
0.0 - 0.001 |
Aplica una transformación de perspectiva aleatoria a la imagen, mejorando la capacidad del modelo para comprender objetos en el espacio 3D. |
flipud |
float |
0.0 |
0.0 - 1.0 |
Invierte la imagen verticalmente con la probabilidad especificada, aumentando la variabilidad de los datos sin afectar las características del objeto. |
fliplr |
float |
0.5 |
0.0 - 1.0 |
Invierte la imagen de izquierda a derecha con la probabilidad especificada, útil para aprender objetos simétricos y aumentar la diversidad del conjunto de datos. |
bgr |
float |
0.0 |
0.0 - 1.0 |
Invierte los canales de la imagen de RGB a BGR con la probabilidad especificada, útil para aumentar la robustez ante un orden incorrecto de los canales. |
mosaic |
float |
1.0 |
0.0 - 1.0 |
Combina cuatro imágenes de entrenamiento en una, simulando diferentes composiciones de escena e interacciones de objetos. Altamente eficaz para la comprensión de escenas complejas. |
mixup |
float |
0.0 |
0.0 - 1.0 |
Mezcla dos imágenes y sus etiquetas, creando una imagen compuesta. Mejora la capacidad del modelo para generalizar al introducir ruido en las etiquetas y variabilidad visual. |
cutmix |
float |
0.0 |
0.0 - 1.0 |
Combina porciones de dos imágenes, creando una mezcla parcial mientras mantiene regiones distintas. Mejora la robustez del modelo al crear escenarios de oclusión. |
copy_paste |
float |
0.0 |
0.0 - 1.0 |
Solo segmentación. Copia y pega objetos a través de imágenes para aumentar las instancias de objetos. |
copy_paste_mode |
str |
flip |
- | Solo segmentación. Especifica el copy-paste estrategia a utilizar. Las opciones incluyen 'flip' y 'mixup' . |
auto_augment |
str |
randaugment |
- | Solo clasificación. Aplica una política de aumento predefinida ('randaugment' , 'autoaugment' , o 'augmix' ) para mejorar el rendimiento del modelo a través de la diversidad visual. |
erasing |
float |
0.4 |
0.0 - 0.9 |
Solo clasificación. Borra aleatoriamente regiones de la imagen durante el entrenamiento para animar al modelo a centrarse en características menos obvias. |
Ajuste esta configuración para cumplir con los requisitos del conjunto de datos y de la tarea. Experimentar con diferentes valores puede ayudar a encontrar la estrategia de aumento óptima para obtener el mejor rendimiento del modelo.
Ajustes de Registro, Puntos de Control y Trazado
El registro, los puntos de control, el trazado y la gestión de archivos son importantes al entrenar un modelo YOLO:
- Registro: Realiza un seguimiento del progreso del modelo y diagnostica problemas utilizando bibliotecas como TensorBoard o escribiendo en un archivo.
- Puntos de control: Guarde el modelo a intervalos regulares para reanudar el entrenamiento o experimentar con diferentes configuraciones.
- Trazado de Gráficos: Visualice el rendimiento y el progreso del entrenamiento utilizando bibliotecas como matplotlib o TensorBoard.
- Gestión de archivos: Organice 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 |
'runs' |
Especifica el directorio raíz para guardar las ejecuciones de entrenamiento. Cada ejecución se guarda en un subdirectorio separado. |
name |
'exp' |
Define el nombre del experimento. Si no se especifica, YOLO incrementa este nombre para cada ejecución (p. ej., exp , exp2 ) para evitar la sobreescritura. |
exist_ok |
False |
Determina si se debe sobrescribir un directorio de experimento existente. True permite la sobreescritura; False la impide. |
plots |
False |
Controla la generación y el guardado de gráficos de entrenamiento y validación. Establecer en True para crear gráficos como curvas de pérdida, precisión-exhaustividad curvas y predicciones de muestra para el seguimiento visual del rendimiento. |
save |
False |
Permite guardar los puntos de control de entrenamiento y los pesos del modelo final. Establecer en True para guardar los estados del modelo periódicamente, lo que permite la reanudación del entrenamiento o la implementación del modelo. |
Preguntas frecuentes
¿Cómo puedo mejorar el rendimiento de mi modelo YOLO durante el entrenamiento?
Mejore el rendimiento ajustando los hiperparámetros como el tamaño del lote, la tasa de aprendizaje, el momento y la disminución del peso. Ajuste la configuración de la aumentación de datos, seleccione el optimizador correcto y utilice técnicas como la parada temprana o la precisión mixta. Para obtener más información, consulte la Guía de entrenamiento.
¿Cuáles son los hiperparámetros clave para la precisión del modelo YOLO?
Los hiperparámetros clave que afectan la precisión incluyen:
- Tamaño del 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 ofrecen ajustes finos pero una convergencia más lenta. - Momento (
momentum
): Acelera los vectores de gradiente, amortiguando las oscilaciones. - Tamaño de la imagen (
imgsz
): Los tamaños más grandes mejoran la precisión, pero aumentan la carga computacional.
Ajuste estos valores según su conjunto de datos y hardware. Obtenga más información en Ajustes de entrenamiento.
¿Cómo configuro la tasa de aprendizaje para entrenar un modelo YOLO?
La tasa de aprendizaje (lr0
) es crucial; comience con 0.01
para SGD o 0.001
para Optimizador Adam. Supervise las métricas y ajústelas según sea necesario. Utilice planificadores de la tasa de aprendizaje coseno (cos_lr
) o warmup (warmup_epochs
, warmup_momentum
). Los detalles están en el Guía de Entrenamiento.
¿Cuáles son los ajustes de inferencia predeterminados para los modelos YOLO?
Los ajustes predeterminados incluyen:
- Umbral de confianza (
conf=0.25
): Confianza mínima para las detecciones. - Umbral de IoU (
iou=0.7
): Para Supresión No Máxima (NMS). - Tamaño de la imagen (
imgsz=640
): Redimensiona las imágenes de entrada. - Dispositivo (
device=None
): Selecciona CPU o GPU.
Para obtener una visión general completa, consulta Ajustes de predicción y la Guía de predicción.
¿Por qué usar el entrenamiento de precisión mixta con los modelos YOLO?
Precisión mixta entrenamiento (amp=True
) reduce el uso de memoria y acelera el entrenamiento utilizando FP16 y FP32. Es beneficioso para las GPUs modernas, permitiendo modelos más grandes y cálculos más rápidos sin una pérdida significativa de precisión. Obtenga más información en la Guía de Entrenamiento.