Salta para o conteúdo

Configuração

YOLO As definições e os hiperparâmetros desempenham um papel fundamental no desempenho, velocidade e precisão do modelo. Estas definições e hiperparâmetros podem afetar o comportamento do modelo em várias fases do processo de desenvolvimento do modelo, incluindo formação, validação e previsão.



Observa: Dominar Ultralytics YOLOv8 : Configuração

Ultralytics utiliza a seguinte sintaxe:

Exemplo

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)

Onde:

Predefinição ARG Os valores são definidos nesta página a partir do cfg/defaults.yaml ficheiro.

Tarefas

YOLO podem ser utilizados para uma variedade de tarefas, incluindo deteção, segmentação, classificação e pose. Estas tarefas diferem no tipo de resultados que produzem e no problema específico que foram concebidos para resolver.

  • Detecta: Para identificar e localizar objectos ou regiões de interesse numa imagem ou vídeo.
  • Segmentar: Para dividir uma imagem ou vídeo em regiões ou pixels que correspondem a diferentes objectos ou classes.
  • Classifica: Para prever a etiqueta da classe de uma imagem de entrada.
  • Pose: Para identificar objectos e estimar os seus pontos-chave numa imagem ou vídeo.
  • OBB: Caixas delimitadoras orientadas (ou seja, rodadas) adequadas para imagens de satélite ou médicas.
Argumenta Predefinição Descrição
task 'detect' Especifica a tarefa YOLO a ser executada. As opções incluem detect para a deteção de objectos, segment para a segmentação, classify para a classificação, pose para a estimativa da pose e OBB para caixas delimitadoras orientadas. Cada tarefa é adaptada a tipos específicos de resultados e problemas no âmbito da análise de imagens e vídeos.

Guia de tarefas

Modos

YOLO Os modelos podem ser utilizados em diferentes modos, dependendo do problema específico que estás a tentar resolver. Estes modos incluem:

  • Treina: Para treinar um modelo YOLOv8 num conjunto de dados personalizado.
  • Val: Para validar um modelo YOLOv8 depois de ter sido treinado.
  • Prevê: Para fazer previsões utilizando um modelo YOLOv8 treinado em novas imagens ou vídeos.
  • Exportar: Para exportar um modelo YOLOv8 para um formato que possa ser usado para implantação.
  • Rastreia: Para seguir objectos em tempo real utilizando um modelo YOLOv8 .
  • Marca de referência: Para aferir a velocidade e a precisão das exportações YOLOv8 (ONNX, TensorRT, etc.).
Argumenta Predefinição Descrição
mode 'train' Especifica o modo em que o modelo YOLO funciona. As opções são train para o treino do modelo, val para validação, predict para inferir sobre novos dados, export para a conversão de modelos em formatos de implantação, track para o seguimento de objectos, e benchmark para avaliação do desempenho. Cada modo foi concebido para diferentes fases do ciclo de vida do modelo, desde o desenvolvimento até à implementação.

Guia de modos

Definições do comboio

As definições de treino para os modelos YOLO englobam vários hiperparâmetros e configurações utilizados durante o processo de treino. Estas definições influenciam o desempenho, a velocidade e a precisão do modelo. As principais definições de treino incluem o tamanho do lote, a taxa de aprendizagem, o momento e a diminuição do peso. Além disso, a escolha do optimizador, a função de perda e a composição do conjunto de dados de treino podem ter impacto no processo de treino. O ajuste cuidadoso e a experimentação com estas definições são cruciais para otimizar o desempenho.

