Ultralytics YOLO27:
Get Started

Configuração#

As configurações e os hiperparâmetros do YOLO têm um papel fundamental no desempenho, na velocidade e na precisão do modelo. Essas configurações podem afetar o comportamento do modelo em várias etapas, incluindo treinamento, validação e predição.



Assista: Domine o Ultralytics YOLO: configuração

Os comandos do Ultralytics usam a seguinte sintaxe:

Exemplo
yolo TASK MODE ARGS

Onde:

Os valores padrão de ARG estão definidos nesta página e vêm do arquivo cfg/default.yaml.

Tarefas#

Os modelos Ultralytics YOLO podem realizar diversas tarefas de visão computacional, incluindo:

ArgumentoPadrãoDescrição
task'detect'Especifica a tarefa do YOLO: detect para deteção de objetos, segment para segmentação de instâncias, semantic para segmentação semântica, depth para estimativa monocular de profundidade, classify para classificação, pose para estimativa de pose e obb para caixas delimitadoras orientadas. Cada tarefa é adaptada a resultados e problemas específicos da análise de imagens e vídeos.

Guia de tarefas

Modos#

Os modelos Ultralytics YOLO funcionam em diferentes modos, cada um concebido para uma etapa específica do ciclo de vida do modelo:

  • Train: Treina um modelo YOLO com um conjunto de dados personalizado.
  • Val: Valida um modelo YOLO treinado.
  • Predict: Usa um modelo YOLO treinado para fazer previsões em novas imagens ou vídeos.
  • Export: Exporta um modelo YOLO para implementação.
  • Track: Acompanha objetos em tempo real usando um modelo YOLO.
  • Benchmark: Avalia a velocidade e a precisão das exportações YOLO (ONNX, TensorRT, etc.).
ArgumentoPadrãoDescrição
mode'train'Especifica o modo de funcionamento do modelo YOLO: train para treinar o modelo, val para validação, predict para inferência, export para converter para formatos de implementação, track para rastreamento de objetos e benchmark para avaliação de desempenho. Cada modo abrange diferentes etapas, do desenvolvimento à implementação.

Guia de modos

Configurações de treino#

As configurações de treino dos modelos YOLO incluem hiperparâmetros e configurações que afetam o desempenho, a velocidade e a precisão do modelo. As principais configurações incluem tamanho do lote, taxa de aprendizagem, momento e decaimento dos pesos. A escolha do otimizador, da função de perda e da composição do conjunto de dados também influencia o treino. O ajuste e a experimentação são essenciais para obter o melhor desempenho. Para mais detalhes, consulta a função de entrada da Ultralytics.

