Configuraci贸n
YOLO Los ajustes y los hiperpar谩metros desempe帽an un papel fundamental en el rendimiento, la velocidad y la precisi贸n del modelo. Estos ajustes e hiperpar谩metros pueden afectar al comportamiento del modelo en varias fases del proceso de desarrollo del modelo, como el entrenamiento, la validaci贸n y la predicci贸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 a partir del cfg/defaults.yaml
archivo.
Tareas
YOLO pueden utilizarse para diversas tareas, como la detecci贸n, la segmentaci贸n, la clasificaci贸n y la pose. Estas tareas difieren en el tipo de resultado que producen y en el problema espec铆fico que pretenden resolver.
- Detectar: Para identificar y localizar objetos o regiones de inter茅s en una imagen o v铆deo.
- Segmentar: Para dividir una imagen o v铆deo en regiones o p铆xeles que corresponden a diferentes objetos o clases.
- Clasificar: Para predecir la etiqueta de clase de una imagen de entrada.
- Pose: Para identificar objetos y estimar sus puntos clave en una imagen o v铆deo.
- OBB: cajas delimitadoras orientadas (es decir, rotadas) adecuadas para im谩genes m茅dicas o de sat茅lite.
Argumento | Por defecto | Descripci贸n |
---|---|---|
task |
'detect' |
Especifica la tarea YOLO que debe ejecutarse. Las opciones incluyen 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 tipos de resultados y problemas espec铆ficos del an谩lisis de im谩genes y v铆deos. |
Modos
YOLO Los modelos pueden utilizarse en distintos modos en funci贸n del problema concreto que se intente resolver. Estos modos incluyen:
- Entrenar: Para entrenar un modelo YOLO11 en un conjunto de datos personalizado.
- Val: Para validar un modelo YOLO11 una vez entrenado.
- Predecir: Para realizar predicciones utilizando un modelo YOLO11 entrenado en nuevas im谩genes o v铆deos.
- Exportar: Para exportar un modelo YOLO11 a un formato que pueda utilizarse para su despliegue.
- Rastrear: Para rastrear objetos en tiempo real utilizando un modelo YOLO11 .
- Evaluaci贸n comparativa: Para evaluar la velocidad y precisi贸n de las exportaciones de YOLO11 (ONNX, TensorRT, etc.).
Argumento | Por defecto | Descripci贸n |
---|---|---|
mode |
'train' |
Especifica el modo en el que funciona el modelo YOLO . Las opciones son train para el entrenamiento del modelo, val para su validaci贸n, predict para inferir nuevos datos, export para la conversi贸n de modelos a formatos de despliegue, track para el seguimiento de objetos, y benchmark para la evaluaci贸n del rendimiento. Cada modo est谩 dise帽ado para diferentes etapas del ciclo de vida del modelo, desde el desarrollo hasta la implantaci贸n. |
Ajustes del tren
Los ajustes de entrenamiento de los modelos YOLO abarcan varios hiperpar谩metros y configuraciones utilizados durante el proceso de entrenamiento. Estos ajustes influyen en el rendimiento, la velocidad y la precisi贸n del modelo. Entre los ajustes de entrenamiento m谩s importantes se encuentran el tama帽o del lote, la velocidad de aprendizaje, el impulso y el decaimiento del peso. Adem谩s, la elecci贸n del optimizador, la funci贸n de p茅rdida y la composici贸n del conjunto de datos de entrenamiento pueden influir en el proceso de entrenamiento. El ajuste cuidadoso y la experimentaci贸n con estos par谩metros son cruciales para optimizar el rendimiento.
Argumento | Por defecto | Descripci贸n |
---|---|---|
model |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
-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 |
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 |
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 |
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 |
None |
Nombre del directorio del proyecto donde se guardan los resultados del entrenamiento. Permite el almacenamiento organizado de diferentes experimentos. |
name |
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 |
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 |
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 |
'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 |
0 |
Establece la semilla aleatoria para el entrenamiento, garantizando la reproducibilidad de los resultados entre ejecuciones con las mismas configuraciones. |
deterministic |
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 |
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. |
rect |
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. |
cos_lr |
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 |
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 |
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 |
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 |
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 |
False |
Permite perfilar las velocidades de ONNX y TensorRT durante el entrenamiento, lo que resulta 煤til para optimizar el despliegue del modelo. |
freeze |
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 |
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 |
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 |
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 |
0.0005 |
T茅rmino de regularizaci贸n L2, que penaliza los pesos grandes para evitar el sobreajuste. |
warmup_epochs |
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 |
0.8 |
Impulso inicial para la fase de calentamiento, ajust谩ndose gradualmente al impulso establecido durante el periodo de calentamiento. |
warmup_bias_lr |
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 |
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 |
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 |
1.5 |
Ponderaci贸n de la p茅rdida focal de distribuci贸n, utilizada en algunas versiones de YOLO para la clasificaci贸n fina. |
pose |
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 |
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. |
label_smoothing |
0.0 |
Aplica el suavizado de etiquetas, suavizando las etiquetas duras a una mezcla de la etiqueta objetivo y una distribuci贸n uniforme sobre las etiquetas, puede mejorar la generalizaci贸n. |
nbs |
64 |
Tama帽o nominal del lote para la normalizaci贸n de la p茅rdida. |
overlap_mask |
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 |
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 |
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 |
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 |
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
puede configurarse de tres maneras:
- Tama帽o de lote fijo: Establece un valor entero (por ejemplo,
batch=16
), especificando directamente el n煤mero de im谩genes por lote. - Modo autom谩tico (60% GPU Memoria): Utilice
batch=-1
para ajustar autom谩ticamente el tama帽o del lote para una utilizaci贸n de la memoria de aproximadamente el 60% CUDA . - Modo autom谩tico con fracci贸n de utilizaci贸n: Establece un valor de fracci贸n (p. ej,
batch=0.70
) para ajustar el tama帽o del lote en funci贸n de la fracci贸n especificada del uso de memoria de GPU .
Predecir ajustes
Los ajustes de predicci贸n de los modelos YOLO abarcan una serie de hiperpar谩metros y configuraciones que influyen en el rendimiento, la velocidad y la precisi贸n del modelo durante la inferencia de nuevos datos. El ajuste cuidadoso y la experimentaci贸n con estos ajustes son esenciales para lograr un rendimiento 贸ptimo para una tarea espec铆fica. Los ajustes clave incluyen el umbral de confianza, el umbral de supresi贸n no m谩xima (NMS) y el n煤mero de clases consideradas. Otros factores que afectan al proceso de predicci贸n son el tama帽o y el formato de los datos de entrada, la presencia de caracter铆sticas suplementarias como m谩scaras o etiquetas m煤ltiples por casilla, y la tarea concreta para la que se emplea el modelo.
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 or 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. |
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 Si `True', los fotogramas antiguos se eliminan para acomodar los nuevos (optimizado para aplicaciones en tiempo real). Si es `True', pone en cola los nuevos fotogramas en un b煤fer, asegurando que no se salte ning煤n fotograma, pero causar谩 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. |
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 o 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 o 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
Los ajustes de validaci贸n de los modelos YOLO incluyen varios hiperpar谩metros y configuraciones utilizados para evaluar el rendimiento del modelo en un conjunto de datos de validaci贸n. Estos ajustes influyen en el rendimiento, la velocidad y la precisi贸n del modelo. Los ajustes de validaci贸n habituales de YOLO incluyen el tama帽o del lote, la frecuencia de validaci贸n durante el entrenamiento y las m茅tricas de evaluaci贸n del rendimiento. Otros factores que afectan al proceso de validaci贸n son el tama帽o y la composici贸n del conjunto de datos de validaci贸n, as铆 como la tarea espec铆fica para la que se emplea el modelo.
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 procesarlas. |
batch |
int |
16 |
Establece el n煤mero de im谩genes por lote. Utilice -1 para AutoBatch, que se ajusta autom谩ticamente en funci贸n de la disponibilidad de memoria de GPU . |
save_json |
bool |
False |
Si True guarda los resultados en un archivo JSON para su posterior an谩lisis o integraci贸n con otras herramientas. |
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. |
conf |
float |
0.001 |
Establece el umbral m铆nimo de confianza para las detecciones. Las detecciones con una confianza inferior a este umbral se descartan. |
iou |
float |
0.6 |
Establece el umbral de Intersecci贸n sobre Uni贸n (IoU) para la Supresi贸n No M谩xima (NMS). Ayuda a reducir las detecciones duplicadas. |
max_det |
int |
300 |
Limita el n煤mero m谩ximo de detecciones por imagen. 脷til en escenas densas para evitar detecciones excesivas. |
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.). Permite flexibilidad en la utilizaci贸n de los recursos de CPU o GPU . |
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 para una 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. |
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. |
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. |
El ajuste cuidadoso y la experimentaci贸n con estos ajustes son cruciales para garantizar un rendimiento 贸ptimo en el conjunto de datos de validaci贸n y detectar y prevenir el sobreajuste.
Ajustes de exportaci贸n
Los ajustes de exportaci贸n de los modelos de YOLO abarcan configuraciones y opciones relacionadas con el guardado o la exportaci贸n del modelo para su uso en distintos entornos o plataformas. Estos ajustes pueden influir en el rendimiento, el tama帽o y la compatibilidad del modelo con distintos sistemas. Entre los ajustes de exportaci贸n clave se incluyen el formato de archivo del modelo exportado (por ejemplo, ONNX, TensorFlow SavedModel ), el dispositivo de destino (por ejemplo, CPU, GPU) y caracter铆sticas adicionales como m谩scaras o m煤ltiples etiquetas por caja. El proceso de exportaci贸n tambi茅n puede verse afectado por la tarea espec铆fica del modelo y los requisitos o restricciones del entorno o plataforma de destino.
Argumento | Tipo | Por defecto | Descripci贸n |
---|---|---|---|
format |
str |
'torchscript' |
Formato de destino del modelo exportado, por ejemplo 'onnx' , 'torchscript' , 'tensorflow' u otros, que definen la compatibilidad con diversos entornos de implantaci贸n. |
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 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 la optimizaci贸n para dispositivos m贸viles al exportar a TorchScript, reduciendo potencialmente el tama帽o del modelo y mejorando el rendimiento. |
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. |
int8 |
bool |
False |
Activa la cuantizaci贸n INT8, comprimiendo a煤n m谩s el modelo y acelerando la inferencia con una p茅rdida m铆nima de precisi贸n, principalmente para dispositivos de borde. |
dynamic |
bool |
False |
Permite tama帽os de entrada din谩micos para las exportaciones de ONNX, TensorRT y OpenVINO , lo que aumenta la flexibilidad a la hora de manejar dimensiones de imagen variables. |
simplify |
bool |
True |
Simplifica el gr谩fico del modelo para las exportaciones de ONNX con onnxslim mejorando potencialmente el rendimiento y la compatibilidad. |
opset |
int |
None |
Especifica la versi贸n de ONNX opset para la compatibilidad con diferentes ONNX analizadores y tiempos de ejecuci贸n. Si no se establece, utiliza la 煤ltima versi贸n compatible. |
workspace |
float |
4.0 |
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. |
nms |
bool |
False |
A帽ade supresi贸n no m谩xima (NMS) a la exportaci贸n de CoreML , esencial para un postprocesado de detecci贸n preciso y eficaz. |
batch |
int |
1 |
Especifica el tama帽o de la inferencia por lotes del modelo de exportaci贸n o el n煤mero m谩ximo de im谩genes que el modelo exportado procesar谩 simult谩neamente en predict modo. |
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 ). |
Es crucial configurar cuidadosamente estos par谩metros para garantizar que el modelo exportado est谩 optimizado para el caso de uso previsto y funciona eficazmente en el entorno de destino.
Ajustes de aumento
Las t茅cnicas de aumento son esenciales para mejorar la solidez y el rendimiento de los modelos de YOLO introduciendo variabilidad en los datos de entrenamiento, lo que ayuda al modelo a generalizar mejor a 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 objetos de una imagen y los pega en otra, 煤til para aumentar las instancias de objetos y aprender la oclusi贸n de objetos. |
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. |
Estos par谩metros pueden ajustarse para satisfacer los requisitos espec铆ficos del conjunto de datos y la tarea en cuesti贸n. Experimentar con distintos valores puede ayudar a encontrar la estrategia de aumento 贸ptima que conduzca al 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 consideraciones importantes a la hora de entrenar un modelo YOLO .
- Registro: A menudo es 煤til registrar varias m茅tricas y estad铆sticas durante el entrenamiento para seguir el progreso del modelo y diagnosticar cualquier problema que pueda surgir. Esto se puede hacer utilizando una biblioteca de registro como TensorBoard o escribiendo mensajes de registro en un archivo.
- Puntos de control: Es una buena pr谩ctica guardar puntos de control del modelo a intervalos regulares durante el entrenamiento. Esto te permite reanudar el entrenamiento desde un punto anterior si el proceso de entrenamiento se interrumpe o si quieres experimentar con diferentes configuraciones de entrenamiento.
- Trazado: Visualizar el rendimiento del modelo y el progreso del entrenamiento puede ser 煤til para entender c贸mo se comporta el modelo e identificar posibles problemas. Esto se puede hacer utilizando una biblioteca de gr谩ficos como matplotlib o generando gr谩ficos utilizando una biblioteca de registro como TensorBoard.
- Gesti贸n de archivos: La gesti贸n de los distintos archivos generados durante el proceso de entrenamiento, como los puntos de control del modelo, los archivos de registro y los gr谩ficos, puede suponer un reto. Es importante disponer de una estructura de archivos clara y organizada para realizar un seguimiento de estos archivos y facilitar el acceso a ellos y su an谩lisis cuando sea necesario.
Una gesti贸n eficaz de los registros, los puntos de control, los trazados y los archivos puede ayudarle a seguir el progreso del modelo y facilitar la depuraci贸n y optimizaci贸n del proceso de entrenamiento.
Argumento | Por defecto | Descripci贸n |
---|---|---|
project |
'runs' |
Especifica el directorio ra铆z para guardar las ejecuciones de entrenamiento. Cada ejecuci贸n se guardar谩 en un subdirectorio independiente dentro de este directorio. |
name |
'exp' |
Define el nombre del experimento. Si no se especifica, YOLO incrementa autom谩ticamente este nombre para cada ejecuci贸n, por ejemplo, exp , exp2 etc., para evitar sobrescribir experimentos anteriores. |
exist_ok |
False |
Determina si se sobrescribe un directorio de experimentos existente si ya existe uno con el mismo nombre. Si se establece en True permite sobrescribir, mientras que 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 y predicciones de muestra. 脷til para seguir visualmente el rendimiento del modelo a lo largo del tiempo. |
save |
False |
Permite guardar los puntos de control de entrenamiento y los pesos finales del modelo. Configurado en True para guardar peri贸dicamente los estados de los modelos, lo que permite reanudar el entrenamiento a partir de estos puntos de control o desplegar los modelos. |
PREGUNTAS FRECUENTES
驴C贸mo puedo mejorar el rendimiento de mi modelo YOLO durante el entrenamiento?
Para mejorar el rendimiento del modelo YOLO , hay que ajustar hiperpar谩metros como el tama帽o del lote, la velocidad de aprendizaje, el impulso y el decaimiento del peso. Tambi茅n puede ser 煤til ajustar la configuraci贸n de aumento, seleccionar el optimizador adecuado y emplear t茅cnicas como la detenci贸n temprana o la precisi贸n mixta. Para obtener informaci贸n detallada sobre los ajustes de entrenamiento, consulte la Gu铆a de entrenamiento.
驴Cu谩les son los hiperpar谩metros clave que hay que tener en cuenta para la precisi贸n del modelo YOLO ?
Los hiperpar谩metros clave que afectan a la precisi贸n del modelo YOLO incluyen:
- Tama帽o del lote (
batch
): Los lotes de mayor tama帽o pueden estabilizar el entrenamiento, pero pueden requerir m谩s memoria. - Tasa de aprendizaje (
lr0
): Controla el tama帽o del paso para las actualizaciones de peso; las tasas m谩s peque帽as ofrecen ajustes finos pero una convergencia lenta. - Impulso (
momentum
): Ayuda a acelerar los vectores de gradiente en las direcciones correctas, amortiguando las oscilaciones. - Tama帽o de la imagen (
imgsz
): Las im谩genes de mayor tama帽o pueden mejorar la precisi贸n, pero aumentan la carga computacional.
Ajuste estos valores en funci贸n de su conjunto de datos y de las capacidades de su hardware. M谩s informaci贸n en la secci贸n Ajustes del tren.
驴C贸mo se establece la tasa de aprendizaje para entrenar un modelo YOLO ?
La tasa de aprendizaje (lr0
) es crucial para la optimizaci贸n. Un punto de partida habitual es 0.01
por SGD o 0.001
para Adam. Es esencial supervisar las m茅tricas de entrenamiento y ajustarlas si es necesario. Utilice programadores de tasa de aprendizaje coseno (cos_lr
) o t茅cnicas de calentamiento (warmup_epochs
, warmup_momentum
) para modificar din谩micamente el ritmo durante el entrenamiento. Encontrar谩 m谩s detalles en Gu铆a de trenes.
驴Cu谩les son los par谩metros de inferencia por defecto de los modelos YOLO ?
Los ajustes de inferencia por defecto incluyen:
- 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 antes de la inferencia. - Dispositivo (
device=None
): Selecciona CPU o GPU para la inferencia. Para obtener una visi贸n general, visite la p谩gina Predecir ajustes y la secci贸n Gu铆a de predicci贸n.
驴Por qu茅 deber铆a utilizar la formaci贸n de precisi贸n mixta con los modelos YOLO ?
Entrenamiento de precisi贸n mixto, habilitado con amp=True
ayuda a reducir el uso de memoria y puede acelerar el entrenamiento utilizando las ventajas tanto de FP16 como de FP32. Esto es beneficioso para las GPU modernas, que admiten la precisi贸n mixta de forma nativa, lo que permite que quepan m谩s modelos en la memoria y permite realizar c谩lculos m谩s r谩pidos sin una p茅rdida significativa de precisi贸n. M谩s informaci贸n en Gu铆a de trenes.