Argumenta Predefinição Descrição
model None Especifica o arquivo de modelo para treinamento. Aceita um caminho para um arquivo .pt modelo pré-treinado ou um .yaml ficheiro de configuração. Essencial para definir a estrutura do modelo ou inicializar os pesos.
data None Caminho para o ficheiro de configuração do conjunto de dados (por exemplo, coco8.yaml). Este ficheiro contém parâmetros específicos do conjunto de dados, incluindo caminhos para os dados de treino e validação, nomes de classes e número de classes.
epochs 100 Número total de épocas de treino. Cada época representa uma passagem completa por todo o conjunto de dados. O ajuste deste valor pode afetar a duração do treino e o desempenho do modelo.
time None Tempo máximo de formação em horas. Se estiver definido, substitui a opção epochs permitindo que a formação pare automaticamente após a duração especificada. Útil para cenários de formação com restrições de tempo.
patience 100 Número de épocas a aguardar sem melhoria nas métricas de validação antes de parar o treino antecipadamente. Ajuda a evitar o sobreajuste, interrompendo o treino quando o desempenho atinge um patamar.
batch 16 Tamanho do lote para treino, indicando quantas imagens são processadas antes de os parâmetros internos do modelo serem actualizados. AutoBatch (batch=-1) ajusta dinamicamente o tamanho do lote com base na disponibilidade de memória da GPU.
imgsz 640 Dimensão da imagem alvo para treino. Todas as imagens são redimensionadas para esta dimensão antes de serem introduzidas no modelo. Afecta a precisão do modelo e a complexidade computacional.
save True Permite guardar os pontos de verificação do treino e os pesos finais do modelo. É útil para retomar o treino ou a implementação do modelo.
save_period -1 Frequência de gravação dos pontos de controlo do modelo, especificada em épocas. Um valor de -1 desactiva esta funcionalidade. Útil para guardar modelos provisórios durante longas sessões de treino.
cache False Ativa a colocação em cache das imagens do conjunto de dados na memória (True/ram), no disco (disk), ou desactiva-a (False). Melhora a velocidade de treino reduzindo as E/S do disco à custa de uma maior utilização da memória.
device None Especifica o(s) dispositivo(s) computacional(ais) para a formação: uma única GPU (device=0), várias GPUs (device=0,1), CPU (device=cpu), ou MPS para silício Apple (device=mps).
workers 8 Número de threads de trabalho para carregamento de dados (por RANK se estiver a treinar com várias GPUs). Influencia a velocidade do pré-processamento de dados e a alimentação do modelo, especialmente útil em configurações multi-GPU.
project None Nome do diretório do projeto onde são guardados os resultados do treino. Permite o armazenamento organizado de diferentes experiências.
name None Nome da ação de formação. Utilizado para criar uma subdiretoria dentro da pasta do projeto, onde são armazenados os registos e os resultados da formação.
exist_ok False Se Verdadeiro, permite a substituição de um diretório de projeto/nome existente. Útil para experimentação iterativa sem a necessidade de limpar manualmente as saídas anteriores.
pretrained True Determina se deve iniciar o treino a partir de um modelo pré-treinado. Pode ser um valor booleano ou um caminho de cadeia de caracteres para um modelo específico a partir do qual carregar pesos. Melhora a eficiência do treinamento e o desempenho do modelo.
optimizer 'auto' Escolhe o optimizador para a formação. As opções incluem SGD, Adam, AdamW, NAdam, RAdam, RMSProp etc., ou auto para seleção automática com base na configuração do modelo. Afecta a velocidade de convergência e a estabilidade.
verbose False Ativa a saída detalhada durante o treino, fornecendo registos detalhados e actualizações de progresso. É útil para depurar e monitorizar de perto o processo de formação.
seed 0 Define a semente aleatória para o treino, garantindo a reprodutibilidade dos resultados entre execuções com as mesmas configurações.
deterministic True Força a utilização de algoritmos determinísticos, garantindo a reprodutibilidade, mas pode afetar o desempenho e a velocidade devido à restrição de algoritmos não determinísticos.
single_cls False Trata todas as classes em conjuntos de dados multi-classe como uma única classe durante o treino. Útil para tarefas de classificação binária ou quando se concentra na presença de objectos em vez de na classificação.
rect False Permite a formação retangular, optimizando a composição do lote para um preenchimento mínimo. Pode melhorar a eficiência e a velocidade, mas pode afetar a precisão do modelo.
cos_lr False Utiliza um programador de taxa de aprendizagem cosseno, ajustando a taxa de aprendizagem seguindo uma curva cosseno ao longo de épocas. Ajuda a gerir a taxa de aprendizagem para uma melhor convergência.
close_mosaic 10 Desactiva o aumento dos dados do mosaico nas últimas N épocas para estabilizar o treino antes da conclusão. Definir como 0 desactiva esta funcionalidade.
resume False Reinicia o treinamento a partir do último ponto de verificação salvo. Carrega automaticamente os pesos do modelo, o estado do otimizador e a contagem de épocas, continuando o treinamento sem problemas.
amp True Permite a formação automática de precisão mista (AMP), reduzindo a utilização de memória e possivelmente acelerando a formação com um impacto mínimo na precisão.
fraction 1.0 Especifica a fração do conjunto de dados a utilizar para o treino. Permite o treino num subconjunto do conjunto de dados completo, útil para experiências ou quando os recursos são limitados.
profile False Permite a criação de perfis de ONNX e TensorRT velocidades durante o treino, útil para otimizar a implementação do modelo.
freeze None Congela as primeiras N camadas do modelo ou camadas especificadas por índice, reduzindo o número de parâmetros treináveis. Útil para ajuste fino ou aprendizagem por transferência.
lr0 0.01 Taxa de aprendizagem inicial (i.e. SGD=1E-2, Adam=1E-3) . O ajuste deste valor é crucial para o processo de otimização, influenciando a rapidez com que os pesos do modelo são actualizados.
lrf 0.01 Taxa de aprendizagem final como fração da taxa inicial = (lr0 * lrf), utilizado em conjunto com programadores para ajustar a taxa de aprendizagem ao longo do tempo.
momentum 0.937 Fator de momento para SGD ou beta1 para optimizadores Adam, que influencia a incorporação de gradientes passados na atualização atual.
weight_decay 0.0005 Termo de regularização L2, penalizando pesos grandes para evitar o sobreajuste.
warmup_epochs 3.0 Número de épocas para o aquecimento da taxa de aprendizagem, aumentando gradualmente a taxa de aprendizagem de um valor baixo para a taxa de aprendizagem inicial para estabilizar a formação numa fase inicial.
warmup_momentum 0.8 Momento inicial para a fase de aquecimento, ajustando-se gradualmente ao momento definido durante o período de aquecimento.
warmup_bias_lr 0.1 Taxa de aprendizagem para parâmetros de polarização durante a fase de aquecimento, ajudando a estabilizar o treinamento do modelo nas épocas iniciais.
box 7.5 Peso do componente de perda de caixa na função de perda, influenciando a importância dada à previsão exacta das coordenadas da caixa delimitadora.
cls 0.5 Peso da perda de classificação na função de perda total, afectando a importância da previsão correcta da classe em relação a outros componentes.
dfl 1.5 Peso da perda focal da distribuição, utilizado em determinadas versões de YOLO para uma classificação fina.
pose 12.0 Peso da perda de pose nos modelos treinados para a estimativa de pose, influenciando a ênfase na previsão exacta dos pontos-chave da pose.
kobj 2.0 Peso da perda de objetividade do ponto-chave nos modelos de estimação da pose, equilibrando a confiança na deteção com a precisão da pose.
label_smoothing 0.0 Aplica a suavização de rótulos, suavizando os rótulos rígidos para uma mistura do rótulo alvo e uma distribuição uniforme sobre os rótulos, pode melhorar a generalização.
nbs 64 Tamanho nominal do lote para normalização da perda.
overlap_mask True Determina se as máscaras de segmentação se devem sobrepor durante o treino, aplicável em tarefas de segmentação de instâncias.
mask_ratio 4 Rácio de downsample para máscaras de segmentação, que afecta a resolução das máscaras utilizadas durante o treino.
dropout 0.0 Taxa de desistência para regularização em tarefas de classificação, evitando o sobreajuste através da omissão aleatória de unidades durante o treino.
val True Permite a validação durante o treino, permitindo a avaliação periódica do desempenho do modelo num conjunto de dados separado.
plots False Gera e guarda gráficos de métricas de treino e validação, bem como exemplos de previsão, fornecendo informações visuais sobre o desempenho do modelo e a progressão da aprendizagem.