ArgumentoTipoPadrãoDescrição
modelstrNoneEspecifica o ficheiro do modelo usado no treino. Aceita o caminho para um modelo pré-treinado .pt ou para um ficheiro de configuração .yaml. É essencial para definir a estrutura do modelo ou inicializar os pesos.
datastrNoneCaminho para o YAML do conjunto de dados (por exemplo, coco8.yaml), que contém os caminhos para os dados de validação e de treino, os nomes das classes e o número de classes. A classificação requer um diretório do conjunto de dados ou o nome de um conjunto de dados integrado (por exemplo, imagenet10).
epochsint100Número total de épocas de treino. Cada época corresponde a uma passagem completa pelo conjunto de dados. Ajustar este valor pode afetar a duração do treino e o desempenho do modelo.
timefloatNoneDuração máxima do treino, em horas. Se definido, substitui o argumento epochs, permitindo que o treino pare automaticamente após o período especificado. Útil em cenários com limitações de tempo.
patienceint100Número de épocas a aguardar sem melhoria nas métricas de validação antes de interromper o treino antecipadamente. Ajuda a evitar o sobreajuste, parando o treino quando o desempenho estabiliza.
batchint ou float16Tamanho do lote, com três modos: define um número inteiro (por exemplo, batch=16), usa o modo automático para 60% da utilização da memória da GPU (batch=-1) ou usa o modo automático com uma fração de utilização especificada (batch=0.70).
imgszint640Tamanho de imagem pretendido para o treino. As imagens são redimensionadas para quadrados cujos lados correspondem ao valor especificado (se rect=False), preservando a proporção nos modelos YOLO, mas não no RT-DETR. Afeta a precisão do modelo e a complexidade computacional.
saveboolTruePermite guardar pontos de controlo do treino e os pesos finais do modelo. Útil para retomar o treino ou para a implementação do modelo.
save_periodint-1Frequência de gravação dos pontos de controlo do modelo, especificada em épocas. O valor -1 desativa esta funcionalidade. Útil para guardar modelos intermédios durante sessões de treino longas.
cachebool ou strFalsePermite guardar em cache as imagens do conjunto de dados na memória (True/ram), no disco (disk) ou desativa a cache (False). Acelera o treino ao reduzir as operações de E/S do disco, à custa de um maior consumo de memória.
deviceint ou str ou listNoneEspecifica o(s) dispositivo(s) de computação para o treino: uma única GPU (device=0), várias GPUs (device=[0,1]), CPU (device=cpu), MPS para Apple silicon (device=mps), NPU Huawei Ascend (device=npu:0 ou device=npu:0,1), Intel XPU (device=xpu:0), ou seleção automática de uma GPU inativa (device=-1) ou de várias GPUs inativas (device=[-1,-1]).
workersint8Número de threads de trabalho para carregar dados (por RANK no treino com várias GPUs). Afeta a velocidade do pré-processamento e do envio dos dados para o modelo, sendo especialmente útil em configurações com várias GPUs.
projectstrNoneNome do diretório do projeto onde os resultados do treino são guardados. Permite organizar o armazenamento de diferentes experiências.
namestrNoneNome da execução de treino. Usado para criar um subdiretório na pasta do projeto, onde são armazenados os registos e os resultados do treino.
exist_okboolFalseSe True, permite substituir um diretório de projeto/nome existente. Útil para experiências iterativas sem ter de limpar manualmente os resultados anteriores.
save_dirstrNoneEspecifica o diretório exato onde os resultados da execução são guardados, substituindo a combinação project/name. O caminho é usado tal como está, sem incrementação automática, pelo que execuções consecutivas reutilizam o mesmo diretório.
pretrainedbool ou strTrueDetermina se o treino começa com pesos pré-treinados. Pode ser um valor booleano ou um caminho em formato de string para os pesos a carregar. pretrained=False treina com pesos inicializados aleatoriamente, mantendo a arquitetura do modelo.
cls_remapboolTrueAo ajustar o modelo em vários conjuntos de dados, copia as linhas da camada de classificação pré-treinada para o novo modelo sempre que os nomes das classes coincidem. Assim, as classes correspondentes mantêm o viés aprendido e também os pesos, se a largura da camada não mudar. Aplica-se quer o número de classes seja diferente, quer seja igual mas com uma ordem diferente.
optimizerstr'auto'Escolha do otimizador para o treino. As opções incluem SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp ou auto para escolher AdamW ou MuSGD com base no número de iterações de treino. Afeta a velocidade e a estabilidade da convergência.
seedint0Define a semente aleatória do treino, garantindo a reprodutibilidade dos resultados entre execuções com as mesmas configurações.
deterministicboolTrueForça a utilização de algoritmos determinísticos, garantindo a reprodutibilidade, mas podendo afetar o desempenho e a velocidade devido à restrição de algoritmos não determinísticos.
verboseboolTrueAtiva a saída detalhada durante o treino, mostrando barras de progresso, métricas por época e informações adicionais sobre o treino na consola.
single_clsboolFalseTrata todas as classes dos conjuntos de dados multiclasse como uma única classe durante o treino. Útil para tarefas de classificação binária ou quando o objetivo é detetar a presença de objetos em vez de os classificar.
classeslist[int]NoneEspecifica uma lista de IDs de classes a usar no treino. Útil para filtrar e focar apenas em determinadas classes durante o treino.
rectboolFalseAtiva a estratégia de preenchimento mínimo: as imagens de um lote recebem apenas o preenchimento necessário para atingir um tamanho comum, com o lado mais comprido igual a imgsz. Pode melhorar a eficiência e a velocidade, mas afetar a precisão do modelo.
multi_scalefloat0.0Varia aleatoriamente imgsz em cada lote em +/- multi_scale (por exemplo, 0.25 -> 0.75x a 1.25x), arredondando para múltiplos do stride do modelo; 0.0 desativa o treino multiescala.
cos_lrboolFalseUtiliza um programador de taxa de aprendizagem cosseno, ajustando a taxa de aprendizagem segundo uma curva cosseno ao longo das épocas. Ajuda a gerir a taxa de aprendizagem para obter uma melhor convergência.
close_mosaicint10Desativa a ampliação de dados mosaico nas últimas N épocas para estabilizar o treino antes de este terminar. Definir como 0 desativa esta funcionalidade.
resumeboolFalseRetoma o treino a partir do último ponto de controlo guardado. Carrega automaticamente os pesos do modelo, o estado do otimizador e o número da época, dando continuidade ao treino.
ampbool ou strTrueDefine a precisão do treino: True ou "fp16" usa FP16, "bf16" usa BF16 em dispositivos CUDA compatíveis e False ou "fp32" usa FP32.
quantizeint ou strNoneDefine como 8 (ou "int8") para o treino com reconhecimento de quantização INT8 (QAT), que ajusta o modelo com quantização simulada no ciclo para que os pesos tolerem a exportação INT8. Consulta Treino com reconhecimento de quantização.
fractionfloat, int ou list1.0Subconjunto do conjunto de dados, definido como proporção/contagem ou lista [train, val, test]. 1 indica a divisão completa, os números inteiros superiores a 1 são contagens de imagens e apenas a entrada de teste opcional aceita 0/0.0 para indicar nenhum. As listas de dois elementos mantêm o conjunto de teste completo.
profileboolFalseAtiva a criação de perfis de velocidade do ONNX e do TensorRT durante o treino, o que é útil para otimizar a implementação do modelo.
freezeint ou listNoneCongela as primeiras N camadas do modelo ou camadas específicas pelo índice ou pelo nome do módulo (23.cv2, sem o model. inicial), reduzindo o número de parâmetros treináveis. Útil para o ajuste fino ou a aprendizagem por transferência.
lr0float0.01Taxa de aprendizagem inicial (ou seja, SGD=1E-2, Adam=1E-3). É ignorada com o valor predefinido optimizer='auto'; especifica um otimizador explicitamente para a usar.
lrffloat0.01Taxa de aprendizagem final como fração da taxa inicial = (lr0 * lrf), usada em conjunto com os programadores para ajustar a taxa de aprendizagem ao longo do tempo.
momentumfloat0.937Fator de momento para SGD ou beta1 para os otimizadores Adam, que influencia a incorporação dos gradientes anteriores na atualização atual.
weight_decayfloat0.0005Termo de regularização L2, que penaliza pesos elevados para evitar o sobreajuste.
warmup_epochsfloat3.0Número de épocas de aquecimento da taxa de aprendizagem, durante as quais esta aumenta gradualmente de um valor baixo até à taxa inicial para estabilizar o início do treino.
warmup_momentumfloat0.8Momento inicial da fase de aquecimento, ajustado gradualmente até ao momento definido durante o período de aquecimento.
warmup_bias_lrfloat0.1Taxa de aprendizagem dos parâmetros de viés durante a fase de aquecimento, que ajuda a estabilizar o treino do modelo nas primeiras épocas. É definida automaticamente como 0.0 com o valor predefinido optimizer='auto'; especifica um otimizador explicitamente para a usar.
distill_modelstrNoneCaminho para um ponto de controlo do modelo professor (por exemplo, yolo26x.pt) para destilação de conhecimento. Quando definido, o modelo aluno é treinado com uma perda de destilação adicional, orientada pelo modelo professor congelado.
disfloat6.0Peso da perda de destilação adicionada às perdas de deteção padrão. Valores mais altos aumentam a influência da orientação das características do modelo professor.
boxfloat7.5Peso da componente de perda da caixa na função de perda, que determina a importância dada à previsão precisa das coordenadas da caixa delimitadora.
clsfloat0.5Peso da perda de classificação na função de perda total, que afeta a importância da previsão correta da classe em relação às outras componentes.
cls_pwfloat0.0Expoente para ponderar classes e lidar com o desequilíbrio entre classes usando o inverso da frequência de cada classe. 0.0 desativa a ponderação de classes; 1.0 aplica a ponderação inversa da frequência na totalidade. Os valores entre 0 e 1 aplicam uma ponderação parcial.
dflfloat1.5Peso do termo de regressão da distância da caixa: perda focal de distribuição (DFL) quando a cabeça de deteção usa reg_max > 1; perda L1 nas distâncias normalizadas das caixas para o YOLO26 sem DFL (reg_max: 1).
posefloat12.0Peso da perda de pose nos modelos treinados para estimativa de pose, que determina a importância dada à previsão precisa dos pontos-chave da pose.
kobjfloat1.0Peso da perda de objetividade dos pontos-chave nos modelos de estimativa de pose, que equilibra a confiança da deteção com a precisão da pose.
rlefloat1.0Peso da perda de estimativa da verosimilhança logarítmica residual nos modelos de estimativa de pose, que afeta a precisão da localização dos pontos-chave.
anglefloat1.0Peso da perda angular nos modelos obb, que afeta a precisão das previsões dos ângulos das caixas delimitadoras orientadas.
dlogfloat1.0Peso da perda logarítmica invariante à escala (SILog) nos modelos de estimativa de profundidade, o principal termo que determina a precisão da profundidade.
dgradfloat0.5Peso da perda de gradiente nos modelos de estimativa de profundidade, que penaliza erros nas arestas de profundidade e incentiva limites de superfície mais nítidos.
dlamfloat1.0Fator de foco da variância da perda SILog nos modelos de estimativa de profundidade. 1.0 torna a perda totalmente invariante à escala, enquanto 0.0 a reduz a um RMSE logarítmico simples.
nbsint64Tamanho nominal do lote para normalização da perda.
overlap_maskboolTrueDetermina se as máscaras dos objetos devem ser combinadas numa única máscara para o treino ou mantidas separadas para cada objeto. Em caso de sobreposição, ao combinar, a máscara mais pequena é sobreposta à maior.
mask_ratioint4Fator de redução da resolução das máscaras de segmentação, que afeta a resolução das máscaras usadas durante o treino. Não altera a resolução das máscaras previstas.
dropoutfloat0.0Taxa de dropout para regularização em tarefas de classificação, que evita o sobreajuste ao omitir unidades aleatoriamente durante o treino.
valboolTrueAtiva a validação durante o treino, permitindo avaliar periodicamente o desempenho do modelo num conjunto de dados separado.
nmsbool, opcionalNoneSeleciona a cabeça de inferência usada para a validação de cada época, a seleção de pontos de controlo e a paragem antecipada. None ou True usa a abordagem um-para-muitos com NMS; False usa a cabeça sem NMS, quando disponível. Ambas as cabeças mantêm as respetivas perdas de treino.
plotsboolTrueGera e guarda gráficos das métricas de treino e validação, bem como exemplos de previsões, proporcionando uma visão visual do desempenho do modelo e da evolução da aprendizagem.
compilebool ou strFalseAtiva a compilação de grafos torch.compile do PyTorch 2.x com backend='inductor'. Aceita True → "default", False → desativa, ou um modo em formato de string, como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Se não for suportado, recorre à execução ansiosa e apresenta um aviso.
channels_lastboolNoneUsa o formato de memória channels_last (NHWC) para convoluções durante o treino. None ativa-o automaticamente em CUDA com PyTorch 1.11 ou posterior, exceto no Windows, onde foi medido um desempenho mais lento. False desativa-o e True solicita-o explicitamente. O treino em CPU ou MPS mantém sempre o formato NCHW (True é ignorado com um aviso).
max_detint300Número máximo de deteções por imagem durante a validação do treino. Para detect, segment, pose e OBB, o valor predefinido de 300 aumenta para a maior contagem de objetos anotados no treino/validação apenas quando essa contagem excede 300. Os outros valores permanecem fixos; exceder o limite gera um aviso.
Nota sobre as configurações do tamanho do lote

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

  • Tamanho fixo do lote: Especifica o número de imagens por lote com um número inteiro (por exemplo, batch=16).
  • Modo automático (60% da memória da GPU): Usa batch=-1 para ajustar automaticamente a utilização da memória CUDA para aproximadamente 60%.
  • Modo automático com fração de utilização: Define uma fração (por exemplo, batch=0.70) para ajustar com base numa utilização especificada da memória da GPU.
  • Nenhum tamanho adequado encontrado: Se nenhum tamanho de lote candidato gerar um perfil utilizável, o AutoBatch apresenta um RuntimeError claro em vez de recorrer silenciosamente a um valor predefinido não relacionado.

