Saltar al contenido

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 YOLOv8 : Configuraci贸n

Ultralytics utilizan la siguiente sintaxis:

Ejemplo

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLOv8 model from a pre-trained weights file
model = YOLO("yolov8n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

D贸nde:

Por defecto ARG se definen en esta p谩gina a partir de 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 salida 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 un 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 se va a ejecutar. Las opciones incluyen detect para la 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 est谩 adaptada a tipos espec铆ficos de resultados y problemas dentro del an谩lisis de im谩genes y v铆deos.

Gu铆a de tareas

Modos

YOLO Los modelos pueden utilizarse en distintos modos, seg煤n el problema concreto que intentes resolver. Estos modos incluyen:

  • Entrenar: Para entrenar un modelo YOLOv8 en un conjunto de datos personalizado.
  • Val: Para validar un modelo YOLOv8 despu茅s de haberlo entrenado.
  • Predecir: Para hacer predicciones utilizando un modelo YOLOv8 entrenado sobre nuevas im谩genes o v铆deos.
  • Exportar: Para exportar un modelo YOLOv8 a un formato que pueda utilizarse para su despliegue.
  • Rastrear: Para rastrear objetos en tiempo real utilizando un modelo YOLOv8 .
  • Punto de referencia: Para evaluar la velocidad y precisi贸n de las exportaciones de YOLOv8 (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 la 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 distintas fases del ciclo de vida del modelo, desde el desarrollo hasta la implantaci贸n.

Gu铆a de modos

Ajustes del tren

Los ajustes de entrenamiento de los modelos YOLO abarcan diversos hiperpar谩metros y configuraciones utilizados durante el proceso de entrenamiento. Estos ajustes influyen en el rendimiento, la velocidad y la precisi贸n del modelo. Los ajustes de entrenamiento clave incluyen 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 ajustes son cruciales para optimizar el rendimiento.

Argumento Por defecto Descripci贸n
model None Especifica el archivo modelo para el entrenamiento. Acepta una ruta a .pt modelo preentrenado o un .yaml archivo de configuraci贸n. Esencial 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 datos de entrenamiento y validaci贸n, los nombres de las clases y el 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 la opci贸n epochs para que el entrenamiento se detenga autom谩ticamente tras la duraci贸n especificada. 脷til para situaciones de entrenamiento 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 anticipadamente. Ayuda a evitar el sobreajuste deteniendo el entrenamiento cuando el rendimiento se estabiliza.
batch 16 Tama帽o del lote para el entrenamiento, que indica cu谩ntas im谩genes se procesan antes de actualizar los par谩metros internos del modelo. AutoLote (batch=-1) ajusta din谩micamente el tama帽o del lote en funci贸n de la disponibilidad de memoria en la GPU.
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. 脷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 Activa el almacenamiento en cach茅 de las im谩genes del conjunto de datos en la memoria (True/ram), en disco (disk), o desact铆valo (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 de c谩lculo para el entrenamiento: una 煤nica 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 el entrenamiento es Multi-GPU). Influye en la velocidad de preprocesamiento de datos y alimentaci贸n del modelo, especialmente 煤til en configuraciones multi-GPU.
project None Nombre del directorio del proyecto donde se guardan los resultados del entrenamiento. Permite almacenar de forma organizada los distintos experimentos.
name None Nombre de la ejecuci贸n de 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 Verdadero, permite sobrescribir un directorio de proyecto/nombre existente. 脷til para la experimentaci贸n iterativa sin necesidad de borrar manualmente las salidas anteriores.
pretrained True Determina si se inicia el entrenamiento a partir de un modelo preentrenado. Puede ser un valor booleano o una cadena de ruta 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 el entrenamiento. Las opciones incluyen SGD, Adam, AdamW, NAdam, RAdam, RMSProp etc., o auto para una selecci贸n autom谩tica basada en la configuraci贸n del modelo. Afecta a la velocidad de convergencia y a la estabilidad.
verbose False Activa la salida detallada durante el entrenamiento, proporcionando registros detallados y actualizaciones del progreso. 脷til para depurar y supervisar de cerca el proceso de entrenamiento.
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 sola clase durante el entrenamiento. 脷til para tareas de clasificaci贸n binaria o cuando te centras en la presencia del objeto m谩s que en la clasificaci贸n.
rect False Permite el entrenamiento rectangular, optimizando la composici贸n del lote para un relleno m铆nimo. Puede mejorar la eficacia y la velocidad, pero puede afectar a la precisi贸n del modelo.
cos_lr False Utiliza un programador de la tasa de aprendizaje coseno, que ajusta la tasa de aprendizaje siguiendo una curva coseno a lo largo de las 茅pocas. Ayuda a gestionar la tasa de aprendizaje para una mejor convergencia.
close_mosaic 10 Desactiva el aumento de datos en mosaico en las 煤ltimas N 茅pocas para estabilizar el entrenamiento antes de finalizarlo. 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, continuando el entrenamiento sin problemas.
amp True Permite 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 1.0 Especifica la fracci贸n del conjunto de datos que se utilizar谩 para el entrenamiento. Permite entrenar con 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, 煤til para optimizar el despliegue del modelo.
freeze None Congela las N primeras 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 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 correcta de la clase en relaci贸n con otros componentes.
dfl 1.5 Peso de la p茅rdida focal de distribuci贸n, utilizado en algunas versiones de YOLO para una clasificaci贸n de grano fino.
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 segmentaci贸n deben solaparse durante el entrenamiento, aplicable en tareas de segmentaci贸n de instancias.
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 distinto.
plots False Genera y guarda gr谩ficos de las 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.

Gu铆a de trenes

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 sobre 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 m煤ltiples etiquetas 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 transmisiones en directo. Admite una amplia gama de formatos y fuentes, lo que permite una aplicaci贸n flexible en distintos 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 ser谩n descartados. 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 un redimensionamiento cuadrado o una tupla (alto, ancho). Un tama帽o adecuado puede mejorar la precisi贸n de la detecci贸n y la velocidad de procesamiento.
half bool False Permite la inferencia de media precisi贸n (FP16), 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 la CPU, una GPU espec铆fica 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 todos los fotogramas deben almacenarse en la memoria intermedia al procesar secuencias de v铆deo (True), o si el modelo debe devolver el fotograma m谩s reciente (False). 脷til para aplicaciones en tiempo real.
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 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 Activa la Supresi贸n No M谩xima (NMS) agn贸stica de clases, que fusiona las cajas superpuestas de clases diferentes. 脷til en escenarios de detecci贸n multiclase en los 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. 脷til para centrarse en objetos relevantes en tareas de detecci贸n multiclase.
retina_masks bool False Utiliza m谩scaras de segmentaci贸n de alta resoluci贸n si est谩n disponibles en el modelo. Esto puede mejorar la calidad de la m谩scara para las tareas de segmentaci贸n, proporcionando detalles m谩s finos.
embed list[int] None Especifica las capas de las que extraer vectores de caracter铆sticas o incrustaciones. 脷til para tareas posteriores como la agrupaci贸n o la b煤squeda de similitudes.

Argumentos de visualizaci贸n:

Argumento Tipo Por defecto Descripci贸n
show bool False Si Truemuestra 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 Permite guardar las im谩genes o v铆deos anotados en un archivo. 脷til para documentaci贸n, an谩lisis posteriores o para compartir resultados.
save_frames bool False Al procesar v铆deos, guarda fotogramas individuales como im谩genes. Es 煤til para extraer fotogramas concretos 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 puntuaciones de confianza en los archivos de texto guardados. Aumenta el detalle disponible para el postprocesado y el an谩lisis.
save_crop bool False Guarda im谩genes recortadas de las detecciones. 脷til para aumentar el conjunto de datos, analizarlos o crear conjuntos de datos centrados en objetos concretos.
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 recuadros 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 la anchura de l铆nea de los cuadros delimitadores. Si NoneEl ancho de l铆nea se ajusta autom谩ticamente en funci贸n del tama帽o de la imagen. Proporciona personalizaci贸n visual para mayor claridad.

Gu铆a de predicci贸n

Ajustes de validaci贸n

Los ajustes de val (validaci贸n) de los modelos YOLO implican diversos 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 las rutas a los 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.
batch int 16 Establece el n煤mero de im谩genes por lote. Utiliza -1 para AutoBatch, que se ajusta autom谩ticamente en funci贸n de la disponibilidad de memoria de la 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 media precisi贸n (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:0etc.). Permite flexibilidad en la utilizaci贸n de recursos de CPU o GPU.
dnn bool False Si True, utiliza el m贸dulo DNN de OpenCV para la inferencia del modelo ONNX , ofreciendo una alternativa a los m茅todos de inferencia de PyTorch .
plots bool False Cuando se ajusta a Truegenera y guarda gr谩ficos de predicciones frente a la verdad sobre el terreno para evaluar visualmente el rendimiento del modelo.
rect bool False Si Trueutiliza la inferencia rectangular para la dosificaci贸n, 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, testo train). Permite flexibilidad en la elecci贸n del segmento de datos para la evaluaci贸n del rendimiento.

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 evitar el sobreajuste.

Gu铆a Val

Ajustes de exportaci贸n

Los ajustes de exportaci贸n de los modelos de YOLO abarcan configuraciones y opciones relacionadas con guardar o exportar el modelo para utilizarlo en distintos entornos o plataformas. Estos ajustes pueden influir en el rendimiento, el tama帽o y la compatibilidad del modelo con diversos sistemas. Los ajustes clave de exportaci贸n 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 limitaciones 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, definiendo 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 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, 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 el 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 los dispositivos de borde.
dynamic bool False Permite tama帽os de entrada din谩micos para las exportaciones de ONNX y TensorRT , mejorando la flexibilidad en el manejo de dimensiones de imagen variables.
simplify bool False Simplifica el gr谩fico del modelo para las exportaciones a ONNX , mejorando potencialmente el rendimiento y la compatibilidad.
opset int None Especifica la versi贸n del opset ONNX para que sea compatible con los distintos analizadores y tiempos de ejecuci贸n de ONNX . 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 GB 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.

Es crucial configurar cuidadosamente estos ajustes para garantizar que el modelo exportado est茅 optimizado para el caso de uso previsto y funcione eficazmente en el entorno de destino.

Gu铆a de exportaci贸n

Ajustes de aumento

Las t茅cnicas de aumento son esenciales para mejorar la solidez y el rendimiento de los modelos YOLO introduciendo variabilidad en los datos de entrenamiento, lo que ayuda al modelo a generalizar mejor a los datos no vistos. La tabla siguiente describe 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 al modelo a generalizarse 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 a 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, lo que ayuda a que el modelo funcione bien en distintas condiciones de iluminaci贸n.
degrees float 0.0 -180 - +180 Gira la imagen aleatoriamente dentro del intervalo 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 los objetos en el espacio tridimensional.
flipud float 0.0 0.0 - 1.0 Da la vuelta a 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 Voltea los canales de la imagen de RGB a BGR con la probabilidad especificada, 煤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 escena e interacciones de objetos. Muy 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 de generalizaci贸n del modelo introduciendo ruido de 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.
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 parte 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 valores 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 Trazado

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 puede hacerse 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 se interrumpe el proceso de entrenamiento o si quieres experimentar con distintas configuraciones de entrenamiento.
  • Trazado: Visualizar el rendimiento del modelo y el progreso del entrenamiento puede ser 煤til para comprender c贸mo se comporta el modelo e identificar posibles problemas. Esto puede hacerse utilizando una biblioteca de gr谩ficos como matplotlib o generando gr谩ficos con 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 ser un reto. Es importante tener una estructura de archivos clara y organizada para hacer un seguimiento de estos archivos y facilitar el acceso a ellos y su an谩lisis cuando sea necesario.

Un registro, control, trazado y gesti贸n de archivos eficaces pueden ayudarte 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 distinto 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, exp2etc., 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 guardado de los gr谩ficos de entrenamiento y validaci贸n. Establecer en True para crear gr谩ficos como curvas de p茅rdidas, curvas de precisi贸n-recuerdo y predicciones de muestras. 脷til para seguir visualmente el rendimiento del modelo a lo largo del tiempo.
save False Permite guardar los puntos de control del entrenamiento y los pesos finales del modelo. Ajustado a 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.


Creado 2023-11-12, Actualizado 2024-05-18
Autores: glenn-jocher (14), fcakyon (2), Laughing-q (2), plashchynski (1), Burhan-Q (1), AyushExel (1), RizwanMunawar (1), tensorturtle (1)

Comentarios