Guia do comboio

Prever definições

As definições de previsão dos modelos YOLO abrangem uma série de hiperparâmetros e configurações que influenciam o desempenho, a velocidade e a precisão do modelo durante a inferência de novos dados. O ajuste cuidadoso e a experimentação com estas definições são essenciais para obter um desempenho ótimo para uma tarefa específica. As principais definições incluem o limiar de confiança, o limiar de supressão não máxima (NMS) e o número de classes consideradas. Outros factores que afectam o processo de previsão são o tamanho e o formato dos dados de entrada, a presença de características suplementares, como máscaras ou várias etiquetas por caixa, e a tarefa específica para a qual o modelo é utilizado.

Argumentos de inferência:

Argumenta Tipo Predefinição Descrição
source str 'ultralytics/assets' Especifica a fonte de dados para inferência. Pode ser um caminho de imagem, ficheiro de vídeo, diretório, URL ou ID de dispositivo para feeds em direto. Suporta uma vasta gama de formatos e fontes, permitindo uma aplicação flexível em diferentes tipos de entrada.
conf float 0.25 Define o limite mínimo de confiança para as detecções. Os objectos detectados com confiança abaixo deste limite serão ignorados. Ajustar este valor pode ajudar a reduzir os falsos positivos.
iou float 0.7 Limiar de Intersecção sobre União (IoU) para Supressão Não Máxima (NMS). Valores mais baixos resultam em menos detecções, eliminando caixas sobrepostas, o que é útil para reduzir duplicados.
imgsz int or tuple 640 Define o tamanho da imagem para inferência. Pode ser um único número inteiro 640 para redimensionamento quadrado ou uma tupla (altura, largura). O dimensionamento correto pode melhorar a precisão da deteção e a velocidade de processamento.
half bool False Permite a inferência de meia-precisão (FP16), que pode acelerar a inferência de modelos em GPUs compatíveis com um impacto mínimo na precisão.
device str None Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite que os usuários selecionem entre CPU, uma GPU específica ou outros dispositivos de computação para a execução do modelo.
max_det int 300 Número máximo de detecções permitidas por imagem. Limita o número total de objectos que o modelo pode detetar numa única inferência, evitando saídas excessivas em cenas densas.
vid_stride int 1 Avanço de fotogramas para entradas de vídeo. Permite saltar fotogramas em vídeos para acelerar o processamento à custa da resolução temporal. Um valor de 1 processa cada fotograma, valores mais altos saltam fotogramas.
stream_buffer bool False Determina se todos os quadros devem ser armazenados em buffer ao processar fluxos de vídeo (True), ou se o modelo deve retornar o quadro mais recente (False). Útil para aplicações em tempo real.
visualize bool False Ativa a visualização dos recursos do modelo durante a inferência, fornecendo informações sobre o que o modelo está "vendo". Útil para depuração e interpretação do modelo.
augment bool False Permite o aumento do tempo de teste (TTA) para previsões, melhorando potencialmente a robustez da deteção à custa da velocidade de inferência.
agnostic_nms bool False Permite a supressão não máxima (NMS) independente de classe, que mescla caixas sobrepostas de classes diferentes. Útil em cenários de deteção de várias classes em que a sobreposição de classes é comum.
classes list[int] None Filtra as previsões para um conjunto de IDs de classe. Apenas as detecções pertencentes às classes especificadas serão retornadas. Útil para se concentrar em objetos relevantes em tarefas de deteção de várias classes.
retina_masks bool False Usa máscaras de segmentação de alta resolução, se disponíveis no modelo. Isso pode melhorar a qualidade da máscara para tarefas de segmentação, fornecendo detalhes mais finos.
embed list[int] None Especifica as camadas a partir das quais se extraem vectores de características ou incorporações. Útil para tarefas a jusante como o agrupamento ou a pesquisa de semelhanças.