Guia de treino

Configurações de previsão#

As configurações de previsão dos modelos YOLO incluem hiperparâmetros e configurações que influenciam o desempenho, a velocidade e a precisão durante a inferência. As principais configurações incluem o limiar de confiança, o limiar de supressão não máxima (NMS) e o número de classes. O tamanho e o formato dos dados de entrada, bem como funcionalidades adicionais, como máscaras, também afetam as previsões. Ajustar estas configurações é essencial para obter o melhor desempenho.

Argumentos de inferência:

ArgumentoTipoPadrãoDescrição
sourcestr ou int ou NoneNoneEspecifica a origem dos dados para a inferência. Pode ser o caminho de uma imagem, um ficheiro de vídeo, um diretório, um URL ou o ID de um dispositivo para transmissões em direto. Se não for especificada, é registado um aviso e o modelo recorre aos recursos de demonstração integrados (ultralytics/assets ou um URL de demonstração para OBB). Suporta uma grande variedade de formatos e origens, permitindo uma aplicação flexível em diferentes tipos de entrada.
conffloat0.25Define o limiar mínimo de confiança para as deteções. Os objetos detetados com confiança abaixo deste limiar são descartados. Ajustar este valor pode ajudar a reduzir os falsos positivos.
ioufloat0.7Limiar de interseção sobre união (IoU) para a supressão não máxima (NMS). Valores mais baixos resultam em menos deteções, eliminando caixas sobrepostas, o que é útil para reduzir duplicados.
imgszint ou tuple640Alvo do letterbox. Um número inteiro define um N×N quadrado; uma tupla define (height, width). Com rect=True, o tensor real pode ser menor do que este alvo devido ao preenchimento em retângulo mínimo. Usa rect=False para um tamanho fixo. Consulta Formato fixo vs. retângulo mínimo.
rectboolTrueSe True, usa preenchimento em retângulo mínimo quando possível (lotes com o mesmo formato e backend compatível). Se False, preenche sempre até ao tamanho completo imgsz. Consulta Formato fixo vs. retângulo mínimo.
quantizeint ou strNonePrecisão da inferência: 16/"fp16" e 32/"fp32"/não definido selecionam o cálculo FP16 ou FP32 para modelos PyTorch e TorchScript; os outros formatos usam a precisão selecionada pelo artefacto e pelo ambiente de execução. Com 16, o OpenVINO continua a arredondar a entrada para FP16 no cliente e a alargá-la novamente para FP32, sem alterar a precisão usada nos cálculos pelo ambiente de execução. A quantização INT8/PTQ é configurada durante a exportação e, em seguida, usada ao carregar o modelo exportado. Substitui a flag obsoleta half.
devicestrNoneEspecifica o dispositivo para a inferência (por exemplo, cpu, cuda:0, 0, npu ou npu:0). Permite selecionar entre CPU, uma GPU específica, uma NPU Huawei Ascend ou outros dispositivos de computação para executar o modelo.
dnnboolFalseSe True, usa o módulo DNN do OpenCV em vez do ONNX Runtime para inferência com modelos ONNX.
datastrNoneCaminho para um YAML de conjunto de dados (por exemplo, coco8.yaml), lido apenas para obter names e somente quando o modelo carregado não tem nomes de classe próprios: uma exportação de terceiros ou uma exportação da Ultralytics separada dos metadados que a acompanham. Caso contrário, esse modelo informa class0, class1 e assim por diante.
batchint1Especifica o tamanho do lote para inferência (funciona apenas quando a origem é um diretório, um arquivo de vídeo ou um arquivo .txt). Um tamanho de lote maior pode aumentar a taxa de processamento e reduzir o tempo total necessário para a inferência.
max_detint300Número máximo de detecções permitido 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_strideint1Intervalo entre quadros para entradas de vídeo. Permite ignorar quadros em vídeos para acelerar o processamento, à custa da resolução temporal. O valor 1 processa todos os quadros; valores maiores ignoram quadros.
stream_bufferboolFalseDetermina se os quadros recebidos em fluxos de vídeo devem ser enfileirados. Se False, os quadros antigos são descartados para dar lugar aos novos (otimizado para aplicações em tempo real). Se True, os quadros novos são enfileirados em um buffer, garantindo que nenhum quadro seja ignorado, mas causando latência se o FPS da inferência for inferior ao FPS do fluxo.
visualizeboolFalseSalva um mapa de calor de ativação de classe junto a cada predição, mostrando quais pixels elevaram as pontuações da classe prevista. Respeita conf e classes, portanto classes=[0] mapeia apenas essa classe. Disponível somente para modelos PyTorch da Ultralytics.
augmentboolFalseAtiva o aumento em tempo de teste (TTA) para as predições, podendo melhorar a robustez da detecção à custa da velocidade de inferência. Disponível somente para modelos PyTorch da Ultralytics.
agnostic_nmsboolFalseAtiva a Supressão Não Máxima (NMS) independente de classe, suprimindo caixas sobrepostas com pontuações menores entre classes diferentes, em vez de apenas dentro da mesma classe. Útil em cenários de detecção multiclasse nos quais a sobreposição entre classes é comum. Com a inferência sem NMS (nms=False no YOLO26 ou YOLOv10), isso apenas impede que a mesma detecção apareça com vários rótulos de classe (duplicatas com IoU=1.0) e não aplica supressão baseada em limiar de IoU entre caixas distintas.
classeslist[int]NoneFiltra as predições para um conjunto de IDs de classe. Somente as detecções pertencentes às classes especificadas serão retornadas. Útil para priorizar objetos relevantes em tarefas de detecção multiclasse.
retina_masksboolFalseRetorna máscaras de segmentação em alta resolução. Quando ativado, as máscaras retornadas (masks.data) correspondem ao tamanho original da imagem. Quando desativado, elas têm o tamanho da imagem usado durante a inferência.
embedlist[int]NoneEspecifica as camadas das quais extrair vetores de características ou incorporações. Usa model.embed(source) para incorporações da penúltima camada ou model.predict(source, embed=[layer]) para selecionar camadas específicas. Útil para tarefas posteriores, como agrupamento ou busca por similaridade. Disponível somente para modelos PyTorch da Ultralytics.
projectstrNoneNome do diretório do projeto onde as saídas das predições são salvas quando save está ativado.
namestrNoneNome da execução de predição. Usado para criar um subdiretório dentro da pasta do projeto, onde as saídas das predições são armazenadas quando save está ativado.
streamboolFalseAtiva o processamento com uso eficiente de memória para vídeos longos ou muitas imagens, retornando um gerador de objetos Results em vez de carregar todos os quadros na memória de uma só vez.
verboseboolTrueControla se os registros detalhados da inferência são exibidos no terminal, fornecendo informações em tempo real sobre o processo de predição.
compilebool ou strFalseAtiva a compilação de grafos torch.compile do PyTorch 2.x com backend='inductor'. Aceita True → "default", False → desativa, ou um modo em formato de string, como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Se não for suportado, recorre à execução ansiosa e apresenta um aviso.
channels_lastboolNoneUsa o formato de memória channels_last (NHWC) para inferência nativa com PyTorch. None ativa-o automaticamente em CPUs x86 com Linux e Windows compatíveis com oneDNN e PyTorch 1.13 ou mais recente; False desativa-o; e True solicita-o em dispositivos CPU x86 ou CUDA compatíveis. ARM64, MPS, versões mais antigas do PyTorch, CPUs sem oneDNN e formatos exportados, como TensorRT e ONNX, permanecem inalterados.
nmsbool, opcionalNoneExecuta inferência de um para muitos com NMS por padrão (None ou True). Define False para usar a cabeça de um para um sem NMS quando disponível. Consulte o guia de detecção de ponta a ponta para obter detalhes.

