Configuración
Los ajustes de YOLO y los hiperparámetros desempeñan un papel fundamental en el rendimiento, la velocidad y la precisión del modelo. Estos ajustes pueden afectar al comportamiento del modelo en distintas fases, como el entrenamiento, la validación y la predicción.
Ver: Dominio de Ultralytics YOLO: Configuración
Observa: Dominio de Ultralytics YOLO : Configuración
Ultralytics utilizan la siguiente sintaxis:
Ejemplo
Dónde:
TASK
(opcional) es uno de (detectar, segmento, clasificar, posar, obb)MODE
(obligatorio) es uno de (tren, val, predecir, exportar, pista, referencia)ARGS
(opcional) sonarg=value
pares comoimgsz=640
que anulan los valores predeterminados.
Por defecto ARG
se definen en esta página y proceden de los valores cfg/defaults.yaml
archivo.
Tareas
Los modelosYOLO Ultralytics pueden realizar una gran variedad de tareas de visión por ordenador, entre las que se incluyen:
- Detectar: La detección de objetos identifica y localiza objetos dentro de una imagen o vídeo.
- Segmentación: La segmentación de instancias divide una imagen o vídeo en regiones correspondientes 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 la pose identifica objetos y estima sus puntos clave en una imagen o vídeo.
- OBB: Oriented Bounding Boxes (cajas delimitadoras orientadas ) utiliza cajas delimitadoras rotadas, adecuadas para imágenes médicas o de satélite.
Argumento | Por defecto | Descripción |
---|---|---|
task |
'detect' |
Especifica la tarea YOLO : detect para detección de objetos, segment para la segmentación, classify para la clasificación, pose para la estimación de la pose, y obb para cuadros delimitadores orientados. Cada tarea se adapta a resultados y problemas específicos del análisis de imágenes y vídeos. |
Modos
Los modelosYOLO Ultralytics funcionan 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: Validar un modelo YOLO entrenado.
- Predecir: Utiliza un modelo YOLO entrenado para hacer predicciones sobre nuevas imágenes o vídeos.
- Exportar: Exporta un modelo YOLO para su despliegue.
- Rastrear: Rastrea objetos en tiempo real utilizando un modelo YOLO .
- Benchmark: Evalúe la velocidad y precisión de las exportaciones de YOLO ONNX, TensorRT, etc.).
Argumento | Por defecto | Descripción |
---|---|---|
mode |
'train' |
Especifica el modo de funcionamiento del modelo YOLO : train para el entrenamiento del modelo, val para su validación, predict para la inferencia, export para convertir a formatos de despliegue, track para el seguimiento de objetos, y benchmark para evaluar el rendimiento. Cada modo admite distintas fases, desde el desarrollo hasta la implantación. |
Ajustes del tren
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. Los ajustes clave incluyen el tamaño del lote, la velocidad de aprendizaje, el impulso 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 más detalles, consulte la función de entrada deUltralytics .
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
model |
str |
None |
Especifica el archivo modelo para el entrenamiento. Acepta una ruta a un archivo .pt modelo preentrenado o un .yaml archivo de configuración. Imprescindible para definir la estructura del modelo o inicializar los pesos. |
data |
str |
None |
Ruta al archivo de configuración del conjunto de datos (por ejemplo, coco8.yaml ). Este archivo contiene parámetros específicos del conjunto de datos, incluidas las rutas a los archivos de entrenamiento y datos de validaciónnombres de las clases y número de clases. |
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 |
Tiempo máximo de entrenamiento en horas. Si se establece, anula el epochs lo que permite que el entrenamiento se detenga automáticamente después de la duración especificada. Resulta útil en situaciones de formación con limitaciones de tiempo. |
patience |
int |
100 |
Número de épocas que hay que esperar sin que mejoren las métricas de validación antes de detener el entrenamiento. Ayuda a evitar el sobreajuste al detener el entrenamiento cuando el rendimiento se estanca. |
batch |
int |
16 |
Tamaño del lotecon tres modos: establecido como un número entero (por ejemplo, batch=16 ), modo automático para una utilización de la memoria del 60% GPU (batch=-1 ), o modo automático con la fracción de utilización especificada (batch=0.70 ). |
imgsz |
int o list |
640 |
Tamaño de imagen objetivo para el entrenamiento. Todas las imágenes se redimensionan a esta dimensión antes de introducirlas en el modelo. Afecta a la precisión del modelo y a la complejidad computacional. |
save |
bool |
True |
Permite guardar los puntos de control del entrenamiento y los pesos finales del modelo. Resulta útil para reanudar el entrenamiento o el despliegue del modelo. |
save_period |
int |
-1 |
Frecuencia con la que se guardan 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 almacenar en caché las imágenes del conjunto de datos en la memoria (True /ram ), en disco (disk ), o lo desactiva (False ). Mejora la velocidad de entrenamiento reduciendo la E/S de disco a costa de un mayor uso de memoria. |
device |
int o str o list |
None |
Especifica el dispositivo o dispositivos informáticos para el entrenamiento: un único GPU (device=0 ), varias GPU (device=0,1 ), CPU (device=cpu ), o MPS para el silicio de Apple (device=mps ). |
workers |
int |
8 |
Número de subprocesos de trabajo para la carga de datos (por RANK si entrenamiento Multi-GPU ). Influye en la velocidad de preprocesamiento de datos y alimentación del modelo, especialmente útil en configuraciones multiGPU . |
project |
str |
None |
Nombre del directorio del proyecto donde se guardan los resultados del entrenamiento. Permite el almacenamiento organizado de diferentes experimentos. |
name |
str |
None |
Nombre del entrenamiento. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan los registros de entrenamiento y los resultados. |
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 los resultados anteriores. |
pretrained |
bool o str |
True |
Determina si se inicia 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 que cargar los pesos. Mejora la eficacia del entrenamiento y el rendimiento del modelo. |
optimizer |
str |
'auto' |
Elección del optimizador para la formación. 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 a la velocidad de convergencia y a la estabilidad. |
seed |
int |
0 |
Establece la semilla aleatoria para el entrenamiento, garantizando la reproducibilidad de los resultados entre 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 algoritmos no deterministas. |
single_cls |
bool |
False |
Trata todas las clases de los conjuntos de datos multiclase como una única clase durante el entrenamiento. Útil para tareas de clasificación binaria o cuando se centra en la presencia de objetos en lugar de en la clasificación. |
classes |
list[int] |
None |
Especifica una lista de IDs de clase para entrenar. Útil para filtrar y centrarse sólo en ciertas clases durante el entrenamiento. |
rect |
bool |
False |
Permite la formación rectangular, optimizando la composición del lote para un relleno mínimo. Puede mejorar la eficiencia y la velocidad, pero puede afectar a la precisión del modelo. |
multi_scale |
bool |
False |
Permite la formación multiescala 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 la tasa de aprendizaje coseno, ajustando la tasa de aprendizaje siguiendo una curva coseno a lo largo de las épocas. Ayuda a gestionar la tasa de aprendizaje para mejorar la convergencia. |
close_mosaic |
int |
10 |
Desactiva el aumento de datos de mosaico en las últimas N épocas para estabilizar el entrenamiento antes de su finalización. El valor 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 para continuar el entrenamiento sin problemas. |
amp |
bool |
True |
Permite el entrenamiento automático de precisión mixta (AMP), lo que reduce el uso de memoria y posiblemente acelera 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 perfilar las velocidades de ONNX y TensorRT durante el entrenamiento, lo que resulta útil para optimizar el despliegue del modelo. |
freeze |
int o list |
None |
Congela las primeras N capas del modelo o 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 ). El ajuste de este valor es crucial para el proceso de optimización, ya que influye en la rapidez con la que se actualizan las ponderaciones del modelo. |
lrf |
float |
0.01 |
Tasa de aprendizaje final como fracción de la tasa inicial = (lr0 * lrf ), que se utiliza junto con los programadores para ajustar el ritmo de aprendizaje a lo largo del tiempo. |
momentum |
float |
0.937 |
Factor de impulso 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 desde el principio. |
warmup_momentum |
float |
0.8 |
Impulso inicial para la fase de calentamiento, ajustándose gradualmente al impulso 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 épocas iniciales. |
box |
float |
7.5 |
Peso del componente de pérdida de caja en la función de pérdida, que influye en el énfasis que se pone en predecir con precisión las coordenadas de la caja delimitadora. |
cls |
float |
0.5 |
Peso de la pérdida de clasificación en la función de pérdida total, que afecta a la importancia de la predicción de clase correcta en relación con otros componentes. |
dfl |
float |
1.5 |
Ponderación de la pérdida focal de distribución, utilizada en algunas versiones de YOLO para la clasificación fina. |
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 la importancia de predecir con precisión los puntos clave de la pose. |
kobj |
float |
2.0 |
Ponderación de la pérdida de objetividad del punto clave en los modelos de estimación de la pose, equilibrando la confianza en la detección con la precisión de la pose. |
nbs |
int |
64 |
Tamaño nominal del lote para la normalización de la pérdida. |
overlap_mask |
bool |
True |
Determina si las máscaras de los objetos deben fusionarse en una única máscara para el entrenamiento, o mantenerse separadas para cada objeto. En caso de solapamiento, la máscara más pequeña se superpone a la más grande durante la fusión. |
mask_ratio |
int |
4 |
Relación de reducción de la muestra para las máscaras de segmentación, que afecta a la resolución de las máscaras utilizadas durante el entrenamiento. |
dropout |
float |
0.0 |
Tasa de abandono para la regularización en tareas de clasificación, que evita el sobreajuste omitiendo aleatoriamente unidades durante el entrenamiento. |
val |
bool |
True |
Activa la validación durante el entrenamiento, lo que permite evaluar periódicamente el rendimiento del modelo en un conjunto de datos independiente. |
plots |
bool |
False |
Genera y guarda gráficos de métricas de entrenamiento y validación, así como ejemplos de predicción, proporcionando una visión visual del rendimiento del modelo y de la progresión del aprendizaje. |
Nota sobre la configuración del tamaño de los lotes
En batch
ofrece tres opciones de configuración:
- Tamaño de lote fijo: Especifique el número de imágenes por lote con un número entero (p. ej,
batch=16
). - Modo automático (60% GPU Memoria): Utilice
batch=-1
para el ajuste automático a una utilización de memoria CUDA de aproximadamente el 60%. - Modo automático con fracción de utilización: Establece una fracción (por ejemplo,
batch=0.70
) para ajustarse en función del uso de memoria de GPU especificado.
Predecir ajustes
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. 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 complementarias, como las máscaras, también afectan a las predicciones. El ajuste de estos parámetros es esencial para obtener un rendimiento óptimo.
Argumentos de inferencia:
Argumento | Tipo | Por defecto | 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 el ID de un dispositivo para las transmisiones en directo. 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 no se tendrán en cuenta. 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 dan lugar a menos detecciones al eliminar las cajas superpuestas, lo que resulta útil para reducir los duplicados. |
imgsz |
int o tuple |
640 |
Define el tamaño de la imagen para la inferencia. Puede ser un único número entero 640 para el redimensionamiento cuadrado o una tupla (alto, ancho). Un tamaño adecuado puede mejorar la detección precisión y la velocidad de procesamiento. |
half |
bool |
False |
Permite la inferencia de media precisión (FP16), lo que puede acelerar la inferencia del modelo en las GPU compatibles con un impacto mínimo en la precisión. |
device |
str |
None |
Especifica el dispositivo para la inferencia (por ejemplo, cpu , cuda:0 o 0 ). Permite a los usuarios seleccionar entre CPU, un GPU específico u otros dispositivos de cálculo para la ejecución del modelo. |
batch |
int |
1 |
Especifica el tamaño del lote para la inferencia (sólo funciona cuando la fuente es un directorio, un archivo de vídeo o .txt archivo). Un tamaño de lote mayor puede proporcionar un mayor rendimiento, acortando el tiempo total necesario 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 |
Salto de fotogramas para entradas de vídeo. Permite saltar fotogramas en los vídeos para acelerar el procesamiento a costa de la resolución temporal. Un valor de 1 procesa cada fotograma, valores superiores omiten fotogramas. |
stream_buffer |
bool |
False |
Determina si se ponen en cola los fotogramas entrantes para los flujos de vídeo. Si False Los fotogramas antiguos se eliminan para dar cabida a los nuevos (optimizados para aplicaciones en tiempo real). Si True pone en cola nuevos fotogramas en un búfer, lo que garantiza que no se salte ningún fotograma, pero provocará latencia si los FPS de inferencia son inferiores a los FPS de 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". Resulta útil para la depuración y la interpretación del modelo. |
augment |
bool |
False |
Permite el aumento del tiempo de prueba (TTA) para las predicciones, mejorando potencialmente la robustez de la detección a costa de la velocidad de inferencia. |
agnostic_nms |
bool |
False |
Permite la supresión no máxima (NMS) independiente de la clase, que fusiona los cuadros superpuestos de clases diferentes. Resulta útil en situaciones de detección multiclase en las que el solapamiento de clases es habitual. |
classes |
list[int] |
None |
Filtra las predicciones a un conjunto de ID de clase. Sólo se devolverán las detecciones que pertenezcan a las clases especificadas. Resulta útil para centrarse en objetos relevantes en tareas de detección multiclase. |
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 original de la imagen si están activados. Si están desactivados, tendrán el tamaño de imagen utilizado durante la inferencia. |
embed |
list[int] |
None |
Especifica las capas de las que extraer vectores de características o incrustaciones. Resulta útil para tareas posteriores como la agrupación o la búsqueda de similitudes. |
project |
str |
None |
Nombre del directorio del proyecto donde se guardan los resultados de las predicciones si save está activado. |
name |
str |
None |
Nombre de la predicción. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan los resultados de la predicción si save está activado. |
stream |
bool |
False |
Permite un procesamiento eficiente de la memoria para vídeos largos o numerosas imágenes devolviendo un generador de objetos Resultados en lugar de cargar todos los fotogramas a la vez en la memoria. |
verbose |
bool |
True |
Controla si se muestran registros de inferencia detallados en el terminal, proporcionando información en tiempo real sobre el proceso de predicción. |
Argumentos de visualización:
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
show |
bool |
False |
Si True muestra las imágenes o vídeos anotados en una ventana. Resulta ú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. Resulta útil para documentación, análisis posteriores o para compartir resultados. Por defecto es True cuando se utiliza CLI y False cuando se utiliza en Python. |
save_frames |
bool |
False |
Al procesar vídeos, guarda fotogramas individuales como imágenes. Resulta útil para extraer fotogramas concretos o para realizar análisis detallados 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 puntuaciones de confianza en los archivos de texto guardados. Mejora los detalles disponibles para el postprocesamiento y el análisis. |
save_crop |
bool |
False |
Guarda imágenes recortadas de las detecciones. Resulta útil para aumentar el conjunto de datos, realizar análisis o crear conjuntos de datos centrados en 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 de cada detección junto a la etiqueta. Da una idea de 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 localizació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. |
font_size |
float |
None |
Tamaño de la fuente de texto para las anotaciones. Se ajusta automáticamente al tamaño de la imagen si está configurado como None . |
font |
str |
'Arial.ttf' |
Nombre de la fuente o ruta para las anotaciones de texto en la visualización. |
pil |
bool |
False |
Devuelve la imagen como un objeto PIL Image en lugar de como un array numpy. |
kpt_radius |
int |
5 |
Radio de los puntos clave al visualizar los resultados de la estimación de la pose. |
kpt_line |
bool |
True |
Conecte los puntos clave con líneas al visualizar la estimación de la pose. |
masks |
bool |
True |
Mostrar máscaras de segmentación en la salida de visualización. |
probs |
bool |
True |
Incluir probabilidades de clasificación en la visualización. |
filename |
str |
None |
Ruta y nombre de archivo para guardar la imagen anotada cuando save=True . |
color_mode |
str |
'class' |
Especifique el modo de coloreado para las visualizaciones, por ejemplo, 'instancia' o 'clase'. |
txt_color |
tuple[int, int, int] |
(255, 255, 255) |
Color de texto RGB para anotaciones de tareas de clasificación. |
Ajustes de validación
Los ajustes de validación de los modelos YOLO implican hiperparámetros y configuraciones para evaluar el rendimiento en un conjunto de datos de validación. Estos ajustes influyen en el rendimiento, la velocidad y la precisión. Los ajustes comunes incluyen el tamaño del lote, la frecuencia de validación y las métricas de rendimiento. El tamaño y la composición del conjunto de datos de validación, junto con la tarea específica, también afectan al proceso.
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
data |
str |
None |
Especifica la ruta del archivo de configuración del conjunto de datos (por ejemplo, coco8.yaml ). Este archivo incluye rutas a datos de validaciónnombres de las clases y 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 ser procesadas. Los tamaños más grandes pueden mejorar la precisión de los 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 GPU de forma más eficiente pero requieren más VRAM. Ajústalo 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. |
save_hybrid |
bool |
False |
Si True guarda una versión híbrida de las etiquetas que combina las anotaciones originales con predicciones adicionales del modelo. Útil para el aprendizaje semisupervisado y la mejora de conjuntos de datos. |
conf |
float |
0.001 |
Establece el umbral mínimo de confianza para las detecciones. Los valores más bajos aumentan la recuperación, pero pueden introducir más falsos positivos. Se utiliza durante la validación para calcular las curvas de precisión-recuperación. |
iou |
float |
0.6 |
Establece el umbral de Intersección sobre Unión para la Supresión No Máxima. Controla la eliminación de la detección de duplicados. |
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 informáticos. |
half |
bool |
True |
Permite el cálculo de precisión media (FP16), reduciendo el uso de memoria y aumentando potencialmente 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.). En None selecciona automáticamente el mejor dispositivo disponible. Se pueden especificar varios dispositivos CUDA con separación por comas. |
dnn |
bool |
False |
Si True utiliza el OpenCV Módulo DNN para la inferencia de modelos ONNX , que ofrece una alternativa a PyTorch métodos de inferencia. |
plots |
bool |
False |
Cuando se establece en True genera y guarda gráficos de predicciones frente a la verdad sobre el terreno, matrices de confusión y curvas PR para la evaluación visual del rendimiento del modelo. |
rect |
bool |
True |
Si True utiliza la inferencia rectangular para el procesamiento por lotes, reduciendo el relleno y aumentando potencialmente la velocidad y la eficacia 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 a la hora de 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 de validación y los resultados. |
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 adicional de depuración. |
save_txt |
bool |
False |
Si True , guarda los resultados de la detección en archivos de texto, con un archivo por imagen, útil para análisis posteriores, posprocesamiento personalizado o integración con otros sistemas. |
save_conf |
bool |
False |
Si True incluye los valores de confianza en los archivos de texto guardados cuando save_txt se activa, proporcionando una salida más detallada para el análisis y el filtrado. |
save_crop |
bool |
False |
Si True guarda imágenes recortadas de los objetos detectados, que pueden ser útiles para crear conjuntos de datos específicos, verificación visual o análisis posteriores de detecciones individuales. |
workers |
int |
8 |
Número de subprocesos de trabajo para la carga de datos. Los valores más altos pueden acelerar el preprocesamiento de datos, pero pueden aumentar el uso de CPU . Si se establece en 0, se utiliza el subproceso principal, que puede ser más estable en algunos entornos. |
augment |
bool |
False |
Permite el aumento del tiempo de prueba (TTA) durante la validación, mejorando potencialmente la precisión de la detección a costa de la velocidad de inferencia mediante la ejecución de la inferencia en versiones transformadas de la entrada. |
agnostic_nms |
bool |
False |
Permite la supresión no máxima independiente de la clase, que fusiona las cajas superpuestas independientemente de su clase prevista. Resulta útil para aplicaciones centradas en instancias. |
single_cls |
bool |
False |
Trata todas las clases como una sola durante la validación. Resulta útil para evaluar el rendimiento del modelo en tareas de detección binarias o cuando la distinción de clases no es importante. |
El ajuste cuidadoso y la experimentación son cruciales para garantizar un rendimiento óptimo y detectar y prevenir el sobreajuste.
Ajustes de exportación
Los ajustes de exportación de los modelos YOLO incluyen configuraciones para guardar o exportar el modelo para su uso en distintos entornos. Estos ajustes afectan al rendimiento, el tamaño y la compatibilidad. Los ajustes clave incluyen el formato de archivo exportado (por ejemplo, ONNX, TensorFlow SavedModel), el dispositivo de destino (por ejemplo, CPU, GPU), y características como las máscaras. La tarea del modelo y las restricciones del entorno de destino también afectan al proceso de exportación.
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
format |
str |
'torchscript' |
Formato de destino del modelo exportado, por ejemplo 'onnx' , 'torchscript' , 'engine' TensorRT), u otros. Cada formato permite la compatibilidad con diferentes entornos de despliegue. |
imgsz |
int o tuple |
640 |
Tamaño de imagen deseado para la entrada del modelo. Puede ser un número entero para imágenes cuadradas (por ejemplo, 640 para 640×640) o una tupla (height, width) para dimensiones específicas. |
keras |
bool |
False |
Permite exportar a formato Keras para TensorFlow SavedModel proporcionando compatibilidad con el servicio y las API de TensorFlow . |
optimize |
bool |
False |
Aplica optimización para dispositivos móviles al exportar a TorchScript, reduciendo potencialmente el tamaño del modelo y mejorando el rendimiento de la inferencia. No es compatible con el formato NCNN ni con dispositivos CUDA . |
half |
bool |
False |
Permite la cuantización FP16 (media precisión), reduciendo el tamaño del modelo y acelerando potencialmente la inferencia en hardware compatible. No es compatible con la cuantización INT8 ni con las exportaciones CPU de ONNX. |
int8 |
bool |
False |
Activa la cuantización INT8, comprimiendo aún más el modelo y acelerando la inferencia con una pérdida de precisión mínima, principalmente para dispositivos de borde. Cuando se utiliza con TensorRT, realiza una cuantización posterior al entrenamiento (PTQ). |
dynamic |
bool |
False |
Permite tamaños de entrada dinámicos para las exportaciones ONNX, TensorRT y OpenVINO , mejorando la flexibilidad en el manejo de dimensiones de imagen variables. Se ajusta automáticamente a True cuando se utiliza TensorRT con INT8. |
simplify |
bool |
True |
Simplifica el gráfico del modelo para las exportaciones de 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 ONNX y tiempos de ejecución. 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 memoria y el rendimiento. Utilice None para autoasignación por TensorRT hasta el máximo del dispositivo. |
nms |
bool |
False |
Añade supresión no máxima (NMS) al modelo exportado cuando es compatible (véase Formatos de exportación), lo que mejora la eficacia del postprocesamiento de detección. No disponible para modelos end2end. |
batch |
int |
1 |
Especifica el tamaño de inferencia por lotes del modelo exportado o el número máximo de imágenes que el modelo exportado procesará simultáneamente en predict modo. Para las exportaciones de TPU Edge, se establece automáticamente en 1. |
device |
str |
None |
Especifica el dispositivo para exportar: GPU (device=0 ), CPU (device=cpu ), MPS para el silicio de Apple (device=mps ) o DLA para NVIDIA Jetson (device=dla:0 o device=dla:1 ). Las exportaciones de TensorRT utilizan automáticamente GPU. |
data |
str |
'coco8.yaml' |
Camino a la conjunto de datos archivo de configuración (por defecto: coco8.yaml ), esencial para la calibración de la cuantización INT8. Si no se especifica con INT8 activado, se asignará un conjunto de datos por defecto. |
Una configuración cuidadosa garantiza que el modelo exportado esté optimizado para su caso de uso y funcione eficazmente en el entorno de destino.
Soluciones Ajustes
Los ajustes de configuración de Ultralytics Solutions ofrecen flexibilidad para personalizar modelos para tareas como el recuento de objetos, la creación de mapas térmicos, el seguimiento de entrenamientos, el análisis de datos, el seguimiento de zonas, la gestión de colas y el recuento basado en regiones. Estas opciones permiten realizar ajustes fácilmente para obtener resultados precisos y útiles adaptados a necesidades específicas.
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
model |
str |
None |
Ruta al archivo del modeloYOLO Ultralytics . |
region |
list |
[(20, 400), (1260, 400)] |
Lista de puntos que definen la región de recuento. |
show_in |
bool |
True |
Indicador para controlar si se muestran los recuentos en el flujo de vídeo. |
show_out |
bool |
True |
Indicador para controlar si se muestran los recuentos de salida en el flujo de vídeo. |
analytics_type |
str |
line |
Tipo de gráfico, es decir line , bar , area o pie . |
colormap |
int |
cv2.COLORMAP_JET |
Mapa de colores para el mapa de calor. |
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 postura "arriba". |
kpts |
list[int, int, int] |
[6, 8, 10] |
Lista de puntos clave utilizados para controlar 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 abdominales. |
down_angle |
float |
90.0 |
Umbral de ángulo para la postura "hacia 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 |
Recuento total de detecciones para activar un correo electrónico con el sistema de alarma de seguridad. |
vision_point |
tuple[int, int] |
(50, 50) |
El punto en el que la visión rastreará objetos y dibujará trayectorias utilizando la solución VisionEye. |
tracker |
str |
'botsort.yaml' |
Especifica el algoritmo de seguimiento a utilizar, por ejemplo, bytetrack.yaml o botsort.yaml . |
conf |
float |
0.3 |
Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos pero pueden incluir falsos positivos. |
iou |
float |
0.5 |
Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones solapadas. |
classes |
list |
None |
Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] sólo rastrea las clases especificadas. |
verbose |
bool |
True |
Controla la visualización de los resultados del rastreo, proporcionando una salida visual de los objetos rastreados. |
device |
str |
None |
Especifica el dispositivo para la inferencia (por ejemplo, cpu , cuda:0 o 0 ). Permite a los usuarios seleccionar entre CPU, un GPU específico u otros dispositivos de cálculo para la ejecución del modelo. |
show |
bool |
False |
Si True muestra las imágenes o vídeos anotados en una ventana. Resulta útil para obtener información visual inmediata durante el desarrollo o las pruebas. |
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 aumento
Las técnicas de aumento de datos son esenciales para mejorar la solidez y el rendimiento del modelo YOLO al introducir variabilidad en los datos de entrenamiento, lo que ayuda al modelo a generalizar mejor los datos no vistos. En la tabla siguiente se describen la finalidad y el efecto de cada argumento de aumento:
Argumento | Tipo | Por defecto | Gama | 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 color, introduciendo variabilidad cromática. Ayuda a que el modelo se generalice a través de 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 a la intensidad de los colores. Resulta útil para simular distintas condiciones ambientales. |
hsv_v |
float |
0.4 |
0.0 - 1.0 |
Modifica el valor (brillo) de la imagen en una fracción, lo que ayuda a que el modelo funcione bien en distintas condiciones de iluminación. |
degrees |
float |
0.0 |
-180 - +180 |
Rota la imagen aleatoriamente dentro del rango de grados especificado, mejorando la capacidad del modelo para reconocer objetos en diversas orientaciones. |
translate |
float |
0.1 |
0.0 - 1.0 |
Traslada la imagen horizontal y verticalmente una fracción del tamaño de la imagen, lo que ayuda a aprender a detectar objetos parcialmente visibles. |
scale |
float |
0.5 |
>=0.0 |
Escala la imagen por un factor de ganancia, simulando objetos a diferentes distancias de la cámara. |
shear |
float |
0.0 |
-180 - +180 |
Corta la imagen en un grado determinado, imitando el efecto de los objetos vistos desde distintos á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 |
Voltea la imagen con la probabilidad especificada, aumentando la variabilidad de los datos sin afectar a las características del objeto. |
fliplr |
float |
0.5 |
0.0 - 1.0 |
Voltea 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 |
Cambia los canales de la imagen de RGB a BGR con la probabilidad especificada, lo que resulta útil para aumentar la robustez ante una ordenación incorrecta de los canales. |
mosaic |
float |
1.0 |
0.0 - 1.0 |
Combina cuatro imágenes de entrenamiento en una, simulando diferentes composiciones de escenas e interacciones de objetos. Muy eficaz para comprender escenas complejas. |
mixup |
float |
0.0 |
0.0 - 1.0 |
Mezcla dos imágenes y sus etiquetas, creando una imagen compuesta. Mejora la capacidad de generalización del modelo introduciendo ruido en las etiquetas y variabilidad visual. |
copy_paste |
float |
0.0 |
0.0 - 1.0 |
Copia y pega objetos a través de las imágenes, útil para aumentar las instancias de objetos y aprender la oclusión de objetos. Requiere etiquetas de segmentación. |
copy_paste_mode |
str |
'flip' |
- | Selección del método de aumento Copiar-Pegar entre las opciones de ("flip" , "mixup" ). |
auto_augment |
str |
'randaugment' |
- | Aplica automáticamente una política de aumento predefinida (randaugment , autoaugment , augmix ), optimizando las tareas de clasificación mediante la diversificación de las características visuales. |
erasing |
float |
0.4 |
0.0 - 0.9 |
Borra aleatoriamente una porción de la imagen durante el entrenamiento de clasificación, animando al modelo a centrarse en características menos obvias para el reconocimiento. |
crop_fraction |
float |
1.0 |
0.1 - 1.0 |
Recorta la imagen de clasificación a una fracción de su tamaño para resaltar las características centrales y adaptarse a las escalas de los objetos, reduciendo las distracciones del fondo. |
Ajuste estos valores para satisfacer los requisitos del conjunto de datos y de la tarea. Experimentar con distintos valores puede ayudar a encontrar la estrategia de aumento óptima para obtener el mejor rendimiento del modelo.
Ajustes de registro, puntos de control y ploteo
El registro, los puntos de control, el trazado y la gestión de archivos son importantes a la hora de entrenar un modelo YOLO :
- Registro: Siga el progreso del modelo y diagnostique problemas utilizando bibliotecas como TensorBoard o escribiendo en un archivo.
- Puntos de control: Guarda el modelo a intervalos regulares para reanudar el entrenamiento o experimentar con distintas configuraciones.
- Trazado: Visualiza el rendimiento y el progreso del entrenamiento utilizando bibliotecas como matplotlib o TensorBoard.
- Gestión de archivos: Organiza los archivos generados durante el entrenamiento, como puntos de control, archivos de registro y gráficos, para facilitar el acceso y el análisis.
Una gestión eficaz de estos aspectos ayuda a seguir el progreso y facilita la depuración y optimización.
Argumento | Por defecto | Descripción |
---|---|---|
project |
'runs' |
Especifica el directorio raíz para guardar las ejecuciones de entrenamiento. Cada ejecución se guarda en un subdirectorio independiente. |
name |
'exp' |
Define el nombre del experimento. Si no se especifica, YOLO incrementa este nombre para cada ejecución (por ejemplo, exp , exp2 ) para evitar la sobreescritura. |
exist_ok |
False |
Determina si se sobrescribe un directorio de experimentos existente. True permite la sobreescritura; False lo impide. |
plots |
False |
Controla la generación y el almacenamiento de los gráficos de entrenamiento y validación. Establecer en True para crear gráficos como curvas de pérdidas, precisión-retirada curvas y predicciones de muestras para el seguimiento visual del rendimiento. |
save |
False |
Permite guardar los puntos de control del entrenamiento y los pesos finales del modelo. Establecido en True para guardar periódicamente los estados del modelo, lo que permite reanudar el entrenamiento o desplegar el modelo. |
PREGUNTAS FRECUENTES
¿Cómo puedo mejorar el rendimiento de mi modelo YOLO durante el entrenamiento?
Mejore el rendimiento ajustando hiperparámetros como el tamaño del lote, la velocidad de aprendizaje, el impulso y el decaimiento del peso. Ajuste la configuración de aumento de datos, seleccione el optimizador adecuado y utilice técnicas como la parada temprana o la precisión mixta. Para más detalles, 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 a la precisión son
- 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. - Impulso (
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.
Ajústelos en función de su conjunto de datos y hardware. Más información en Ajustes del tren.
¿Cómo se establece la tasa de aprendizaje para entrenar un modelo YOLO ?
La tasa de aprendizaje (lr0
) es crucial; empiece por 0.01
por SGD o 0.001
para Optimizador Adam. Supervise las métricas y ajústelas según sea necesario. Utilice programadores de tasa de aprendizaje coseno (cos_lr
) o el calentamiento (warmup_epochs
, warmup_momentum
). Los detalles figuran en el Guía de trenes.
¿Cuáles son los parámetros de inferencia por defecto de los modelos YOLO ?
La configuración predeterminada incluye:
- Umbral de confianza (
conf=0.25
): Confianza mínima para las detecciones. - Umbral IoU (
iou=0.7
): Para Supresión no máxima (NMS). - Tamaño de la imagen (
imgsz=640
): Cambia el tamaño de las imágenes de entrada. - Dispositivo (
device=None
): Selecciona CPU o GPU.
Para más información, consulte la Configuración de Predicción y la Guía de Predicción.
¿Por qué utilizar la formación de precisión mixta con modelos YOLO ?
Precisión mixta formación (amp=True
) reduce el uso de memoria y acelera el entrenamiento utilizando FP16 y FP32. Es beneficioso para las GPU modernas, ya que permite modelos más grandes y cálculos más rápidos sin pérdida significativa de precisión. Más información en Guía de trenes.