Argumentos de visualização:

Argumenta Tipo Predefinição Descrição
show bool False Se TrueApresenta as imagens ou vídeos anotados numa janela. É útil para obter feedback visual imediato durante o desenvolvimento ou o teste.
save bool False Permite guardar as imagens ou vídeos anotados num ficheiro. Útil para documentação, análise posterior ou partilha de resultados.
save_frames bool False Ao processar vídeos, guarda fotogramas individuais como imagens. É útil para extrair fotogramas específicos ou para uma análise detalhada fotograma a fotograma.
save_txt bool False Guarda os resultados da deteção num ficheiro de texto, seguindo o formato [class] [x_center] [y_center] [width] [height] [confidence]. Útil para a integração com outras ferramentas de análise.
save_conf bool False Inclui pontuações de confiança nos arquivos de texto salvos. Aumenta o detalhe disponível para pós-processamento e análise.
save_crop bool False Guarda imagens cortadas de detecções. Útil para aumentar o conjunto de dados, analisar ou criar conjuntos de dados específicos para objectos específicos.
show_labels bool True Apresenta etiquetas para cada deteção na saída visual. Proporciona uma compreensão imediata dos objectos detectados.
show_conf bool True Apresenta a pontuação de confiança para cada deteção ao lado da etiqueta. Dá uma ideia da certeza do modelo para cada deteção.
show_boxes bool True Desenha caixas delimitadoras em torno dos objectos detectados. Essencial para a identificação visual e localização de objectos em imagens ou fotogramas de vídeo.
line_width None or int None Especifica a largura da linha das caixas delimitadoras. Se NoneSe não tiveres a certeza, a largura da linha é automaticamente ajustada com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza.