Argumentos de visualização:

ArgumentoTipoPadrãoDescrição
showboolFalseSe True, exibe as imagens ou os vídeos anotados em uma janela. Útil para obter feedback visual imediato durante o desenvolvimento ou os testes.
saveboolFalse or TrueAtiva o salvamento das imagens ou dos vídeos anotados em arquivos. Útil para documentação, análises adicionais ou compartilhamento de resultados. O padrão é True ao usar a CLI e False ao usar Python.
save_framesboolFalseAo processar vídeos, salva os quadros individuais como imagens. Útil para extrair quadros específicos ou fazer uma análise detalhada quadro a quadro.
save_txtboolFalseSalva 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_confboolFalseInclui pontuações de confiança nos arquivos de texto salvos. Aumenta o nível de detalhe disponível para pós-processamento e análise.
save_cropboolFalseSalva imagens recortadas das detecções. Útil para aumento de dados, análise ou criação de conjuntos de dados específicos para determinados objetos.
show_labelsboolTrueExibe os rótulos de cada detecção na saída visual. Permite identificar imediatamente os objetos detectados.
show_confboolTrueExibe a pontuação de confiança de cada detecção junto ao rótulo. Mostra o grau de certeza do modelo em cada detecção.
show_boxesboolTrueDesenha caixas delimitadoras ao redor dos objetos detectados. Essencial para identificar visualmente e localizar objetos em imagens ou quadros de vídeo.
line_widthint or NoneNoneEspecifica a espessura das linhas das caixas delimitadoras. Se None, a espessura da linha é ajustada automaticamente com base no tamanho da imagem. Permite personalizar a visualização para melhorar a clareza.

Guia de predição

Configurações de validação#

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

