Ir para o conteúdo

Configuração

As configurações e os hiperparâmetros do YOLO desempenham um papel fundamental no desempenho, velocidade e precisão do modelo. Essas configurações podem afetar o comportamento do modelo em vários estágios, incluindo treinamento, validação e previsão.

Assistir: Dominando o Ultralytics YOLO: Configuração



Assista: Dominando o Ultralytics YOLO: Configuração

Os comandos Ultralytics usam a seguinte sintaxe:

Exemplo

yolo TASK MODE ARGS
from ultralytics import YOLO

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

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

Onde:

Padrão ARG os valores são definidos nesta página e vêm do cfg/defaults.yaml arquivo.

Tarefas

Os modelos YOLO da Ultralytics podem executar uma variedade de tarefas de visão computacional, incluindo:

Argumento Padrão Descrição
task 'detect' Especifica a tarefa YOLO: detect para detecção de objetos, segment para segmentação, classify para classificação, pose para estimativa de pose, e obb para caixas delimitadoras orientadas. Cada tarefa é adaptada para saídas e problemas específicos na análise de imagem e vídeo.

Guia de Tarefas

Modos

Os modelos YOLO da Ultralytics operam em diferentes modos, cada um projetado para um estágio específico do ciclo de vida do modelo:

  • Treinar: Treine um modelo YOLO em um conjunto de dados personalizado.
  • Val: Validar um modelo YOLO treinado.
  • Prever: Use um modelo YOLO treinado para fazer previsões sobre novas imagens ou vídeos.
  • Exportar: Exporte um modelo YOLO para implementação.
  • Track: Rastreie objetos em tempo real usando um modelo YOLO.
  • Benchmark: Faça o benchmark da velocidade e precisão das exportações YOLO (ONNX, TensorRT, etc.).
Argumento Padrão Descrição
mode 'train' Especifica o modo de operação do modelo YOLO: train para treinamento do modelo, val para validação, predict para inferência, export para conversão para formatos de implementação, track para rastreamento de objetos, e benchmark para avaliação de desempenho. Cada modo suporta diferentes estágios, desde o desenvolvimento até a implantação.

Guia de Modos

Configurações de Treinamento

As configurações de treino para modelos YOLO incluem hiperparâmetros e configurações que afetam o desempenho, a velocidade e a precisão do modelo. As configurações principais incluem o tamanho do lote, a taxa de aprendizagem, o momentum e o decaimento do peso. A escolha do otimizador, da função de perda e da composição do conjunto de dados também afetam o treino. O ajuste e a experimentação são cruciais para um desempenho ideal. Para mais detalhes, consulte a função de ponto de entrada Ultralytics.