Guia de previsão

Definições de validação

As definições de val (validação) para os modelos YOLO envolvem vários hiperparâmetros e configurações utilizados para avaliar o desempenho do modelo num conjunto de dados de validação. Essas configurações influenciam o desempenho, a velocidade e a precisão do modelo. As configurações comuns de validação do YOLO incluem o tamanho do lote, a frequência de validação durante o treinamento e as métricas de avaliação de desempenho. Outros factores que afectam o processo de validação incluem o tamanho e a composição do conjunto de dados de validação, bem como a tarefa específica para a qual o modelo é utilizado.

Argumenta Tipo Predefinição Descrição
data str None Especifica o caminho para o ficheiro de configuração do conjunto de dados (por exemplo, coco8.yaml). Este ficheiro inclui caminhos para os dados de validação, nomes de classes e número de classes.
imgsz int 640 Define o tamanho das imagens de entrada. Todas as imagens são redimensionadas para esta dimensão antes do processamento.
batch int 16 Define o número de imagens por lote. Usa -1 para o AutoBatch, que se ajusta automaticamente com base na disponibilidade de memória da GPU.
save_json bool False Se Trueguarda os resultados num ficheiro JSON para análise posterior ou integração com outras ferramentas.
save_hybrid bool False Se Trueguarda uma versão híbrida das etiquetas que combina anotações originais com previsões adicionais do modelo.
conf float 0.001 Define o limite mínimo de confiança para as detecções. As detecções com confiança inferior a este limiar são rejeitadas.
iou float 0.6 Define o limiar de Intersecção sobre União (IoU) para Supressão Não Máxima (NMS). Ajuda a reduzir as detecções duplicadas.
max_det int 300 Limita o número máximo de detecções por imagem. Útil em cenas densas para evitar detecções excessivas.
half bool True Permite o cálculo de meia-precisão (FP16), reduzindo a utilização de memória e aumentando potencialmente a velocidade com um impacto mínimo na precisão.
device str None Especifica o dispositivo para validação (cpu, cuda:0etc.). Permite flexibilidade na utilização de recursos de CPU ou GPU.
dnn bool False Se Trueutiliza o módulo OpenCV DNN para ONNX inferência de modelos, oferecendo uma alternativa aos métodos de inferência PyTorch .
plots bool False Quando definido para Truegera e guarda gráficos de previsões versus verdade terrestre para avaliação visual do desempenho do modelo.
rect bool False Se Trueutiliza a inferência retangular para a formação de lotes, reduzindo o preenchimento e aumentando potencialmente a velocidade e a eficiência.
split str val Determina a divisão do conjunto de dados a utilizar para a validação (val, test, ou train). Permite flexibilidade na escolha do segmento de dados para avaliação do desempenho.

O ajuste cuidadoso e a experimentação com estas definições são cruciais para garantir um desempenho ótimo no conjunto de dados de validação e detetar e evitar o sobreajuste.

Guia Val

Exportar definições

As definições de exportação para modelos YOLO abrangem configurações e opções relacionadas com a gravação ou exportação do modelo para utilização em diferentes ambientes ou plataformas. Essas configurações podem afetar o desempenho, o tamanho e a compatibilidade do modelo com vários sistemas. As principais configurações de exportação incluem o formato de arquivo do modelo exportado (por exemplo, ONNX, TensorFlow SavedModel ), o dispositivo de destino (por exemplo, CPU, GPU) e recursos adicionais, como máscaras ou vários rótulos por caixa. O processo de exportação também pode ser afetado pela tarefa específica do modelo e pelos requisitos ou restrições do ambiente ou plataforma de destino.