ArgumentoTipoPadrãoDescrição
datastrNoneEspecifica o caminho para o YAML do conjunto de dados (por exemplo, coco8.yaml), que deve incluir o caminho para os dados de validação. Para classificação, use um diretório de conjunto de dados ou o nome de um conjunto de dados integrado (por exemplo, imagenet10).
imgszint640Define o tamanho das imagens de entrada. Todas as imagens são redimensionadas para essa dimensão antes do processamento. Tamanhos maiores podem melhorar a precisão para objetos pequenos, mas aumentam o tempo de computação.
batchint16Define o número de imagens por lote. Valores maiores aproveitam a memória da GPU com mais eficiência, mas exigem mais VRAM. Ajuste o valor de acordo com os recursos de hardware disponíveis.
save_jsonboolFalseSe True, salva os resultados em um arquivo JSON para análise adicional, integração com outras ferramentas ou envio a servidores de avaliação, como o COCO. Em conjuntos de dados de detecção, também avalia as predições com faster-coco-eval e informa o mAP para objetos pequenos, médios e grandes, registrado durante o treinamento como metrics/mAP_small(B), metrics/mAP_medium(B) e metrics/mAP_large(B) em results.csv.
conffloat0.001Define o limiar mínimo de confiança para as detecções. Valores menores aumentam a revocação, mas podem gerar mais falsos positivos. As curvas precisão-revocação, o mAP e as matrizes de confusão da detecção usam esse valor; um conf mais alto, como 0.25, produz uma matriz mais próxima da saída da predição, mas pode reduzir o mAP. A precisão e a revocação resumidas usam a confiança de F1 máximo e, por isso, podem diferir dos valores derivados de confusion_matrix.png. O padrão é 0.01 para validação OBB, a fim de reduzir o uso de memória.
ioufloat0.7Define o limiar de Interseção sobre União para a Supressão Não Máxima. Controla a eliminação de detecções duplicadas.
max_detint300Limita o número máximo de detecções por imagem. Para detect, segment, pose e OBB, quando o valor é 300, ele é aumentado para a maior quantidade de objetos rotulados na divisão validada se uma imagem ultrapassar esse limite, com um aviso; qualquer outro valor é mantido, com um aviso de que a revocação pode ser limitada quando uma imagem ultrapassar esse valor.
quantizeint ou strNonePrecisão da validação: 16/"fp16" e 32/"fp32"/não definido selecionam o cálculo FP16 ou FP32 para modelos PyTorch e TorchScript; outros formatos usam a precisão selecionada pelo artefato e pelo ambiente de execução. Com 16, o OpenVINO ainda arredonda a entrada para FP16 no cliente e a amplia de volta para FP32, sem alterar a precisão usada pelo ambiente de execução. A quantização INT8/PTQ é configurada durante a exportação e, em seguida, usada na validação do modelo exportado. Substitui a flag obsoleta half.
devicestrNoneEspecifica o dispositivo para validação (cpu, cuda:0, npu, npu:0 etc.). Quando None, seleciona automaticamente o melhor dispositivo disponível. É possível especificar vários dispositivos CUDA, separando-os por vírgulas.
dnnboolFalseSe True, usa o módulo DNN do OpenCV para inferência com modelos ONNX, como alternativa aos métodos de inferência do PyTorch.
plotsboolTrueQuando definido como True, gera e salva gráficos de predições em comparação com a verdade fundamental, matrizes de confusão e curvas PR para a avaliação visual do desempenho do modelo.
classeslist[int]NoneEspecifica uma lista de IDs de classe a avaliar. Útil para filtrar e focar apenas em determinadas classes durante a avaliação.
rectboolTrueSe True, usa inferência retangular para agrupar imagens em lotes, reduzindo o preenchimento e potencialmente aumentando a velocidade e a eficiência ao processar as imagens na proporção original. Ignorado na validação depth, que ajusta todas as imagens a um quadrado fixo de imgsz em vez de preencher.
splitstr'val'Determina a divisão do conjunto de dados a usar na validação (val, test ou train). Permite escolher com flexibilidade o segmento de dados para avaliar o desempenho.
fractionfloat, int ou list1.0Subconjunto da divisão validada. Com uma lista [train, val, test], aplica-se a entrada correspondente a split (1 = divisão completa; números inteiros acima de 1 = quantidade de imagens; entradas omitidas = divisão completa). Um valor escalar aplica-se somente a split=train; val e test usam então a divisão completa.
projectstrNoneNome do diretório do projeto onde as saídas da validação são salvas. Ajuda a organizar os resultados de diferentes experimentos ou modelos.
namestrNoneNome da execução de validação. Usado para criar um subdiretório dentro da pasta do projeto, onde os registros e as saídas da validação são armazenados.
verboseboolTrueSe True, exibe informações detalhadas durante o processo de validação, incluindo métricas por classe, progresso dos lotes e informações adicionais de depuração.
save_txtboolFalseSe True, salva os resultados da detecção em arquivos de texto, um arquivo por imagem, para análise adicional, pós-processamento personalizado ou integração com outros sistemas.
save_confboolFalseSe True, inclui valores de confiança nos arquivos de texto salvos quando save_txt está ativado, fornecendo uma saída mais detalhada para análise e filtragem.
workersint8Número de threads de trabalho para carregar dados. Valores maiores podem acelerar o pré-processamento dos dados, mas podem aumentar o uso da CPU. Definir como 0 usa a thread principal, o que pode ser mais estável em alguns ambientes.
augmentboolFalseAtiva o aumento em tempo de teste (TTA) durante a validação, podendo melhorar a precisão da detecção à custa da velocidade de inferência, executando a inferência em versões transformadas da entrada. Disponível somente para modelos PyTorch da Ultralytics.
agnostic_nmsboolFalseAtiva a Supressão Não Máxima independente de classe, suprimindo caixas sobrepostas com pontuações menores, independentemente da classe prevista. Útil para aplicações focadas em instâncias. Com a inferência sem NMS (nms=False no YOLO26 ou YOLOv10), isso apenas impede que a mesma detecção apareça com vários rótulos de classe (duplicatas com IoU=1.0) e não aplica supressão baseada em limiar de IoU entre caixas distintas.
single_clsboolFalseTrata todas as classes como uma única classe durante a validação. Útil para avaliar o desempenho do modelo em tarefas de detecção binária ou quando as distinções entre classes não são importantes.
visualizeboolFalseVisualiza as verdades fundamentais, os verdadeiros positivos, os falsos positivos e os falsos negativos de cada imagem. Útil para depuração e interpretação do modelo.
show_labelsboolTrueExibe os rótulos de classe nas visualizações de validação quando visualize=True. Define como False para facilitar a visualização das correspondências e dos erros.
show_confboolTrueExibe as pontuações de confiança nas visualizações de validação quando visualize=True. Define como False para facilitar a visualização das correspondências e dos erros.
compilebool ou strFalseAtiva a compilação de grafos torch.compile do PyTorch 2.x com backend='inductor'. Aceita True → "default", False → desativa, ou um modo em formato de string, como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Se não for suportado, recorre à execução ansiosa e apresenta um aviso.
channels_lastboolNoneUsa o formato de memória channels_last (NHWC) para validação nativa com PyTorch. None ativa-o automaticamente em CPUs x86 com Linux e Windows compatíveis com oneDNN e PyTorch 1.13 ou mais recente; False desativa-o; e True solicita-o em dispositivos CPU x86 ou CUDA compatíveis. ARM64, MPS, versões mais antigas do PyTorch, CPUs sem oneDNN e formatos exportados permanecem inalterados; durante o treinamento, a validação mantém o layout do modelo de treinamento.
nmsbool, opcionalNoneExecuta inferência de um para muitos com NMS por padrão (None ou True). Define False para usar a cabeça de um para um sem NMS quando disponível. Consulte o guia de detecção de ponta a ponta para obter detalhes.

