Configuração#
As configurações e hiperparâmetros do YOLO desempenham um papel fundamental no desempenho, velocidade e na accuracy do modelo. Essas configurações podem afetar o comportamento do modelo em vários estágios, incluindo treinamento, validação e predição.
Watch: Mastering Ultralytics YOLO: Configuration
Os comandos Ultralytics utilizam a seguinte sintaxe:
yolo TASK MODE ARGSOnde:
TASK(opcional) é um de (detect, segment, semantic, depth, classify, pose, obb)MODE(obrigatório) é um de (train, val, predict, export, track, benchmark)ARGS(opcional) são pares dearg=valuecomoimgsz=640que substituem os valores predefinidos.
Os valores predefinidos de ARG estão definidos nesta página e provêm do ficheiro cfg/default.yaml.
Tarefas#
Os modelos Ultralytics YOLO podem realizar uma variedade de tarefas de visão computacional, incluindo:
- Detect: A Object detection identifica e localiza objetos dentro de uma imagem ou vídeo.
- Segment: A Instance segmentation divide uma imagem ou vídeo em regiões correspondentes a diferentes objetos ou classes.
- Semantic segmentation (
semantic): A Semantic segmentation atribui um rótulo de classe a cada pixel em uma imagem para a compreensão densa de cenas. - Depth (
depth): A Monocular depth estimation prediz um mapa de profundidade por pixel em metros a partir de uma única imagem RGB. - Classify: A Image classification prediz o rótulo de classe de uma imagem de entrada.
- Pose: A Pose estimation identifica objetos e estima seus pontos-chave em uma imagem ou vídeo.
- OBB: O Oriented Bounding Boxes usa caixas delimitadoras rotacionadas, adequadas para imagens de satélite ou médicas.
| Argumento | Predefinição | Descrição |
|---|---|---|
task | 'detect' | Especifica a tarefa do YOLO: detect para object detection, segment para segmentação de instâncias, semantic para segmentação semântica, depth para estimativa de profundidade monocular, 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 imagens e vídeos. |
Modos#
Os modelos Ultralytics YOLO operam em diferentes modos, cada um concebido para uma fase específica do ciclo de vida do modelo:
- Train: Treina um modelo YOLO num conjunto de dados personalizado.
- Val: Valida um modelo YOLO treinado.
- Predict: Utiliza um modelo YOLO treinado para fazer predições em novas imagens ou vídeos.
- Export: Exporta um modelo YOLO para implementação.
- Track: Segue objetos em tempo real utilizando um modelo YOLO.
- Benchmark: Avalia a velocidade e precisão das exportações YOLO (ONNX, TensorRT, etc.).
| Argumento | Predefiniçã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 implantaçã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. |
Configurações de Treinamento#
As configurações de treinamento para modelos YOLO incluem hiperparâmetros e configurações que afetam o desempenho, a velocidade e a accuracy do modelo. As principais configurações incluem batch size, learning rate, momento e decaimento de peso. A escolha do otimizador, da loss function e da composição do dataset também impactam o treinamento. O ajuste fino e a experimentação são cruciais para um desempenho ideal. Para mais detalhes, consulte a Ultralytics entrypoint function.
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
model | str | None | Especifica o arquivo de modelo para treinamento. Aceita um caminho para um modelo pré-treinado .pt ou para um arquivo de configuração .yaml. Essencial para definir a estrutura do modelo ou inicializar pesos. |
data | str | None | Caminho para o arquivo de configuração do dataset (por exemplo, coco8.yaml). Este arquivo contém parâmetros específicos do dataset, incluindo caminhos para os dados de treinamento e validation data, nomes de classes e número de classes. |
epochs | int | 100 | Número total de épocas de treinamento. Cada epoch representa uma passagem completa por todo o dataset. 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 argumento epochs, 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 aguardar sem melhora nas métricas de validação antes de interromper o treinamento antecipadamente. Ajuda a evitar o overfitting, interrompendo o treinamento quando o desempenho atinge um patamar. |
batch | int ou float | 16 | Batch size, com três modos: definido como um número inteiro (por exemplo, batch=16), modo automático para 60% de utilização da memória da GPU (batch=-1) ou modo automático com fração de utilização especificada (batch=0.70). |
imgsz | int | 640 | Tamanho da imagem de destino para o treinamento. As imagens são redimensionadas para quadrados com lados iguais ao valor especificado (se rect=False), preservando a proporção para modelos YOLO, mas não para o RT-DETR. Afeta a accuracy do modelo e a complexidade computacional. |
save | bool | True | Permite salvar os checkpoints de treinamento e os pesos finais do modelo. Útil para retomar o treinamento ou para a model deployment. |
save_period | int | -1 | Frequência de salvamento de checkpoints do modelo, especificada em épocas. Um valor de -1 desativa esta funcionalidade. Útil para salvar modelos intermédios durante sessões de treinamento longas. |
cache | bool | False | Permite o cache de imagens do dataset na memória (True/ram), em disco (disk) ou o desativa (False). Melhora a velocidade de treinamento reduzindo o I/O de disco ao custo de um maior uso de memória. |
device | int ou str ou list | None | Especifica o(s) dispositivo(s) computacional(is) para o treinamento: uma única GPU (device=0), múltiplas GPUs (device=[0,1]), CPU (device=cpu), MPS para Apple silicon (device=mps), Huawei Ascend NPU (device=npu:0 ou device=npu:0,1) ou seleção automática de GPU ociosa (device=-1) ou múltiplas GPUs ociosas (device=[-1,-1]). |
workers | int | 8 | Número de threads de trabalho para o carregamento de dados (por RANK em treinamento com múltiplas GPUs). Influencia a velocidade de pré-processamento de dados e o fornecimento ao modelo, sendo especialmente útil em configurações com múltiplas GPUs. |
project | str | None | Nome do diretório do projeto onde as saídas do treinamento são salvas. Permite o armazenamento organizado de diferentes experimentos. |
name | str | None | Nome da execução do treinamento. Usado para criar um subdiretório dentro da pasta do projeto, onde os logs e saídas do treinamento são armazenados. |
exist_ok | bool | False | Se True, permite a substituição de um diretório de projeto/nome existente. Útil para experimentação iterativa sem precisar limpar manualmente as saídas anteriores. |
save_dir | str | None | Especifica o diretório exato onde as saídas da execução são salvas, substituindo a combinação project/name. O caminho é usado exatamente como está, sem incremento automático, portanto, execuções consecutivas reutilizam o mesmo diretório. |
pretrained | bool ou str | True | Determina se o treinamento deve ser iniciado a partir de pesos pré-treinados. Pode ser um valor booleano ou um caminho em string para os pesos a serem carregados. pretrained=False treina a partir de pesos inicializados aleatoriamente, mantendo a arquitetura do modelo. |
cls_remap | bool | True | Ao fazer o fine-tuning entre conjuntos de dados, copia as linhas do cabeçote de classificação pré-treinado para o novo modelo onde os nomes das classes correspondem, para que as classes sobrepostas mantenham seu viés aprendido, além de seus pesos quando a largura do cabeçote não for alterada. Aplica-se quer a contagem de classes seja diferente ou igual com uma ordem de classes diferente. |
optimizer | str | 'auto' | Escolha do otimizador para o treinamento. As opções incluem SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp ou auto para seleção automática com base na configuração do modelo. Afeta a velocidade de convergência e a estabilidade. |
seed | int | 0 | Define a semente aleatória para o treinamento, garantindo a reprodutibilidade dos resultados entre execuções com as mesmas configurações. |
deterministic | bool | True | Força o uso de algoritmos determinísticos, garantindo a reprodutibilidade, mas podendo afetar o desempenho e a velocidade devido à restrição de algoritmos não determinísticos. |
verbose | bool | True | Ativa a saída detalhada durante o treinamento, exibindo barras de progresso, métricas por época e informações adicionais de treinamento no console. |
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 quando o foco é a presença de objetos em vez da classificação. |
classes | list[int] | None | Especifica uma lista de IDs de classes para treinar. Útil para filtrar e focar apenas em certas classes durante o treinamento. |
rect | bool | False | Ativa a estratégia de preenchimento mínimo (minimum padding)—as imagens em um lote são preenchidas minimamente para atingir um tamanho comum, com o lado mais longo igual a imgsz. Pode melhorar a eficiência e a velocidade, mas pode afetar a precisão do modelo. |
multi_scale | float | 0.0 | Varia aleatoriamente imgsz a cada lote por +/- multi_scale (por exemplo, 0.25 -> 0.75x a 1.25x), arredondando para múltiplos do passo do modelo; 0.0 desativa o treinamento em multiescala. |
cos_lr | bool | False | Utiliza um agendador de learning rate em cosseno, ajustando a taxa de aprendizado seguindo uma curva de cosseno ao longo das épocas. Ajuda a gerenciar a taxa de aprendizado para uma melhor convergência. |
close_mosaic | int | 10 | Desativa a data augmentation de mosaico nas últimas N épocas para estabilizar o treinamento antes da conclusão. Definir como 0 desativa esse 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 de forma contínua. |
amp | bool | True | Ativa o treinamento com Mixed Precision 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 treinar em um subconjunto do conjunto de dados completo, útil para experimentos ou quando os recursos são limitados. |
profile | bool | False | Ativa a criação de perfil (profiling) das velocidades de 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 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 esse 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 agendadores para ajustar a taxa de aprendizado ao longo do tempo. |
momentum | float | 0.937 | Fator de momento para SGD ou beta1 para Adam optimizers, influenciando a incorporação de gradientes passados na atualização atual. |
weight_decay | float | 0.0005 | Termo de regularization L2, penalizando pesos grandes para evitar o overfitting. |
warmup_epochs | float | 3.0 | Número de épocas para aquecimento (warmup) da taxa de aprendizado, aumentando gradualmente a taxa de aprendizado de um valor baixo até a taxa de aprendizado inicial para estabilizar o treinamento desde o 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. |
distill_model | str | None | Caminho para um checkpoint de modelo professor (por exemplo, yolo26x.pt) para destilação de conhecimento. Quando definido, o modelo aluno é treinado com uma perda de destilação extra guiada pelo professor congelado. |
dis | float | 6.0 | Peso da perda de destilação adicionada às perdas de detecção padrão. Valores mais altos aumentam a influência da orientação de recursos do professor. |
box | float | 7.5 | Peso do componente de perda de caixa na loss function, influenciando quanta ênfase é colocada na previsão precisa das coordenadas da bounding box. |
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. |
cls_pw | float | 0.0 | Potência para a ponderação de classes para lidar com o desequilíbrio de classes usando a frequência inversa de classes. 0.0 desativa a ponderação de classes, 1.0 aplica a ponderação de frequência inversa total. Valores entre 0 e 1 fornecem ponderação parcial. |
dfl | float | 1.5 | Peso da distribuição focal loss (DFL), um termo de localização de bounding box que faz a regressão das distâncias das bordas da caixa. |
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 de pose. |
kobj | float | 1.0 | Peso da perda de objetividade de pontos-chave (keypoint objectness loss) em modelos de estimativa de pose, equilibrando a confiança da detecção com a precisão da pose. |
rle | float | 1.0 | Peso da perda de estimativa de log-verossimilhança residual em modelos de estimativa de pose, afetando a precisão da localização dos pontos-chave. |
angle | float | 1.0 | Peso da perda de ângulo em modelos obb, afetando a precisão das previsões de ângulo da caixa delimitadora orientada. |
dlog | float | 1.0 | Peso da perda logarítmica escala-invariante (SILog) em modelos de estimativa de profundidade, o termo principal que impulsiona a precisão de profundidade. |
dgrad | float | 0.5 | Peso da perda de gradiente em modelos de estimativa de profundidade, penalizando erros nas bordas de profundidade e incentivando limites de superfície mais nítidos. |
dlam | float | 1.0 | Fator de foco de variância da perda SILog em modelos de estimativa de profundidade. 1.0 torna a perda totalmente invariável à escala, enquanto 0.0 a reduz para o log-RMSE simples. |
nbs | int | 64 | Tamanho de lote nominal 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 downsample 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, evitando o overfitting ao omitir unidades aleatoriamente 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 | True | Gera e salva gráficos de 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. |
compile | bool ou str | False | Ativa a compilação de grafos PyTorch 2.x torch.compile com backend='inductor'. Aceita True → "default", False → desativa, ou um modo de string como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Retorna para o modo ávido (eager) com um aviso se não for suportado. |
channels_last | bool | False | Usa o formato de memória channels_last (NHWC) para convoluções durante o treinamento, acelerando GPUs CUDA Tensor Core sem alteração nos resultados. É ignorado automaticamente em CPU e MPS, onde não oferece benefícios. |
max_det | int | 300 | Especifica o número máximo de objetos retidos durante a fase de validação do treinamento. |
O argumento batch oferece três opções de configuração:
- Fixed Batch Size: Especifique o número de imagens por lote com um número inteiro (por exemplo,
batch=16). - Auto Mode (60% GPU Memory): Use
batch=-1para ajuste automático para aproximadamente 60% de utilização da memória CUDA. - Auto Mode with Utilization Fraction: Defina uma fração (por exemplo,
batch=0.70) para ajustar com base em um uso de memória da GPU especificado.
Definições de Predição#
As configurações de predição para modelos YOLO incluem hiperparâmetros e configurações que influenciam o desempenho, a velocidade e a accuracy durante a inferência. As principais configurações incluem o limite de confiança, o limite de Non-Maximum Suppression (NMS) e o número de classes. O tamanho dos dados de entrada, o formato e recursos suplementares como máscaras também afetam as predições. Ajustar essas configurações é essencial para um desempenho ideal.
Argumentos de inferência:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
source | str ou int ou None | None | 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. Se omitido, um aviso é registrado e o modelo recorre aos ativos de demonstração integrados (ultralytics/assets, ou uma URL de demonstração para OBB). Suporta uma ampla gama de formatos e fontes, permitindo uma aplicação flexível em different types of input. |
conf | float | 0.25 | Define o limiar de confiança mínimo para deteções. Objetos detetados com uma confiança inferior a este limiar serão ignorados. Ajustar este valor pode ajudar a reduzir falsos positivos. |
iou | float | 0.7 | Limite de Intersection Over Union (IoU) para a Non-Maximum Suppression (NMS). Valores mais baixos resultam em menos detecções, eliminando caixas sobrepostas, o que é útil para reduzir duplicatas. |
imgsz | int ou tuple | 640 | Destino do letterbox. Um número inteiro fornece um quadrado N×N; uma tupla fornece (height, width). Com rect=True, o tensor real pode ser menor que este destino devido ao preenchimento de retângulo mínimo. Use rect=False para um tamanho fixo. Consulte Fixed shape vs minimum rectangle. |
rect | bool | True | Se True, use o preenchimento de retângulo mínimo quando possível (lote de mesma forma e backend suportado). Se False, sempre preencha até o imgsz completo. Consulte Fixed shape vs minimum rectangle. |
quantize | int ou str | None | Precisão da inferência: 16/"fp16" ativa a inferência FP16 em GPUs suportadas; 32/"fp32"/não definido é FP32. A quantização INT8/PTQ é configurada durante a export e, em seguida, usada carregando o modelo exportado. Substitui o sinalizador obsoleto half. |
device | str | None | Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0, 0, npu ou npu:0). Permite aos usuários selecionar entre CPU, uma GPU específica, Huawei Ascend NPU ou outros dispositivos de computação para a execução do modelo. |
batch | int | 1 | Especifica o tamanho do lote para inferência (funciona apenas quando a fonte é a directory, video file, or .txt file). Um tamanho de lote maior pode fornecer maior rendimento, encurtando o tempo total necessário para a inferência. |
max_det | int | 300 | Número máximo de deteções permitido por imagem. Limita o número total de objetos que o modelo pode detetar numa única inferência, evitando saídas excessivas em cenas densas. |
vid_stride | int | 1 | Intervalo de fotogramas para entradas de vídeo. Permite saltar fotogramas em vídeos para acelerar o processamento à custa da resolução temporal. Um valor de 1 processa todos os fotogramas, valores mais altos saltam fotogramas. |
stream_buffer | bool | False | Determina se os quadros recebidos devem ser colocados na fila para fluxos de vídeo. Se False, quadros antigos são descartados para acomodar novos quadros (otimizado para aplicações em tempo real). Se True, novos quadros são enfileirados em um buffer, garantindo que nenhum quadro seja ignorado, mas isso causará latência se o FPS da inferência for inferior ao FPS do fluxo. |
visualize | bool | False | Salva um mapa de calor de ativação de classe próximo a cada predição, mostrando quais pixels aumentaram as pontuações de classe previstas. Respeita conf e classes, de modo que classes=[0] mapeie apenas essa classe. Disponível apenas para modelos PyTorch. |
augment | bool | False | Ativa o aumento durante o teste (TTA) para predições, melhorando potencialmente a robustez da deteção à custa da velocidade de inferência. |
agnostic_nms | bool | False | Ativa o Non-Maximum Suppression (NMS) agnóstico à classe, que funde caixas sobrepostas de diferentes classes. Útil em cenários de deteção multi-classe onde a sobreposição de classes é comum. Para modelos end-to-end (YOLO26, YOLOv10), isto apenas evita que a mesma deteção apareça com múltiplas etiquetas de classe (duplicados IoU=1.0) e não realiza a supressão baseada no limiar de IoU entre caixas distintas. |
classes | list[int] | None | Filtra as predições para um conjunto de IDs de classe. Apenas as deteções pertencentes às classes especificadas serão devolvidas. Útil para focar em objetos relevantes em tarefas de deteçã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 ativadas. Se desativadas, 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. Use model.embed(source) para embeddings da penúltima camada ou model.predict(source, embed=[layer]) para selecionar camadas específicas. Útil para tarefas a jusante, como agrupamento ou busca por similaridade. |
project | str | None | Nome do diretório do projeto onde as saídas de predição são salvas se save estiver ativado. |
name | str | None | Nome da execução de predição. Usado para criar um subdiretório dentro da pasta do projeto, onde as saídas de predição são armazenadas se save estiver ativado. |
stream | bool | False | Ativa o processamento eficiente em termos de memória para vídeos longos ou numerosas imagens, devolvendo um gerador de objetos de Resultados em vez de carregar todos os fotogramas na memória de uma só vez. |
verbose | bool | True | Controla se deve mostrar registos de inferência detalhados no terminal, fornecendo feedback em tempo real sobre o processo de predição. |
compile | bool ou str | False | Ativa a compilação de grafos PyTorch 2.x torch.compile com backend='inductor'. Aceita True → "default", False → desativa, ou um modo de string como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Retorna para o modo ávido (eager) com um aviso se não for suportado. |
channels_last | bool | False | Usa o formato de memória channels_last (NHWC) para convoluções durante a inferência, acelerando GPUs CUDA Tensor Core sem alteração nos resultados. Aplica-se apenas a modelos PyTorch nativos; é ignorado para CPU, MPS e formatos exportados como TensorRT e ONNX. |
end2end | bool | None | Substitui o modo ponta a ponta (end-to-end) em modelos YOLO que suportam inferência sem NMS (YOLO26, YOLOv10). Configurá-lo como False permite executar a predição usando o pipeline tradicional de NMS, permitindo adicionalmente o uso do argumento iou. Consulte o End-to-End Detection guide para obter detalhes. |
Argumentos de visualização:
| Argumento | Tipo | Predefiniçã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 | Ativa a gravação das imagens ou vídeos anotados em ficheiros. Útil para documentação, análise posterior ou partilha de resultados. Predefinição como True ao usar CLI e False quando usado em Python. |
save_frames | bool | False | Ao processar vídeos, guarda fotogramas individuais como imagens. Útil para extrair fotogramas específicos ou para uma análise detalhada fotograma a fotograma. |
save_txt | bool | False | 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 pontuações de confiança nos ficheiros de texto guardados. Melhora os detalhes disponíveis para pós-processamento e análise. |
save_crop | bool | False | Guarda imagens recortadas das deteções. Útil para aumento de conjuntos de dados, análise ou criação de conjuntos de dados 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 a pontuação de confiança para cada detecção ao lado do rótulo. Fornece uma visão sobre a certeza do modelo para cada detecção. |
show_boxes | bool | True | Desenha caixas delimitadoras à volta dos objetos detetados. Essencial para identificação visual e localização de objetos em imagens ou fotogramas de vídeo. |
line_width | int or None | 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 maior clareza. |
Definiçõ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 validation dataset. Essas configurações influenciam o desempenho, a velocidade e a accuracy. As configurações comuns incluem o tamanho do lote, a frequência de validação e as métricas de desempenho. O tamanho e a composição do dataset de validação, juntamente com a tarefa específica, também afetam o processo.
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
data | str | None | Especifica o caminho para o arquivo de configuração do dataset (por exemplo, coco8.yaml). Este arquivo deve incluir o caminho para os validation data. |
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 GPU de forma mais eficiente, mas requerem mais VRAM. Ajusta 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 validation para calcular curvas de precisão-revocação. O padrão é 0.01 para validação OBB para reduzir o uso de memória. |
iou | float | 0.7 | Define o limite de Intersection Over Union para a Non-Maximum Suppression. Controla a eliminação de detecções duplicadas. |
max_det | int | 300 | Limita o número máximo de deteções por imagem. Útil em cenas densas para evitar deteções excessivas e gerir recursos computacionais. |
quantize | int ou str | None | Precisão da validação: 16/"fp16" ativa a validação FP16 em GPUs suportadas; 32/"fp32"/não definido é FP32. A quantização INT8/PTQ é configurada durante a export e, em seguida, usada validando o modelo exportado. Substitui o sinalizador obsoleto half. |
device | str | None | Especifica o dispositivo para validação (cpu, cuda:0, npu, npu:0, etc.). Quando None, seleciona automaticamente o melhor dispositivo disponível. Múltiplos dispositivos CUDA podem ser especificados separados por vírgula. |
dnn | bool | False | Se True, usa o módulo DNN do OpenCV para a inferência de modelos ONNX, oferecendo uma alternativa aos métodos de inferência do PyTorch. |
plots | bool | True | Quando definido como True, gera e salva gráficos de predições versus ground truth, 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 avaliar. Útil para filtrar e focar apenas em certas classes durante a avaliação. |
rect | bool | True | Se True, usa inferência retangular para lotes, 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 dataset 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 os resultados da validação são salvos. Ajuda a organizar 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 registros e resultados da validação são armazenados. |
verbose | bool | True | Se True, exibe informações detalhadas durante o processo de validação, incluindo métricas por classe, progresso do lote e informações adicionais de depuração. |
save_txt | bool | False | Se True, salva os resultados da detecção em arquivos de texto, com um arquivo por imagem, o que é útil para análises posteriores, 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á ativado, 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 maiores podem acelerar o pré-processamento de 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. |
augment | bool | False | Ativa a TTA (Test-Time Augmentation) durante a validação, melhorando potencialmente a precisão da detecção ao custo da velocidade de inferência, ao executar a inferência em versões transformadas da entrada. |
agnostic_nms | bool | False | Ativa a Non-Maximum Suppression agnóstica de classe, que mescla caixas sobrepostas independentemente de sua classe prevista. Útil para aplicações focadas em instâncias. Para modelos ponta a ponta (YOLO26, 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 realiza supressão baseada em limite de IoU entre caixas distintas. |
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 detecção binária ou quando as distinções de classe não são importantes. |
visualize | bool | False | Visualiza os ground truths, verdadeiros positivos, falsos positivos e falsos negativos para cada imagem. Útil para depuração e interpretação do modelo. |
show_labels | bool | True | Exibe rótulos de classe nas visualizações de validação quando visualize=True. Defina como False para uma visualização mais limpa de correspondências e erros. |
show_conf | bool | True | Exibe pontuações de confiança nas visualizações de validação quando visualize=True. Defina como False para uma visualização mais limpa de correspondências e erros. |
compile | bool ou str | False | Ativa a compilação de grafos PyTorch 2.x torch.compile com backend='inductor'. Aceita True → "default", False → desativa, ou um modo de string como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Retorna para o modo ávido (eager) com um aviso se não for suportado. |
channels_last | bool | False | Usa o formato de memória channels_last (NHWC) para convoluções durante a validação, acelerando GPUs CUDA Tensor Core sem alteração nos resultados. Aplica-se apenas a modelos nativos do PyTorch; ignorado para CPU, MPS e formatos exportados como TensorRT e ONNX. |
end2end | bool | None | Substitui o modo ponta a ponta em modelos YOLO que suportam inferência sem NMS (YOLO26, YOLOv10). Configurá-lo como False permite executar a validação usando o pipeline tradicional de NMS, permitindo adicionalmente o uso do argumento iou. |
Um ajuste fino e uma experimentação cuidadosos são cruciais para garantir o desempenho ideal e para detectar e prevenir o overfitting.
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 impactam o desempenho, o tamanho e a compatibilidade. As configurações principais incluem 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 restrições do ambiente de destino também afetam o processo de exportação.
| Argumento | Tipo | Predefiniçã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 deployment environments. |
imgsz | int ou tuple | 640 | Tamanho 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. |
keras | bool | False | Ativa a exportação para o formato Keras para o SavedModel do TensorFlow, fornecendo compatibilidade com o serviço e APIs do TensorFlow. |
optimize | bool | False | Ativa uma maior otimização do compilador para DEEPX, reduzindo a latência de inferência enquanto aumenta o tempo de compilação. |
quantize | int ou str | None | Precisã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 accuracy, principalmente para edge devices; precisa de calibração data/fraction); 32/não definido é FP32. Formatos de exportação que suportam precisão mista de peso/ativação também aceitam a notação 'w8a8'/'w16a16'/'w8a16'/'w8a32'. Substitui os sinalizadores obsoletos half/int8 (half=True → 16, int8=True → 8, ainda aceitos com um aviso de obsolescência). Apenas as precisões suportadas pelo formato de destino são permitidas (veja abaixo). |
dynamic | bool | False | Permite tamanhos de entrada dinâmicos para exportações de TorchScript, ONNX, OpenVINO, TensorRT e CoreML, aumentando a flexibilidade ao lidar com dimensões de imagem variadas. |
simplify | bool | True | Simplifica o grafo ONNX intermediário com onnxslim para as exportações que criam um (consulte Export Formats), melhorando potencialmente o desempenho e a compatibilidade com os mecanismos de inferência. |
opset | int | None | Especifica a versão do opset ONNX para as exportações que constroem um grafo ONNX (consulte Export Formats), para compatibilidade com diferentes analisadores e tempos de execução do 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 as otimizações do TensorRT, equilibrando o uso de memória e o desempenho. Use None para alocação automática pelo TensorRT até o máximo do dispositivo. |
nms | bool | False | Adiciona Non-Maximum Suppression (NMS) ao modelo exportado quando suportado (consulte Export Formats), melhorando a eficiência do pós-processamento de detecção. Não disponível para modelos end2end. Para o CoreML, é suportado apenas para modelos de detecção. |
batch | int | 1 | Especifica o tamanho da inferência em lote do modelo de exportação ou o número máximo de imagens que o modelo exportado processará simultaneamente no modo predict. Para exportações do Edge TPU, isso é definido automaticamente como 1. |
device | str | None | Especifica o dispositivo para exportação: GPU (device=0), CPU (device=cpu), MPS para Apple silicon (device=mps), Huawei Ascend NPU (device=npu ou device=npu:0) ou DLA para NVIDIA Jetson (device=dla:0 ou device=dla:1). As exportações do TensorRT usam automaticamente a GPU, mas o TensorRT 11.0 não suporta DLA. |
data | str | None | Caminho para o arquivo de configuração do dataset, essencial para a calibração da quantização INT8. Se não for especificado com o INT8 ativado, a Ultralytics seleciona um dataset de calibração específico para a tarefa onde necessário, ou recorre ao dataset padrão para a tarefa do modelo. |
fraction | float | 1.0 | Especifica a fração do conjunto de dados a ser usada para calibração de 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 especificado com INT8 ativado, o conjunto de dados completo será usado. |
end2end | bool | None | Substitui o modo ponta a ponta em modelos YOLO que suportam inferência sem NMS (YOLO26, YOLOv10). Configurá-lo como False permite exportar esses modelos para serem compatíveis com o pipeline tradicional de pós-processamento baseado em NMS. Consulte o End-to-End Detection guide para obter detalhes. |
Uma configuração ponderada garante que o modelo exportado esteja otimizado para seu caso de uso e funcione de forma eficaz no ambiente de destino.
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, rastreamento de exercícios, análise de dados, rastreamento de zonas, gerenciamento de filas e contagem baseada em regiões. Essas opções permitem ajustes fáceis para resultados precisos e úteis adaptados a necessidades específicas.
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
model | str | None | Caminho para um ficheiro de modelo YOLO da Ultralytics. |
region | list ou dict | None | Pontos que definem a região de interesse, seja uma lista de tuplas (x, y) ou um dicionário que mapeia nomes de regiões para listas de pontos para múltiplas regiões (apenas RegionCounter). Quando None, as soluções que exigem uma região recorrem a um padrão pré-definido. |
show_in | bool | True | Flag para controlar se os números de entrada devem ser exibidos no stream de vídeo. |
show_out | bool | True | Flag para controlar se os números de saída devem ser exibidos no stream de vídeo. |
analytics_type | str | 'line' | Tipo de grafo, ou seja, line, bar, area ou pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mapa de cores a usar para o mapa de calor. |
json_file | str | None | Caminho para o ficheiro JSON que contém todos os dados de coordenadas de estacionamento. |
up_angle | float | 145.0 | Limiar de ângulo para a pose 'cima'. |
kpts | list[int] | '[6, 8, 10]' | Lista de três índices de pontos-chave usados para monitorizar exercícios. Estes pontos-chave correspondem a articulações ou partes do corpo, como ombros, cotovelos e pulsos, para exercícios como flexões, elevações, agachamentos e abdominais. |
down_angle | int | 90 | Limiar de ângulo para a pose 'baixo'. |
blur_ratio | float | 0.5 | Ajusta a porcentagem da intensidade do desfoque (blur), com valores no intervalo 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Nome do diretório para armazenar deteções recortadas. |
records | int | 5 | Contagem total de deteções para disparar um e-mail com o sistema de alarme de segurança. |
vision_point | tuple[int, int] | (20, 20) | O ponto onde a visão irá rastrear objetos e desenhar caminhos usando a VisionEye Solution. |
source | str | None | Caminho para a fonte de entrada (vídeo, RTSP, etc.). Apenas utilizável com a interface de linha de comandos (CLI) das Solutions. |
figsize | tuple[float, float] | (12.8, 7.2) | Tamanho da figura para gráficos de análise como mapas de calor ou gráficos. |
fps | float | 30.0 | Frames por segundo usados para cálculos de velocidade. |
max_hist | int | 5 | Pontos históricos máximos a 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 píxeis para unidades do mundo real. |
max_speed | int | 120 | Limite de velocidade máxima em sobreposições visuais (usado em alertas). |
data | str | 'images' | Caminho para o diretório de imagens usado para pesquisa de similaridade. |
imgsz | int | 640 | Tamanho da imagem de entrada para inferência do modelo. |
Configurações de Aumentação#
As técnicas de data augmentation são essenciais para melhorar a robustez e o desempenho do modelo YOLO, introduzindo variabilidade nos training data, 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 augmentação:
| Argumento | Tipo | Predefinição | Tarefas Suportadas | Intervalo | Descrição |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Ajusta a matiz (hue) 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 | detect, segment, semantic, depth, classify, pose, obb | 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 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Modifica o valor (brilho) da imagem por uma fração, ajudando o modelo a ter um bom desempenho sob diversas condições de iluminação. |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | Rotaciona 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 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Translada a imagem horizontal e verticalmente por uma fração do tamanho da imagem, ajudando a aprender a detectar objetos parcialmente visíveis. |
scale | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1 | Escala a imagem por um fator de ganho, simulando objetos a diferentes distâncias da câmera. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | Inclina a imagem por um grau especificado, imitando o efeito de objetos sendo vistos de diferentes ângulos. |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 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 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Inverte a imagem de cima para baixo com a probabilidade especificada, aumentando a variabilidade dos dados sem afetar as características do objeto. |
fliplr | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 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 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Inverte os canais da imagem de RGB para BGR com a probabilidade especificada, útil para aumentar a robustez a ordenações incorretas de canais. |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Combina quatro imagens de treinamento 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 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Mistura duas imagens e seus rótulos, criando uma imagem composta. Melhora a capacidade do modelo de generalizar ao introduzir ruído de rótulo e variabilidade visual. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Combina porções de duas imagens, criando uma mistura parcial enquanto mantém regiões distintas. Aumenta a robustez do modelo ao criar cenários de oclusão. |
copy_paste | float | 0 | segment | 0.0 - 1.0 | Copia e cola objetos entre imagens para aumentar as instâncias de objetos. |
copy_paste_mode | str | flip | segment | - | Especifica a estratégia copy-paste a ser usada. As opções incluem 'flip' e 'mixup'. |
auto_augment | str | randaugment | classify | - | Aplica uma política de aumento predefinida ('randaugment', 'autoaugment' ou 'augmix') para melhorar o desempenho do modelo por meio da diversidade visual. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Apaga aleatoriamente regiões da imagem durante o treinamento para incentivar o modelo a focar em características menos óbvias. |
augmentations | list | None | detect, segment, semantic, pose, obb | - | Transformações personalizadas de Albumentations para aumento de dados avançado (apenas API Python). Aceita uma lista de objetos de transformação para necessidades de aumento especializadas. |
Ajuste essas 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 aumentação ideal para o melhor desempenho do modelo.
Configurações de Registro, Checkpoints e Plotagem#
Registro, checkpoints, plotagem e gerenciamento de arquivos são importantes ao treinar um modelo YOLO:
- Registro: Acompanha o progresso do modelo e diagnostica problemas usando bibliotecas como TensorBoard ou escrevendo em um arquivo.
- Checkpoints: Salve o modelo em intervalos regulares para retomar o treinamento ou experimentar com configurações diferentes.
- 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 fácil acesso e análise.
O gerenciamento eficaz desses aspectos ajuda a rastrear o progresso e torna a depuração e a otimização mais fáceis.
| Argumento | Predefinição | Descrição |
|---|---|---|
project | None | Especifica o diretório raiz para salvar as execuções de treinamento. Se não for especificado, as execuções são salvas em runs/<task>. Cada execução é salva em um subdiretório separado. |
name | None | Define o nome do experimento. Se não for especificado, o YOLO usa o nome do modo e o incrementa para cada execução (por exemplo, train, train-2) para evitar substituições. |
exist_ok | False | Determina se deve substituir o diretório de um experimento existente. True permite a substituição; False a impede. |
plots | True | Controla a geração e o salvamento de gráficos de treinamento e validação. Defina como True para criar gráficos como curvas de perda, curvas de precisão-revogação e exemplos de previsões para o acompanhamento visual do desempenho. |
save | True | Habilita o salvamento de pontos de verificação de treinamento e dos 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. |
Arquivo de Configuração Personalizado#
Carrega um YAML salvo para reutilizar um conjunto completo de argumentos sem precisar passá-los inline. O argumento cfg substitui os valores de default.yaml, enquanto os argumentos adicionais passados simultaneamente ainda têm prioridade.
| Argumento | Predefinição | Descrição |
|---|---|---|
cfg | None | Caminho para um arquivo YAML cujos valores substituem as entradas de default.yaml. Consulte Overriding Default Config File para ver um exemplo prático de CLI. |
FAQ#
Como posso melhorar o desempenho do meu modelo YOLO durante o treinamento?#
Melhora o desempenho ajustando hiperparâmetros como tamanho do lote, taxa de aprendizado, momento e decaimento de peso. Ajusta as configurações de aumento de dados, seleciona o otimizador correto e usa técnicas como parada antecipada ou precisão mista. Para obter 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 exigem mais memória. - Taxa de Aprendizado (
lr0): Taxas menores oferecem ajustes finos, mas convergência mais lenta. - Momento (
momentum): Acelera os vetores de gradiente, amortecendo oscilações. - Tamanho da Imagem (
imgsz): Tamanhos maiores melhoram a precisão, mas aumentam a carga computacional.
Ajuste esses parâmetros com base no seu conjunto de dados e hardware. Saiba mais em Configurações de Treinamento.
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 o otimizador Adam. Monitore as métricas e ajuste conforme necessário. Use agendadores de taxa de aprendizado de cosseno (cos_lr) ou aquecimento (warmup_epochs, warmup_momentum). Os detalhes estão no Guia de Treinamento.
Quais são as configurações padrão de inferência para modelos YOLO?#
As configurações padrão incluem:
- Limiar de Confiança (
conf=0.25): Confiança mínima para detecções. - Limiar de IoU (
iou=0.7): 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, Apple MPS ou Huawei Ascend NPU (npu).
Para obter uma visão geral completa, consulte Configurações de Predição e o Guia de Predição.
Por que usar treinamento de precisão mista com modelos YOLO?#
O treinamento com precisão mista (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 computações mais rápidas sem perda significativa de precisão. Saiba mais no Guia de Treinamento.