Argumenta Tipo Predefinição Descrição
format str 'torchscript' Formato de destino para o modelo exportado, como por exemplo 'onnx', 'torchscript', 'tensorflow'ou outros, definindo a compatibilidade com vários ambientes de implantação.
imgsz int ou tuple 640 Tamanho de imagem pretendido para a entrada do modelo. Pode ser um número inteiro para imagens quadradas ou uma tupla (height, width) para dimensões específicas.
keras bool False Permite exportar para o formato Keras para TensorFlow SavedModel , proporcionando compatibilidade com TensorFlow servindo e APIs.
optimize bool False Aplica a otimização para dispositivos móveis ao exportar para TorchScript, reduzindo potencialmente o tamanho do modelo e melhorando o desempenho.
half bool False Permite a quantização FP16 (meia-precisão), reduzindo o tamanho do modelo e potencialmente acelerando a inferência no hardware suportado.
int8 bool False Ativa a quantização INT8, comprimindo ainda mais o modelo e acelerando a inferência com uma perda mínima de precisão, principalmente para dispositivos de ponta.
dynamic bool False Permite tamanhos de entrada dinâmicos para exportações para ONNX e TensorRT , aumentando a flexibilidade no tratamento de dimensões de imagem variáveis.
simplify bool False Simplifica o gráfico do modelo para ONNX exportações, melhorando potencialmente o desempenho e a compatibilidade.
opset int None Especifica a versão do ONNX opset para compatibilidade com diferentes analisadores e tempos de execução do ONNX . Se não for definido, utiliza a última versão suportada.
workspace float 4.0 Define o tamanho máximo do espaço de trabalho em GB para as optimizações do TensorRT , equilibrando a utilização da memória e o desempenho.
nms bool False Adiciona Supressão Não Máxima (NMS) à exportação CoreML , essencial para um pós-processamento de deteção preciso e eficiente.

É crucial configurar cuidadosamente estas definições para garantir que o modelo exportado é optimizado para o caso de utilização pretendido e funciona eficazmente no ambiente de destino.

Guia de exportação

Definições de aumento

As técnicas de aumento são essenciais para melhorar a robustez e o desempenho dos modelos YOLO , introduzindo variabilidade nos dados de treino, ajudando o modelo a generalizar melhor para dados não vistos. A tabela seguinte descreve o objetivo e o efeito de cada argumento de aumento:

Argumenta Tipo Predefinição Alcance Descrição
hsv_h float 0.015 0.0 - 1.0 Ajusta a tonalidade da imagem por uma fração da roda de cores, introduzindo variabilidade de cores. Ajuda o modelo a generalizar em diferentes condições de iluminação.
hsv_s float 0.7 0.0 - 1.0 Altera a saturação da imagem por uma fração, afectando a intensidade das cores. Útil para simular diferentes condições ambientais.
hsv_v float 0.4 0.0 - 1.0 Modifica o valor (brilho) da imagem por uma fração, ajudando o modelo a ter um bom desempenho em várias condições de iluminação.
degrees float 0.0 -180 - +180 Roda a imagem aleatoriamente dentro do intervalo de graus especificado, melhorando a capacidade do modelo para reconhecer objectos em várias orientações.
translate float 0.1 0.0 - 1.0 Traduz a imagem horizontal e verticalmente por uma fração do tamanho da imagem, ajudando a aprender a detetar objectos parcialmente visíveis.
scale float 0.5 >=0.0 Escala a imagem por um fator de ganho, simulando objectos a diferentes distâncias da câmara.
shear float 0.0 -180 - +180 Corta a imagem num grau especificado, imitando o efeito de objectos vistos de ângulos diferentes.
perspective float 0.0 0.0 - 0.001 Aplica uma transformação de perspetiva aleatória à imagem, melhorando a capacidade do modelo para compreender objectos no espaço 3D.
flipud float 0.0 0.0 - 1.0 Vira a imagem ao contrário com a probabilidade especificada, aumentando a variabilidade dos dados sem afetar as características do objeto.
fliplr float 0.5 0.0 - 1.0 Inverte a imagem da esquerda para a direita com a probabilidade especificada, útil para aprender objectos simétricos e aumentar a diversidade do conjunto de dados.
bgr float 0.0 0.0 - 1.0 Inverte os canais de imagem de RGB para BGR com a probabilidade especificada, útil para aumentar a robustez da ordenação incorrecta dos canais.
mosaic float 1.0 0.0 - 1.0 Combina quatro imagens de treino numa só, simulando diferentes composições de cenas e interacções de objectos. Altamente eficaz para a compreensão de cenas complexas.
mixup float 0.0 0.0 - 1.0 Mistura duas imagens e seus rótulos, criando uma imagem composta. Melhora a capacidade de generalização do modelo, introduzindo ruído de etiqueta e variabilidade visual.
copy_paste float 0.0 0.0 - 1.0 Copia objectos de uma imagem e cola-os noutra, útil para aumentar as instâncias de objectos e aprender a oclusão de objectos.
auto_augment str randaugment - Aplica automaticamente uma política de aumento predefinida (randaugment, autoaugment, augmix), optimizando as tarefas de classificação através da diversificação das características visuais.
erasing float 0.4 0.0 - 0.9 Apaga aleatoriamente uma parte da imagem durante o treino de classificação, encorajando o modelo a concentrar-se em características menos óbvias para o reconhecimento.
crop_fraction float 1.0 0.1 - 1.0 Corta a imagem de classificação para uma fração do seu tamanho para enfatizar as características centrais e adaptar-se às escalas dos objectos, reduzindo as distracções de fundo.