O ajuste cuidadoso e a experimentação são essenciais para garantir o desempenho ideal e detectar e evitar o sobreajuste.

Guia de validação

Configurações de exportação#

As configurações de exportação dos modelos YOLO incluem opções para salvar ou exportar o modelo para uso em diferentes ambientes. Essas configurações afetam o desempenho, o tamanho e a compatibilidade. Entre as principais configurações estão o formato do 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 limitações do ambiente de destino também afetam o processo de exportação.

ArgumentoTipoPadrãoDescrição
formatstr'torchscript'Formato de destino do modelo exportado, como 'onnx', 'torchscript', 'engine' (TensorRT) ou outros. Cada formato permite a compatibilidade com diferentes ambientes de implantação.
namestrNoneNome do hardware de destino para os formatos que exigem um: arquitetura Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; o padrão é 'hailo8l'), chip Rockchip RKNN (o padrão é 'rk3588'), SoC Huawei Ascend (um --soc_version do CANN; o padrão é 'Ascend310B4'), destino Qualcomm QNN HTP (o padrão é '73') ou dispositivo AMD Xilinx Versal AI Edge Series Gen 2 (o padrão é 've2-xc2ve3858', o kit de avaliação VEK385). Diferente do par de nomes de execução project/name usado por outros modos.
imgszint ou tuple640Tamanho de imagem desejado para a entrada do modelo. Pode ser um número inteiro para imagens quadradas (por exemplo, 640 para 640×640) ou uma tupla (height, width) para dimensões específicas. Se não for informado, a exportação reutiliza o tamanho de treinamento registrado no ponto de verificação carregado: os pontos de verificação oficiais do YOLO26 registram 768 para detect, 224 para classify, 1024 para OBB e 640 para as outras tarefas, enquanto um ajuste fino registra o imgsz usado no treinamento. Um modelo criado a partir de um YAML não tem tamanho de treinamento registrado e usa 640.
optimizeboolFalseAtiva uma otimização mais avançada do compilador para DEEPX, reduzindo a latência da inferência e aumentando o tempo de compilação.
quantizeint ou strNonePrecisão da quantização: 16 (FP16, reduz o tamanho do modelo e pode acelerar a inferência em hardware compatível) ou 8 (INT8/PTQ, comprime ainda mais o modelo com perda mínima de precisão, principalmente para dispositivos de borda; requer calibração data/fraction); 32/não definido corresponde a FP32. Um ponto de verificação treinado com quantize=8 sempre é exportado como INT8: onnx e engine exportam usando os intervalos que contêm, sem calibração, e outros formatos ou precisões são rejeitados. 'w8a8' e 'w16a16' são aliases de 8 e 16; as precisões mistas 'w8a16' (pesos INT8 com ativações de 16 bits: CoreML, LiteRT, QNN) e 'w8a32' (INT8 dinâmico: LiteRT) são aceitas somente por esses formatos. Substitui as flags obsoletas half/int8 (half=True → 16, int8=True → 8, ainda aceitas com um aviso de descontinuação). Somente são permitidas as precisões compatíveis com o formato de destino (veja abaixo).
dynamicboolFalsePermite tamanhos de entrada dinâmicos nas exportações TorchScript, ONNX, OpenVINO, TensorRT, CoreML e MNN, aumentando a flexibilidade para lidar com dimensões de imagem variáveis.
simplifyboolTrueSimplifica o grafo ONNX intermediário com onnxslim nas exportações que o geram (consulte Formatos de exportação), podendo melhorar o desempenho e a compatibilidade com mecanismos de inferência.
opsetintNoneEspecifica a versão do opset ONNX para exportações que geram um grafo ONNX (consulte Formatos de exportação), garantindo compatibilidade com diferentes analisadores e ambientes de execução ONNX. Se não for definida, usa a versão mais recente compatível.
workspacefloat ou NoneNoneDefine o tamanho máximo do espaço de trabalho, em GiB, para otimizações TensorRT, equilibrando o uso de memória e o desempenho. Use None para que o TensorRT aloque automaticamente até o máximo do dispositivo.
nmsbool, opcionalNoneNone exporta predições brutas de um para muitos para NMS externo; True incorpora NMS quando compatível; False seleciona a cabeça sem NMS quando disponível. A NMS incorporada do CoreML é compatível com detect, segment e pose com formatos estáticos. Consulte o guia de detecção de ponta a ponta.
conffloatNoneLimiar de confiança usado sempre que a NMS é gerada durante a exportação: exportações nms=True; exportações detect da Hailo que não são de ponta a ponta; e exportações detect, pose e segment do IMX, que definem internamente nms=True. O padrão, se não for definido, é 0.25.
ioufloat0.7Limiar de IoU usado sempre que a NMS é gerada durante a exportação: exportações nms=True; exportações detect da Hailo que não são de ponta a ponta; e exportações detect, pose e segment do IMX, que definem internamente nms=True.
max_detint300Número máximo de detecções mantidas na saída do modelo exportado. Aplica-se às exportações nms=True em todos os formatos, exceto à detecção CoreML, cujo pipeline nativo de NMS não tem limite de detecções, além das exportações de detecção de ponta a ponta sem NMS (YOLO26, YOLOv10, limitadas ao número de âncoras disponíveis) e das exportações detect, pose e segment do IMX.
agnostic_nmsboolFalseAtiva a NMS independente de classe sempre que ela é gerada durante a exportação pelo pipeline padrão nms=True, incluindo a própria etapa de NMS do CoreML, suprimindo caixas sobrepostas com pontuações menores entre classes diferentes, em vez de apenas dentro da mesma classe. Não é aplicada às configurações de NMS geradas pela própria Hailo ou pelo IMX, que não têm uma opção independente de classe e permanecem cientes das classes, independentemente dessa flag. Também é incorporada às exportações de ponta a ponta sem NMS (YOLO26, YOLOv10), nas quais apenas impede que a mesma detecção apareça com vários rótulos de classe (duplicatas com IoU=1.0), sem aplicar supressão baseada em limiar de IoU entre caixas distintas.
batchint1Especifica o tamanho do lote de inferência do modelo exportado ou o número máximo de imagens que o modelo exportado processará simultaneamente no modo predict. Os formatos sem batch nos argumentos de exportação (Edge TPU, IMX500, DEEPX, Hailo, AMD Xilinx) exportam lote 1 e rejeitam outros valores.
devicestrNoneEspecifica o dispositivo para exportação: GPU (device=0), CPU (device=cpu), MPS para Apple silicon (device=mps), NPU Huawei Ascend (device=npu ou device=npu:0) ou DLA para NVIDIA Jetson (device=dla:0 ou device=dla:1). As exportações TensorRT usam GPU automaticamente, mas o TensorRT 11.0 não é compatível com DLA.
verboseboolFalseEleva o nível de severidade do registro do compilador TensorRT para VERBOSE durante a exportação format='engine'. Os outros formatos de exportação ignoram essa opção.
datastrNoneCaminho para o YAML do conjunto de dados, essencial para a calibração da quantização INT8; para classificação, use um diretório de conjunto de dados ou o nome de um conjunto de dados integrado. Se não for especificado com INT8 ativado, a Ultralytics seleciona um conjunto de dados de calibração específico da tarefa quando necessário ou usa o conjunto de dados padrão para a tarefa do modelo. Um ponto de verificação treinado com quantize=8 contém seus próprios intervalos INT8 e não precisa de dados de calibração.
splitstr'val'Divisão do conjunto de dados ('train', 'val' ou 'test') usada para criar o carregador de dados de calibração da quantização INT8 a partir de data.
fractionfloat, int ou list1.0Subconjunto do conjunto de dados usado para calibração INT8: uma proporção, uma quantidade de imagens ou valores [train, val, test]. 1 significa a divisão completa; números inteiros acima de 1 indicam a quantidade de imagens; e somente a entrada opcional de teste aceita 0/0.0 para indicar nenhum. Listas de dois itens mantêm test completo.