Argumento Tipo Padrão Descrição
model str None Especifica o arquivo do modelo para treinamento. Aceita um caminho para um .pt modelo pré-treinado ou um .yaml arquivo de configuração. Essencial para definir a estrutura do modelo ou inicializar os pesos.
data str None Caminho para o arquivo de configuração do conjunto de dados (por exemplo, coco8.yaml). Este arquivo contém parâmetros específicos do conjunto de dados, incluindo caminhos para treinamento e dados de validaçãovalidação, nomes de classes e número de classes.
epochs int 100 Número total de épocas de treinamento. Cada época representa uma passagem completa por todo o conjunto de dados. Ajustar este valor pode afetar a duração do treinamento e o desempenho do modelo.
time float None Tempo máximo de treinamento em horas. Se definido, isso substitui o epochs argumento, permitindo que o treinamento pare automaticamente após a duração especificada. Útil para cenários de treinamento com restrição de tempo.
patience int 100 Número de épocas a esperar sem melhorias nas métricas de validação antes de interromper o treinamento precocemente. Ajuda a prevenir overfitting ao interromper o treinamento quando o desempenho estabiliza.
batch int ou float 16 Tamanho do lote (Batch size), com três modos: definido como um inteiro (por exemplo, batch=16auto mode para 60% de utilização da memória da GPU (batch=-1auto mode com fração de utilização especificada (batch=0.70).
imgsz int ou list 640 Tamanho da imagem alvo para treinamento. Todas as imagens são redimensionadas para esta dimensão antes de serem inseridas no modelo. Afeta a precisão do modelo e a complexidade computacional.
save bool True Permite salvar checkpoints de treinamento e pesos do modelo final. Útil para retomar o treinamento ou para o implantação do modelo.
save_period int -1 Frequência de salvamento dos checkpoints do modelo, especificada em épocas. Um valor de -1 desativa este recurso. Útil para salvar modelos provisórios durante longas sessões de treinamento.
cache bool False Permite o armazenamento em cache de imagens do conjunto de dados na memória (True/ramarmazenamento em disco (diskou desativa (False). Melhora a velocidade de treinamento, reduzindo as operações de E/S no disco, ao custo de maior uso de memória.
device int ou str ou list None Especifica o(s) dispositivo(s) computacional(is) para treinamento: uma única GPU (device=0várias GPUs (device=[0,1]CPU (device=cpu), MPS para Apple silicon (device=mps), ou seleção automática da GPU mais ociosa (device=-1) ou várias GPUs ociosas (device=[-1,-1])
workers int 8 Número de threads de trabalho para carregamento de dados (por RANK se treinamento Multi-GPU). Influencia a velocidade do pré-processamento de dados e alimentação no modelo, especialmente útil em configurações multi-GPU.
project str None Nome do diretório do projeto onde as saídas de treinamento são salvas. Permite o armazenamento organizado de diferentes experimentos.
name str None Nome da execução de treinamento. Usado para criar um subdiretório dentro da pasta do projeto, onde os logs e saídas de treinamento são armazenados.
exist_ok bool False Se True, permite sobrescrever um diretório de projeto/nome existente. Útil para experimentação iterativa sem a necessidade de limpar manualmente as saídas anteriores.
pretrained bool ou str True Determina se o treinamento deve começar a partir de um modelo pré-treinado. Pode ser um valor booleano ou um caminho de string para um modelo específico do qual carregar os pesos. Melhora a eficiência do treinamento e o desempenho do modelo.
optimizer str 'auto' Escolha do otimizador para treinamento. 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. Afeta a velocidade e a estabilidade da convergência.
seed int 0 Define a semente aleatória para o treinamento, garantindo a reprodutibilidade dos resultados em execuções com as mesmas configurações.
deterministic bool True Força o uso de algoritmo determinístico, garantindo a reprodutibilidade, mas pode afetar o desempenho e a velocidade devido à restrição de algoritmos não determinísticos.
single_cls bool False Trata todas as classes em conjuntos de dados multiclasse como uma única classe durante o treinamento. Útil para tarefas de classificação binária ou ao focar na presença do objeto em vez da classificação.
classes list[int] None Especifica uma lista de IDs de classe para treinar. Útil para filtrar e focar apenas em certas classes durante o treinamento.
rect bool False Ativa o treinamento retangular, otimizando a composição do lote para preenchimento mínimo. Pode melhorar a eficiência e a velocidade, mas pode afetar a precisão do modelo.
multi_scale bool False Ativa o treinamento multi-escala aumentando/diminuindo imgsz por até um fator de 0.5 durante o treinamento. Treina o modelo para ser mais preciso com múltiplos imgsz durante a inferência.
cos_lr bool False Utiliza um planejador de taxa de aprendizado de cosseno, ajustando a taxa de aprendizado seguindo uma curva de cosseno ao longo das épocas. Ajuda no gerenciamento da taxa de aprendizado para uma melhor convergência.
close_mosaic int 10 Desativa o aumento de dados de mosaico nas últimas N épocas para estabilizar o treinamento antes da conclusão. Definir como 0 desativa este recurso.
resume bool False Retoma o treinamento a partir do último checkpoint salvo. Carrega automaticamente os pesos do modelo, o estado do otimizador e a contagem de épocas, continuando o treinamento perfeitamente.
amp bool True Ativa o treinamento de Precisão Mista Automática (AMP), reduzindo o uso de memória e possivelmente acelerando o treinamento com impacto mínimo na precisão.
fraction float 1.0 Especifica a fração do conjunto de dados a ser usada para treinamento. Permite o treinamento em um subconjunto do conjunto de dados completo, útil para experimentos ou quando os recursos são limitados.
profile bool False Permite a criação de perfis das velocidades ONNX e TensorRT durante o treinamento, útil para otimizar a implantação do modelo.
freeze int ou list None Congela as primeiras N camadas do modelo ou as camadas especificadas por índice, reduzindo o número de parâmetros treináveis. Útil para ajuste fino ou transfer learning.
lr0 float 0.01 Taxa de aprendizado inicial (ou seja, SGD=1E-2, Adam=1E-3). Ajustar este valor é crucial para o processo de otimização, influenciando a rapidez com que os pesos do modelo são atualizados.
lrf float 0.01 Taxa de aprendizado final como uma fração da taxa inicial = (lr0 * lrf), usada em conjunto com os schedulers para ajustar a taxa de aprendizado ao longo do tempo.
momentum float 0.937 Fator de momentum para SGD ou beta1 para otimizadores Adam, influenciando a incorporação de gradientes passados na atualização atual.
weight_decay float 0.0005 Termo de regularização L2, penalizando pesos grandes para evitar overfitting.
warmup_epochs float 3.0 Número de épocas para aquecimento da taxa de aprendizado, aumentando gradualmente a taxa de aprendizado de um valor baixo para a taxa de aprendizado inicial para estabilizar o treinamento no início.
warmup_momentum float 0.8 Momentum inicial para a fase de aquecimento, ajustando-se gradualmente ao momentum definido durante o período de aquecimento.
warmup_bias_lr float 0.1 Taxa de aprendizado para parâmetros de bias durante a fase de aquecimento, ajudando a estabilizar o treinamento do modelo nas épocas iniciais.
box float 7.5 Peso do componente de perda da caixa na função de perda, influenciando quanta ênfase é colocada na previsão precisa das coordenadas da caixa delimitadora.
cls float 0.5 Peso da perda de classificação na função de perda total, afetando a importância da previsão correta da classe em relação a outros componentes.
dfl float 1.5 Peso da perda focal de distribuição, usado em certas versões do YOLO para classificação refinada.
pose float 12.0 Peso da perda de pose em modelos treinados para estimativa de pose, influenciando a ênfase na previsão precisa dos pontos-chave da pose.
kobj float 2.0 Peso da perda de objetividade do ponto-chave em modelos de estimativa de pose, equilibrando a confiança da detecção com a precisão da pose.
nbs int 64 Tamanho nominal do lote para normalização da perda.
overlap_mask bool True Determina se as máscaras de objeto devem ser mescladas em uma única máscara para treinamento ou mantidas separadas para cada objeto. Em caso de sobreposição, a máscara menor é sobreposta à máscara maior durante a mesclagem.
mask_ratio int 4 Taxa de subamostragem para máscaras de segmentação, afetando a resolução das máscaras usadas durante o treinamento.
dropout float 0.0 Taxa de dropout para regularização em tarefas de classificação, prevenindo o sobreajuste ao omitir aleatoriamente unidades durante o treinamento.
val bool True Ativa a validação durante o treinamento, permitindo a avaliação periódica do desempenho do modelo em um conjunto de dados separado.
plots bool False Gera e salva gráficos das métricas de treinamento e validação, bem como exemplos de previsão, fornecendo insights visuais sobre o desempenho do modelo e a progressão do aprendizado.

Nota sobre as configurações de tamanho do lote (Batch-size)

O batch argumento oferece três opções de configuração:

  • Tamanho Fixo do Batch: Especifique o número de imagens por lote com um número inteiro (por exemplo, batch=16).
  • Modo Automático (60% de Memória da GPU): Use batch=-1 para ajuste automático para aproximadamente 60% de utilização da memória CUDA.
  • Modo Automático com Fração de Utilização: Defina uma fração (por exemplo, batch=0.70) para ajustar com base no uso especificado de memória da GPU.

Guia de Treinamento

Configurações de Predição

As configurações de previsão para modelos YOLO incluem hiperparâmetros e configurações que influenciam o desempenho, a velocidade e a precisão durante a inferência. As configurações principais incluem o limite de confiança, o limite de Supressão Não Máxima (NMS) e o número de classes. O tamanho dos dados de entrada, o formato e os recursos suplementares, como máscaras, também afetam as previsões. Ajustar essas configurações é essencial para um desempenho ideal.

Argumentos de inferência:

Argumento Tipo Padrão Descrição
source str 'ultralytics/assets' Especifica a fonte de dados para a inferência. Pode ser um caminho de imagem, arquivo de vídeo, diretório, URL ou ID de dispositivo para feeds ao vivo. Suporta uma ampla 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. Objetos detectados com confiança abaixo deste limite serão desconsiderados. Ajustar este valor pode ajudar a reduzir falsos positivos.
iou float 0.7 Limite 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, útil para reduzir duplicatas.
imgsz int ou tuple 640 Define o tamanho da imagem para inferência. Pode ser um único inteiro 640 para redimensionamento quadrado ou uma tupla (altura, largura). O dimensionamento adequado pode melhorar a detecção precisão e a velocidade de processamento.
rect bool True Se ativado, preenche minimamente o lado mais curto da imagem até que seja divisível por stride para melhorar a velocidade de inferência. Se desativado, preenche a imagem para um quadrado durante a inferência.
half bool False Ativa a inferência de meia-precisão (FP16), o que pode acelerar a inferência do modelo em GPUs suportadas com 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.
batch int 1 Especifica o tamanho do lote para inferência (só funciona quando a fonte é um diretório, arquivo de vídeo ou .txt arquivo). Um tamanho de lote maior pode fornecer maior throughput, encurtando o tempo total necessário para a inferência.
max_det int 300 Número máximo de detecções permitidas por imagem. Limita o número total de objetos que o modelo pode detectar em uma única inferência, evitando saídas excessivas em cenas densas.
vid_stride int 1 Stride de frames para entradas de vídeo. Permite pular frames em vídeos para acelerar o processamento ao custo da resolução temporal. Um valor de 1 processa cada frame, valores mais altos pulam frames.
stream_buffer bool False Determina se os frames recebidos devem ser enfileirados para streams de vídeo. Se False, os frames antigos são descartados para acomodar novos frames (otimizado para aplicações em tempo real). Se True, enfileira novos frames em um buffer, garantindo que nenhum frame seja ignorado, mas causará latência se o FPS de inferência for menor que o FPS do stream.
visualize bool False Ativa a visualização das características do modelo durante a inferência, fornecendo insights sobre o que o modelo está "vendo". Útil para depuração e interpretação do modelo.
augment bool False Ativa o aumento do tempo de teste (TTA) para previsões, potencialmente melhorando a robustez da detecção ao custo da velocidade de inferência.
agnostic_nms bool False Ativa a Supressão Não Máxima (NMS) agnóstica à classe, que mescla caixas sobrepostas de diferentes classes. Útil em cenários de detecção multi-classe onde 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 focar em objetos relevantes em tarefas de detecção multi-classe.
retina_masks bool False Retorna máscaras de segmentação de alta resolução. As máscaras retornadas (masks.data) corresponderão ao tamanho original da imagem se ativado. Se desativado, elas terão o tamanho da imagem usado durante a inferência.
embed list[int] None Especifica as camadas das quais extrair vetores de características ou embeddings. Útil para tarefas downstream como clustering ou pesquisa de similaridade.
project str None Nome do diretório do projeto onde as saídas de previsão são salvas se save estiver ativado.
name str None Nome da execução da previsão. Usado para criar um subdiretório dentro da pasta do projeto, onde as saídas de previsão são armazenadas se save estiver ativado.
stream bool False Ativa o processamento com uso eficiente de memória para vídeos longos ou inúmeras imagens, retornando um gerador de objetos Results em vez de carregar todos os frames na memória de uma só vez.
verbose bool True Controla se deve exibir logs de inferência detalhados no terminal, fornecendo feedback em tempo real sobre o processo de previsão.

Argumentos de visualização:

Argumento Tipo Padrão Descrição
show bool False Se True, exibe as imagens ou vídeos anotados em uma janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
save bool False or True Permite salvar as imagens ou vídeos anotados em um arquivo. Útil para documentação, análise posterior ou compartilhamento de resultados. O padrão é True ao usar a CLI e False ao usar python.
save_frames bool False Ao processar vídeos, salva frames individuais como imagens. Útil para extrair frames específicos ou para análise detalhada frame a frame.
save_txt bool False Salva os resultados da detecção em um arquivo de texto, seguindo o formato [class] [x_center] [y_center] [width] [height] [confidence]. Útil para integração com outras ferramentas de análise.
save_conf bool False Inclui os scores de confiança nos arquivos de texto salvos. Aumenta o detalhe disponível para pós-processamento e análise.
save_crop bool False Salva imagens cortadas das detecções. Útil para aumento de dataset, análise ou criação de datasets focados para objetos específicos.
show_labels bool True Exibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados.
show_conf bool True Exibe o score de confiança para cada detecção junto com o rótulo. Dá uma ideia da certeza do modelo para cada detecção.
show_boxes bool True Desenha caixas delimitadoras ao redor dos objetos detectados. Essencial para identificação visual e localização de objetos em imagens ou frames de vídeo.
line_width None or int None Especifica a largura da linha das caixas delimitadoras. Se None, a largura da linha é ajustada automaticamente com base no tamanho da imagem. Fornece personalização visual para clareza.

Guia de Predição

Configurações de Validação

As configurações de validação para modelos YOLO envolvem hiperparâmetros e configurações para avaliar o desempenho em um conjunto de dados de validação. Essas configurações influenciam o desempenho, a velocidade e a precisão. As configurações comuns incluem tamanho do lote, frequência de validação e métricas de desempenho. O tamanho e a composição do conjunto de dados de validação, juntamente com a tarefa específica, também afetam o processo.

Argumento Tipo Padrão Descrição
data str None Especifica o caminho para o arquivo de configuração do conjunto de dados (por exemplo, coco8.yaml). Este arquivo inclui caminhos para dados de validaçãovalidaçã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. Tamanhos maiores podem melhorar a precisão para objetos pequenos, mas aumentam o tempo de computação.
batch int 16 Define o número de imagens por lote. Valores mais altos utilizam a memória da GPU de forma mais eficiente, mas exigem mais VRAM. Ajuste com base nos recursos de hardware disponíveis.
save_json bool False Se True, salva os resultados em um arquivo JSON para análise posterior, integração com outras ferramentas ou envio para servidores de avaliação como o COCO.
conf float 0.001 Define o limite mínimo de confiança para detecções. Valores mais baixos aumentam o recall, mas podem introduzir mais falsos positivos. Usado durante a validação para calcular as curvas de precisão-recall.
iou float 0.7 Define o limite de Intersecção sobre União para Supressão Não Máxima. Controla a eliminação de detecção de duplicados.
max_det int 300 Limita o número máximo de detecções por imagem. Útil em cenas densas para evitar detecções excessivas e gerenciar recursos computacionais.
half bool True Ativa a computação de meia-precisão (FP16), reduzindo o uso de memória e potencialmente aumentando a velocidade com impacto mínimo na precisão.
device str None Especifica o dispositivo para validação (cpu, cuda:0, etc.). Quando None, seleciona automaticamente o melhor dispositivo disponível. Vários dispositivos CUDA podem ser especificados com separação por vírgulas.
dnn bool False Se True, usa o OpenCV Módulo DNN para inferência de modelo ONNX, oferecendo uma alternativa para PyTorch métodos de inferência.
plots bool False Quando definido como True, gera e salva gráficos de previsões versus verdade fundamental, matrizes de confusão e curvas PR para avaliação visual do desempenho do modelo.
classes list[int] None Especifica uma lista de IDs de classe para treinar. Útil para filtrar e focar apenas em certas classes durante a avaliação.
rect bool True Se True, usa inferência retangular para loteamento, reduzindo o preenchimento e potencialmente aumentando a velocidade e a eficiência ao processar imagens em sua proporção original.
split str 'val' Determina a divisão do conjunto de dados a ser usada para validação (val, test, ou train). Permite flexibilidade na escolha do segmento de dados para avaliação de desempenho.
project str None Nome do diretório do projeto onde as saídas de validação são salvas. Ajuda a organizar os resultados de diferentes experimentos ou modelos.
name str None Nome da execução de validação. Usado para criar um subdiretório dentro da pasta do projeto, onde os logs e saídas de validação são armazenados.
verbose bool False Se True, exibe informações detalhadas durante o processo de validação, incluindo métricas por classe, progresso do lote e informações de depuração adicionais.
save_txt bool False Se True, salva os resultados da detecção em arquivos de texto, com um arquivo por imagem, útil para análise posterior, pós-processamento personalizado ou integração com outros sistemas.
save_conf bool False Se True, inclui valores de confiança nos arquivos de texto salvos quando save_txt está habilitado, fornecendo uma saída mais detalhada para análise e filtragem.
workers int 8 Número de threads de trabalho para carregamento de dados. Valores mais altos podem acelerar o pré-processamento de dados, mas podem aumentar o uso da CPU. Definir como 0 usa o thread principal, o que pode ser mais estável em alguns ambientes.
augment bool False Ativa a aumentação em tempo de teste (TTA) durante a validação, potencialmente melhorando a precisão da detecção ao custo da velocidade de inferência, executando a inferência em versões transformadas da entrada.
agnostic_nms bool False Ativa a Supressão Não Máxima agnóstica à classe, que mescla caixas sobrepostas, independentemente de sua classe prevista. Útil para aplicações focadas em instâncias.
single_cls bool False Trata todas as classes como uma única classe durante a validação. Útil para avaliar o desempenho do modelo em tarefas de deteção binária ou quando as distinções de classe não são importantes.

Ajustes e experimentações cuidadosas são cruciais para garantir o desempenho ideal e para detectar e prevenir overfitting.

Guia de Validação

Configurações de Exportação

As configurações de exportação para modelos YOLO incluem configurações para salvar ou exportar o modelo para uso em diferentes ambientes. Essas configurações afetam o desempenho, o tamanho e a compatibilidade. As principais configurações incluem o formato de arquivo exportado (por exemplo, ONNX, TensorFlow SavedModel), o dispositivo de destino (por exemplo, CPU, GPU) e recursos como máscaras. A tarefa do modelo e as restrições do ambiente de destino também afetam o processo de exportação.

Argumento Tipo Padrão Descrição
format str 'torchscript' Formato de destino para o modelo exportado, como 'onnx', 'torchscript', 'engine' (TensorRT), ou outros. Cada formato permite compatibilidade com diferentes ambientes de implantação.
imgsz int ou tuple 640 Tamanho de imagem desejado para a entrada do modelo. Pode ser um inteiro para imagens quadradas (por exemplo, 640 para 640×640) ou uma tupla (height, width) para dimensões específicas.
keras bool False Permite a exportação para o formato Keras para TensorFlow SavedModel, proporcionando compatibilidade com o serviço e as APIs do TensorFlow.
optimize bool False Aplica otimização para dispositivos móveis ao exportar para TorchScript, potencialmente reduzindo o tamanho do modelo e melhorando o desempenho de inferência. Não é compatível com o formato NCNN ou dispositivos CUDA.
half bool False Ativa a quantização FP16 (meia precisão), reduzindo o tamanho do modelo e potencialmente acelerando a inferência em hardware suportado. Não é compatível com a quantização INT8 ou exportações somente para CPU para ONNX.
int8 bool False Ativa a quantização INT8, comprimindo ainda mais o modelo e acelerando a inferência com perda mínima de precisão, principalmente para dispositivos de borda. Quando usado com TensorRT, realiza a quantização pós-treinamento (PTQ).
dynamic bool False Permite tamanhos de entrada dinâmicos para exportações ONNX, TensorRT e OpenVINO, aumentando a flexibilidade no manuseio de diferentes dimensões de imagem. Automaticamente definido para True ao usar TensorRT com INT8.
simplify bool True Simplifica o grafo do modelo para exportações ONNX com onnxslim, potencialmente melhorando o desempenho e a compatibilidade com os mecanismos de inferência.
opset int None Especifica a versão do ONNX opset para compatibilidade com diferentes analisadores e tempos de execução ONNX. Se não for definido, usa a versão mais recente suportada.
workspace float ou None None Define o tamanho máximo do espaço de trabalho em GiB para TensorRT otimizações, equilibrando o uso de memória e o desempenho. Use None para alocação automática pelo TensorRT até ao máximo do dispositivo.
nms bool False Adiciona a Supressão Não Máxima (NMS) ao modelo exportado quando suportado (ver Formatos de Exportação), melhorando a eficiência do pós-processamento de detecção. Não disponível para modelos end2end.
batch int 1 Especifica o tamanho do lote de inferência do modelo de exportação ou o número máximo de imagens que o modelo exportado processará simultaneamente em predict modo. Para exportações Edge TPU, isso é automaticamente definido como 1.
device str None Especifica o dispositivo para exportação: GPU (device=0CPU (device=cpu), MPS para Apple silicon (device=mps) ou DLA para NVIDIA Jetson (device=dla:0 ou device=dla:1). As exportações do TensorRT usam GPU automaticamente.
data str 'coco8.yaml' Caminho para o conjunto de dados arquivo de configuração (padrão: coco8.yaml), essencial para a calibração da quantização INT8. Se não for especificado com o INT8 habilitado, um conjunto de dados padrão será atribuído.
fraction float 1.0 Especifica a fração do conjunto de dados a ser usada para a calibração da quantização INT8. Permite calibrar em um subconjunto do conjunto de dados completo, útil para experimentos ou quando os recursos são limitados. Se não for especificado com INT8 habilitado, o conjunto de dados completo será usado.

Uma configuração bem pensada garante que o modelo exportado seja otimizado para seu caso de uso e funcione efetivamente no ambiente de destino.

Guia de Exportação

Configurações de Soluções

As configurações de configuração das Soluções Ultralytics oferecem flexibilidade para personalizar modelos para tarefas como contagem de objetos, criação de mapas de calor, rastreamento de exercícios, análise de dados, rastreamento de zona, gerenciamento de filas e contagem baseada em região. Essas opções permitem ajustes fáceis para resultados precisos e úteis, adaptados a necessidades específicas.

Argumento Tipo Padrão Descrição
model str None Caminho para o arquivo do modelo Ultralytics YOLO.
region list '[(20, 400), (1260, 400)]' Lista de pontos que definem a região de contagem.
show_in bool True Flag para controlar se exibe as contagens de entrada no fluxo de vídeo.
show_out bool True Flag para controlar se exibe as contagens de saída no fluxo de vídeo.
analytics_type str line Tipo de gráfico, ou seja, line, bar, area, ou pie.
colormap int cv2.COLORMAP_JET Mapa de cores a ser usado para o mapa de calor.
json_file str None Caminho para o arquivo JSON que contém todos os dados de coordenadas de estacionamento.
up_angle float 145.0 Limite de ângulo para a pose 'para cima'.
kpts list[int, int, int] '[6, 8, 10]' Lista de pontos-chave usados para monitorar exercícios. Esses pontos-chave correspondem a articulações ou partes do corpo, como ombros, cotovelos e pulsos, para exercícios como flexões, barras, agachamentos e exercícios abdominais.
down_angle float 90.0 Limite de ângulo para a pose 'para baixo'.
blur_ratio float 0.5 Ajusta a porcentagem da intensidade do desfoque, com valores no intervalo 0.1 - 1.0.
crop_dir str 'cropped-detections' Nome do diretório para armazenar detecções recortadas.
records int 5 Contagem total de detecções para acionar um e-mail com o sistema de alarme de segurança.
vision_point tuple[int, int] (20, 20) O ponto onde a visão rastreará objetos e desenhará caminhos usando a Solução VisionEye.
source str None Caminho para a fonte de entrada (vídeo, RTSP, etc.). Só utilizável com a interface de linha de comandos (CLI) Solutions.
figsize tuple[int, int] (12.8, 7.2) Tamanho da figura para gráficos analíticos, como mapas de calor ou gráficos.
fps float 30.0 Frames por segundo usados para cálculos de velocidade.
max_hist int 5 Número máximo de pontos históricos para rastrear por objeto para cálculos de velocidade/direção.
meter_per_pixel float 0.05 Fator de escala usado para converter a distância em pixels para unidades do mundo real.
max_speed int 120 Limite máximo de velocidade em sobreposições visuais (usado em alertas).
data str 'images' Caminho para o diretório de imagens utilizado para a pesquisa de similaridade.

Guia de Soluções

Configurações de Aumento

As técnicas de aumento de dados são essenciais para melhorar a robustez e o desempenho do modelo YOLO, introduzindo variabilidade nos dados de treinamento, ajudando o modelo a generalizar melhor para dados não vistos. A tabela a seguir descreve o propósito e o efeito de cada argumento de aumento:

Argumento Tipo Padrão Intervalo 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 cor. 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, afetando 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 0.0 - 180 Gira a imagem aleatoriamente dentro do intervalo de graus especificado, melhorando a capacidade do modelo de reconhecer objetos em várias orientações.
translate float 0.1 0.0 - 1.0 Translação da imagem horizontal e verticalmente por uma fração do tamanho da imagem, auxiliando no aprendizado para detectar objetos parcialmente visíveis.
scale float 0.5 >=0.0 Dimensiona a imagem por um fator de ganho, simulando objetos a diferentes distâncias da câmera.
shear float 0.0 -180 - +180 Cisalha a imagem por um grau especificado, imitando o efeito de objetos sendo visualizados de diferentes ângulos.
perspective float 0.0 0.0 - 0.001 Aplica uma transformação de perspectiva aleatória à imagem, aprimorando a capacidade do modelo de entender objetos no espaço 3D.
flipud float 0.0 0.0 - 1.0 Inverte a imagem de cabeça para baixo 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 objetos 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 a ordenação incorreta de canais.
mosaic float 1.0 0.0 - 1.0 Combina quatro imagens de treino em uma, simulando diferentes composições de cena e interações de objetos. 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 do modelo de generalizar, introduzindo ruído de rótulo e variabilidade visual.
cutmix float 0.0 0.0 - 1.0 Combina porções de duas imagens, criando uma mistura parcial enquanto mantém regiões distintas. Melhora a robustez do modelo, criando cenários de oclusão.
copy_paste float 0.0 0.0 - 1.0 Apenas Segmentação. Copia e cola objetos entre imagens para aumentar as instâncias de objetos.
copy_paste_mode str flip - Apenas segmentação. Especifica o copy-paste estratégia a ser usada. As opções incluem 'flip' e 'mixup'.
auto_augment str randaugment - Apenas classificação. Aplica uma política de aumento predefinida ('randaugment', 'autoaugment', ou 'augmix') para melhorar o desempenho do modelo através da diversidade visual.
erasing float 0.4 0.0 - 0.9 Apenas Classificação. Apaga aleatoriamente regiões da imagem durante o treinamento para incentivar o modelo a se concentrar em recursos menos óbvios.

Ajuste estas configurações para atender aos requisitos do conjunto de dados e da tarefa. Experimentar com diferentes valores pode ajudar a encontrar a estratégia de aumento ideal para o melhor desempenho do modelo.

Guia de Aumento de Dados

Configurações de Registro, Checkpoints e Plotagem

O registro, os checkpoints, o plot e o gerenciamento de arquivos são importantes ao treinar um modelo YOLO:

  • Registo: Acompanhe o progresso do modelo e diagnostique problemas usando bibliotecas como o TensorBoard ou escrevendo para um ficheiro.
  • Checkpoints: Salve o modelo em intervalos regulares para retomar o treinamento ou experimentar diferentes configurações.
  • Plotagem: Visualize o desempenho e o progresso do treinamento usando bibliotecas como matplotlib ou TensorBoard.
  • Gerenciamento de arquivos: Organize os arquivos gerados durante o treinamento, como checkpoints, arquivos de log e gráficos, para facilitar o acesso e a análise.

A gestão eficaz destes aspetos ajuda a acompanhar o progresso e facilita a depuração e a otimização.

Argumento Padrão Descrição
project 'runs' Especifica o diretório raiz para salvar as execuções de treinamento. Cada execução é salva em um subdiretório separado.
name 'exp' Define o nome da experiência. Se não especificado, o YOLO incrementa este nome para cada execução (por exemplo, exp, exp2) para evitar sobrescrever.
exist_ok False Determina se deve sobrescrever um diretório de experimento existente. True permite sobrescrever; False impede isso.
plots False Controla a geração e o salvamento de gráficos de treinamento e validação. Definir para True para criar gráficos como curvas de perda, precisão-recall curvas e previsões de amostra para rastreamento visual do desempenho.
save False Ativa o salvamento de checkpoints de treinamento e pesos finais do modelo. Defina como True para salvar os estados do modelo periodicamente, permitindo a retomada do treinamento ou a implantação do modelo.

FAQ

Como posso melhorar o desempenho do meu modelo YOLO durante o treinamento?

Melhore o desempenho ajustando hiperparâmetros como tamanho do lote, taxa de aprendizado, momentum e decaimento de peso. Ajuste as configurações de aumento de dados, selecione o otimizador correto e use técnicas como parada antecipada ou precisão mista. Para mais detalhes, consulte o Guia de Treinamento.

Quais são os principais hiperparâmetros para a precisão do modelo YOLO?

Os principais hiperparâmetros que afetam a precisão incluem:

  • Tamanho do Lote (batch): Tamanhos maiores podem estabilizar o treinamento, mas precisam de mais memória.
  • Taxa de Aprendizado (lr0): Taxas menores oferecem ajustes finos, mas uma convergência mais lenta.
  • Momentum (momentum): Acelera vetores gradientes, amortecendo oscilações.
  • Tamanho da Imagem (imgsz): Tamanhos maiores melhoram a precisão, mas aumentam a carga computacional.

Ajuste estes com base no seu conjunto de dados e hardware. Saiba mais em Configurações de Treino.

Como defino a taxa de aprendizado para treinar um modelo YOLO?

A taxa de aprendizado (lr0) é crucial; comece com 0.01 para SGD ou 0.001 para Otimizador Adam. Monitore as métricas e ajuste conforme necessário. Use schedulers de taxa de aprendizado de cosseno (cos_lr) ou warmup (warmup_epochs, warmup_momentum). Detalhes estão no Guia de Treinamento.

Quais são as configurações de inferência padrão para modelos YOLO?

As configurações padrão incluem:

  • Limite de Confiança (conf=0.25): Confiança mínima para detecções.
  • Limite de IoU (iou=0.7): Para Supressão Não Máxima (NMS).
  • Tamanho da Imagem (imgsz=640): Redimensiona as imagens de entrada.
  • Dispositivo (device=None): Seleciona CPU ou GPU.

Para uma visão geral completa, consulte as Definições de Previsão e o Guia de Previsão.

Por que usar treinamento de precisão mista com modelos YOLO?

Precisão mista treino (amp=True) reduz o uso de memória e acelera o treinamento usando FP16 e FP32. É benéfico para GPUs modernas, permitindo modelos maiores e cálculos mais rápidos sem perda significativa de precisão. Saiba mais no Guia de Treinamento.



📅 Criado há 1 ano ✏️ Atualizado há 1 mês

Comentários