Estas definições podem ser ajustadas para satisfazer os requisitos específicos do conjunto de dados e da tarefa em causa. A experimentação de valores diferentes pode ajudar a encontrar a estratégia de aumento ideal que conduz ao melhor desempenho do modelo.

Configurações de registo, pontos de controlo e plotagem

O registo, os pontos de controlo, a plotagem e a gestão de ficheiros são considerações importantes quando se treina um modelo YOLO .

  • Registo: Muitas vezes é útil registar várias métricas e estatísticas durante o treino para acompanhar o progresso do modelo e diagnosticar quaisquer problemas que possam surgir. Isto pode ser feito utilizando uma biblioteca de registo como o TensorBoard ou escrevendo mensagens de registo num ficheiro.
  • Pontos de controlo: É uma boa prática guardar os pontos de controlo do modelo em intervalos regulares durante o treino. Isto permite-te retomar o treino a partir de um ponto anterior se o processo de treino for interrompido ou se quiseres experimentar diferentes configurações de treino.
  • Plotagem: Visualizar o desempenho do modelo e o progresso do treinamento pode ser útil para entender como o modelo está se comportando e identificar possíveis problemas. Isso pode ser feito usando uma biblioteca de plotagem, como matplotlib, ou gerando gráficos usando uma biblioteca de registro, como TensorBoard.
  • Gestão de ficheiros: Gerir os vários ficheiros gerados durante o processo de formação, tais como pontos de controlo do modelo, ficheiros de registo e gráficos, pode ser um desafio. É importante ter uma estrutura de ficheiros clara e organizada para manter o controlo destes ficheiros e facilitar o acesso e a análise dos mesmos, conforme necessário.

O registo eficaz, os pontos de controlo, a plotagem e a gestão de ficheiros podem ajudá-lo a acompanhar o progresso do modelo e facilitar a depuração e a otimização do processo de formação.

Argumenta Predefinição Descrição
project 'runs' Especifica o diretório raiz para guardar as execuções de treino. Cada execução será guardada num subdiretório separado dentro deste diretório.
name 'exp' Define o nome da experiência. Se não for especificado, YOLO incrementa automaticamente este nome para cada execução, por exemplo, exp, exp2, etc., para evitar que escrevas por cima de experiências anteriores.
exist_ok False Determina se deve sobrescrever um diretório de experimento existente se já existir um com o mesmo nome. Definindo isto para True permite escrever por cima, enquanto que False impede-o.
plots False Controla a geração e a gravação de gráficos de treino e validação. Define para True para criar gráficos como curvas de perda, curvas de precisão-recuperação e previsões de amostras. Útil para acompanhar visualmente o desempenho do modelo ao longo do tempo.
save False Permite guardar os pontos de controlo de treino e os pesos finais do modelo. Define como True para guardar periodicamente os estados dos modelos, permitindo que o treino seja retomado a partir destes pontos de controlo ou que os modelos sejam implementados.


Criado em 2023-11-12, Atualizado em 2024-04-18
Autores: glenn-jocher (13), fcakyon (2), Laughing-q (2), plashchynski (1), Burhan-Q (1), AyushExel (1), RizwanMunawar (1), tensorturtle (1)

Comentários