Uma configuração cuidadosa garante que o modelo exportado seja otimizado para seu caso de uso e funcione de forma eficaz no ambiente de destino.

Guia de exportação

Configurações de soluções#

As configurações do Ultralytics Solutions oferecem flexibilidade para personalizar modelos para tarefas como contagem de objetos, criação de mapas de calor, acompanhamento de exercícios, análise de dados, rastreamento de zonas, gerenciamento de filas e contagem por região. Essas opções permitem fazer ajustes facilmente para obter resultados precisos e úteis, adaptados a necessidades específicas.

ArgumentoTipoPadrãoDescrição
modelstrNoneCaminho para um arquivo de modelo Ultralytics YOLO.
regionlist ou dictNonePontos que definem a região de interesse, seja como uma lista de tuplas (x, y) ou como um dicionário que associa nomes de regiões a listas de pontos para várias regiões (somente RegionCounter). Quando None, as soluções que exigem uma região usam uma região padrão predefinida.
show_inboolTrueFlag que controla se as contagens de entrada são exibidas no fluxo de vídeo.
show_outboolTrueFlag que controla se as contagens de saída são exibidas no fluxo de vídeo.
analytics_typestr'line'Tipo de gráfico, por exemplo, line, bar, area ou pie.
colormapintcv2.COLORMAP_DEEPGREENMapa de cores a usar no mapa de calor.
line_widthint2Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução.
verboseboolTrueAtiva o registro por quadro da solução, com o formato da entrada, as contagens por classe e a velocidade de processamento. A chamada de rastreamento em si é sempre silenciosa.
json_filestrNoneCaminho para o arquivo JSON que contém todos os dados de coordenadas das vagas de estacionamento.
up_anglefloat145.0Limiar de ângulo para a pose de 'subida'.
kptslist[int][6, 8, 10]Lista de três índices de pontos-chave usados para monitorar exercícios. Esses pontos-chave correspondem a articulações ou partes do corpo, como ombros, cotovelos e pulsos, em exercícios como flexões, barras, agachamentos e exercícios abdominais.
down_anglefloat90.0Limiar de ângulo para a pose de 'descida'.
blur_ratiofloat0.5Ajusta a percentagem da intensidade do desfoque, com valores no intervalo 0.1 - 1.0.
crop_dirstr'cropped-detections'Nome do diretório para armazenar deteções recortadas.
recordsint5Número total de deteções necessário para acionar um e-mail com o alarme de segurança.
vision_pointtuple[int, int](20, 20)O ponto onde a visão irá acompanhar objetos e desenhar trajetórias com a solução VisionEye.
sourcestrNoneCaminho para a origem de entrada (vídeo, RTSP, etc.). Só pode ser usado com a interface de linha de comandos (CLI) de Solutions.
figsizetuple[float, float](12.8, 7.2)Tamanho da figura em polegadas para gráficos Analytics; (12.8, 7.2) renderiza um fotograma de 1280×720.
fpsfloat30.0Fotogramas por segundo usados nos cálculos de velocidade.
max_histint5Número máximo de pontos históricos a acompanhar por objeto para calcular a velocidade/direção.
meter_per_pixelfloat0.05Fator de escala usado para converter a distância em píxeis em unidades do mundo real.
max_speedint120Velocidade máxima em km/h; as velocidades estimadas superiores são limitadas a este valor.
datastr'images'Caminho para o diretório de imagens usado na pesquisa por semelhança.
imgszint640Tamanho da imagem de entrada para inferência do modelo.

Guia de Solutions

Definições de aumento de dados#

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 treino, o que ajuda o modelo a generalizar melhor para dados que ainda não viu. A tabela seguinte descreve a finalidade e o efeito de cada argumento de aumento de dados:

ArgumentoTipoPadrãoTarefas suportadasIntervaloDescrição
hsv_hfloat0.015detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Ajusta o matiz da imagem numa fração da roda das cores, introduzindo variabilidade cromática. Ajuda o modelo a generalizar em diferentes condições de iluminação. Para classify, isto aplica-se apenas quando auto_augment=None.
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Altera a saturação da imagem numa determinada fração, afetando a intensidade das cores. É útil para simular diferentes condições ambientais. Para classify, isto aplica-se apenas quando auto_augment=None.
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Modifica o valor (brilho) da imagem numa determinada fração, ajudando o modelo a ter um bom desempenho em várias condições de iluminação. Para classify, isto aplica-se apenas quando auto_augment=None.
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180Roda a imagem aleatoriamente dentro do intervalo de graus especificado, melhorando a capacidade do modelo de reconhecer objetos em várias orientações.
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0Desloca a imagem na horizontal e na vertical numa fração do tamanho da imagem, ajudando o modelo a aprender a detetar objetos parcialmente visíveis.
scalefloat | tuple0.5detect, segment, semantic, depth, classify, pose, obb0 - 1 ou uma tupla (min, max) explícita (não para classify)Redimensiona a imagem por um fator de escala, simulando objetos a diferentes distâncias da câmara.
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180Aplica uma deformação de cisalhamento à imagem segundo um grau especificado, imitando o efeito de observar objetos de diferentes ângulos.
perspectivefloat0detect, segment, semantic, depth, pose, obb0.0 - 0.001Aplica uma transformação de perspetiva aleatória à imagem, melhorando a capacidade do modelo de compreender objetos no espaço 3D.
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Inverte a imagem de cabeça para baixo com a probabilidade especificada, aumentando a variabilidade dos dados sem afetar as características do objeto.
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Inverte a imagem da esquerda para a direita com a probabilidade especificada, o que é útil para aprender objetos simétricos e aumentar a diversidade do conjunto de dados.
bgrfloat0detect, segment, semantic, depth, pose, obb0.0 - 1.0Inverte os canais da imagem de RGB para BGR com a probabilidade especificada, o que é útil para aumentar a robustez a uma ordem incorreta dos canais.
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.0Combina quatro imagens de treino numa só, simulando diferentes composições de cenas e interações entre objetos. É altamente eficaz para compreender cenas complexas.
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.0Combina duas imagens e as respetivas etiquetas, criando uma imagem composta. Melhora a capacidade de generalização do modelo ao introduzir ruído nas etiquetas e variabilidade visual.
cutmixfloat0detect, segment, semantic, pose, obb0.0 - 1.0Combina partes de duas imagens, criando uma mistura parcial e mantendo regiões distintas. Melhora a robustez do modelo ao criar cenários de oclusão.
copy_pastefloat0segment, semantic, obb0.0 - 1.0Fração de objetos elegíveis colados; flip espelha-os dentro da imagem, enquanto mixup também usa o valor como probabilidade de aplicação entre imagens.
copy_paste_modestrflipsegment, semantic, obb-Especifica a estratégia copy-paste a utilizar. As opções incluem 'flip' e 'mixup'.
auto_augmentstrrandaugmentclassify-Aplica uma política de aumento de dados predefinida ('randaugment', 'autoaugment' ou 'augmix') para melhorar o desempenho do modelo através da diversidade visual.
erasingfloat0.4classify0.0 - 1.0Apaga aleatoriamente regiões da imagem durante o treino para incentivar o modelo a focar-se em características menos óbvias.
augmentationslistNonedetect, segment, semantic, depth, pose, obb-Transformações Albumentations personalizadas para aumento de dados avançado (apenas API Python). Aceita uma lista de objetos de transformação para necessidades especializadas de aumento de dados.

Ajusta estas definições de acordo com os requisitos do conjunto de dados e da tarefa. Experimentar valores diferentes pode ajudar a encontrar a estratégia de aumento de dados ideal para obter o melhor desempenho do modelo.

Guia de aumento de dados

Definições de registo, pontos de controlo e gráficos#

O registo, os pontos de controlo, os gráficos e a gestão de ficheiros são importantes durante o treino de um modelo YOLO:

  • Registo: acompanha o progresso do modelo e diagnostica problemas com bibliotecas como TensorBoard ou escrevendo num ficheiro.
  • Pontos de controlo: guarda o modelo em intervalos regulares para retomar o treino ou experimentar configurações diferentes.
  • Gráficos: visualiza o desempenho e o progresso do treino com bibliotecas como Matplotlib ou TensorBoard.
  • Gestão de ficheiros: organiza os ficheiros gerados durante o treino, como pontos de controlo, ficheiros de registo 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.

ArgumentoPadrãoDescrição
projectNoneEspecifica o diretório raiz para guardar as execuções de treino. Se não for especificado, as execuções são guardadas em runs/<task>. Cada execução é guardada num subdiretório separado.
nameNoneDefine o nome da experiência. Se não for especificado, YOLO usa o nome do modo e incrementa-o a cada execução (por exemplo, train, train-2) para evitar substituir ficheiros.
exist_okFalseDetermina se deve substituir um diretório de experiência existente. True permite a substituição; False impede-a.
plotsTrueControla a geração e gravação de gráficos de treino e validação. Define como True para criar gráficos como curvas de perda, curvas de precisão-revocação e previsões de amostras para acompanhar visualmente o desempenho.
saveTrueAtiva a gravação de pontos de controlo do treino e dos pesos finais do modelo. Define como True para guardar periodicamente os estados do modelo, permitindo retomar o treino ou implementar o modelo.

Ficheiro de configuração personalizado#

Carrega um ficheiro YAML guardado para reutilizar um conjunto completo de argumentos sem os passar em linha. O argumento cfg substitui os valores de default.yaml, enquanto os argumentos adicionais passados em conjunto continuam a ter prioridade.

ArgumentoPadrãoDescrição
cfgNoneCaminho para um ficheiro YAML cujos valores substituem as entradas de default.yaml. Consulta Substituir o ficheiro de configuração predefinido para ver um exemplo prático de CLI.

Perguntas frequentes#

  • Melhora o desempenho ajustando hiperparâmetros como o tamanho do lote, a taxa de aprendizagem, o momentum e a regularização dos pesos. Ajusta as definições de aumento de dados, escolhe o otimizador adequado e utiliza técnicas como a paragem antecipada ou a precisão mista. Para mais detalhes, consulta o Guia de treino.

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

    • Tamanho do lote (batch): lotes maiores podem estabilizar o treino, mas exigem mais memória.
    • Taxa de aprendizagem (lr0): taxas mais baixas permitem ajustes mais precisos, mas tornam a convergência mais lenta.
    • Momentum (momentum): acelera os vetores de gradiente e atenua as oscilações.
    • Tamanho da imagem (imgsz): tamanhos maiores melhoram a precisão, mas aumentam a carga computacional.

    Ajusta estes valores de acordo com o teu conjunto de dados e hardware. Sabe mais em Definições de treino.

  • A taxa de aprendizagem (lr0) é crucial; começa com 0.01 para SGD ou 0.001 para o otimizador Adam e define explicitamente optimizer, uma vez que o valor predefinido auto ignora lr0. Acompanha as métricas e ajusta conforme necessário. Usa escalonadores da taxa de aprendizagem cossenoidais (cos_lr) ou aquecimento (warmup_epochs, warmup_momentum). Encontra mais detalhes no Guia de treino.

  • As definições predefinidas incluem:

    • Limiar de confiança (conf=0.25): confiança mínima para as deteções.
    • Limiar de IoU (iou=0.7): usado para a Supressão Não Máxima (NMS).
    • Tamanho da imagem (imgsz=640): redimensiona as imagens de entrada.
    • Dispositivo (device=None): seleciona CPU, GPU CUDA, Apple MPS, Intel XPU (xpu) ou NPU Huawei Ascend (npu).

    Para uma visão geral completa, consulta Definições de previsão e o Guia de previsão.

  • O treino de precisão mista (amp=True) reduz o uso de memória e acelera o treino usando FP16 e FP32. É vantajoso em GPUs modernas, pois permite utilizar modelos maiores e fazer cálculos mais rapidamente sem perdas significativas de precisão. Sabe mais no Guia de treino.

Comentários