Configuração
As definições e hiperparâmetros do YOLO desempenham um papel fundamental no desempenho, velocidade e precisão do modelo. Estas definições podem afetar o comportamento do modelo em várias fases, incluindo treino, validação e predição.
Watch: Mastering Ultralytics YOLO: Configuration
Os comandos Ultralytics utilizam a seguinte sintaxe:
yolo TASK MODE ARGSOnde:
TASK(opcional) é uma das (detect, segment, classify, pose, obb)MODE(obrigatório) é uma das (train, val, predict, export, track, benchmark)ARGS(opcional) são paresarg=valuecomoimgsz=640que substituem os padrões.
Default ARG values are defined on this page and come from the cfg/default.yaml file.
Tarefas
Os modelos Ultralytics YOLO conseguem realizar uma variedade de tarefas de visão computacional, incluindo:
- Detect: A deteção de objetos identifica e localiza objetos dentro de uma imagem ou vídeo.
- Segment: A segmentação de instâncias divide uma imagem ou vídeo em regiões correspondentes a diferentes objetos ou classes.
- Classify: A classificação de imagens prevê o rótulo da classe de uma imagem de entrada.
- Pose: A estimativa de pose identifica objetos e estima os seus pontos-chave numa imagem ou vídeo.
- OBB: Oriented Bounding Boxes utiliza caixas delimitadoras rotacionadas, adequadas para imagens de satélite ou médicas.
| Argumento | Predefinição | Descrição |
|---|---|---|
task | 'detect' | Especifica a tarefa YOLO: detect para deteção de objetos, segment para segmentação, classify para classificação, pose para estimativa de pose e obb para caixas delimitadoras orientadas. Cada tarefa é personalizada para saídas e problemas específicos em análise de imagem e vídeo. |
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 de exportações YOLO (ONNX, TensorRT, etc.).
| Argumento | Predefinição | Descrição |
|---|---|---|
mode | 'train' | Especifica o modo de operação do modelo YOLO: train para treino de modelos, val para validação, predict para inferência, export para conversão para formatos de implementação, track para seguimento de objetos e benchmark para avaliação de desempenho. Cada modo suporta diferentes fases, desde o desenvolvimento à implementação. |
Definições de Treino
As definições de treino para modelos YOLO incluem hiperparâmetros e configurações que afetam o desempenho, a velocidade e a precisão do modelo. As definições principais incluem tamanho do lote, taxa de aprendizagem, momentum e decaimento de pesos. A escolha do otimizador, função de perda e composição do conjunto de dados também impactam o treino. O ajuste e a experimentação são cruciais para um desempenho ideal. Para mais detalhes, consulta a função de ponto de entrada Ultralytics.
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
model | str | None | Especifica o ficheiro de modelo para treino. Aceita um caminho para um modelo pré-treinado .pt ou um ficheiro de configuração .yaml. Essencial para definir a estrutura do modelo ou inicializar pesos. |
data | str | None | Caminho para o ficheiro de configuração do conjunto de dados (por exemplo, coco8.yaml). Este ficheiro contém parâmetros específicos do conjunto de dados, incluindo caminhos para dados de treino e dados de validação, nomes de classes e número de classes. |
epochs | int | 100 | Número total de épocas de treino. Cada época representa uma passagem completa por todo o conjunto de dados. Ajustar este valor pode afetar a duração do treino e o desempenho do modelo. |
time | float | None | Tempo máximo de treino em horas. Se definido, substitui o argumento epochs, permitindo que o treino pare automaticamente após a duração especificada. Útil para cenários de treino com restrições de tempo. |
patience | int | 100 | Número de épocas a esperar sem melhoria nas métricas de validação antes de parar o treino antecipadamente. Ajuda a prevenir o sobreajuste ao parar o treino quando o desempenho estabiliza. |
batch | int ou float | 16 | Tamanho do lote, com três modos: definido como um número inteiro (por exemplo, batch=16), modo automático para 60% de utilização de memória da GPU (batch=-1), ou modo automático com fração de utilização especificada (batch=0.70). |
imgsz | int | 640 | Tamanho de imagem alvo para o treino. 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 RT-DETR. Afeta a precisão do modelo e a complexidade computacional. |
save | bool | True | Ativa a gravação de pontos de verificação de treino e pesos finais do modelo. Útil para retomar o treino ou para implementação de modelos. |
save_period | int | -1 | Frequência de gravação de pontos de verificação do modelo, especificada em épocas. Um valor de -1 desativa esta funcionalidade. Útil para guardar modelos intercalares durante sessões de treino longas. |
cache | bool | False | Ativa a cache de imagens do conjunto de dados na memória (True/ram), no disco (disk), ou desativa-a (False). Melhora a velocidade de treino ao reduzir I/O de disco à custa de um maior uso de memória. |
device | int ou str ou list | None | Especifica o(s) dispositivo(s) computacional(is) para o treino: 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 ou device=npu:0), ou seleção automática da GPU mais ociosa (device=-1) ou múltiplas GPUs ociosas (device=[-1,-1]) |
workers | int | 8 | Número de threads de trabalho para carregamento de dados (por RANK se o treino for Multi-GPU). Influencia a velocidade do pré-processamento de dados e o fornecimento ao modelo, especialmente útil em configurações multi-GPU. |
project | str | None | Nome do diretório do projeto onde as saídas do treino são guardadas. Permite o armazenamento organizado de diferentes experiências. |
name | str | None | Nome da execução do treino. Utilizado para criar um subdiretório dentro da pasta do projeto, onde os registos e saídas do treino são armazenados. |
exist_ok | bool | False | Se Verdadeiro, permite a substituição de um diretório de projeto/nome existente. Útil para experimentação iterativa sem necessidade de limpar manualmente as saídas anteriores. |
pretrained | bool ou str | True | Determina se o treino deve começar a partir de pesos pré-treinados. Pode ser um valor booleano ou um caminho de string para os pesos a carregar. pretrained=False treina a partir de pesos inicializados aleatoriamente, mantendo a arquitetura do modelo. |
optimizer | str | 'auto' | Escolha do otimizador para treino. As opções incluem SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, ou auto para seleção automática baseada na configuração do modelo. Afeta a velocidade de convergência e estabilidade. |
seed | int | 0 | Define a semente aleatória para treino, garantindo a reprodutibilidade dos resultados entre execuções com as mesmas configurações. |
deterministic | bool | True | Forç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. |
verbose | bool | True | Ativa a saída verbosa durante o treino, apresentando barras de progresso, métricas por época e informações adicionais de treino na consola. |
single_cls | bool | False | Trata todas as classes em conjuntos de dados multiclasse como uma única classe durante o treino. Útil para tarefas de classificação binária ou quando se foca na 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 treino. |
rect | bool | False | Ativa a estratégia de preenchimento mínimo—as imagens num lote são minimamente preenchidas 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 em 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 treino multi-escala. |
cos_lr | bool | False | Utiliza um programador de taxa de aprendizagem de cosseno, ajustando a taxa de aprendizagem seguindo uma curva de cosseno ao longo das épocas. Ajuda na gestão da taxa de aprendizagem para uma melhor convergência. |
close_mosaic | int | 10 | Desativa o aumento de dados tipo mosaico nas últimas N épocas para estabilizar o treinamento antes da conclusão. Definir como 0 desativa este recurso. |
resume | bool | False | Retoma o treinamento a partir do último ponto de verificação salvo. Carrega automaticamente os pesos do modelo, o estado do otimizador e a contagem de épocas, continuando o treinamento perfeitamente. |
amp | bool | True | Ativa o treinamento com Precisão Mista (AMP) automática, 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 de 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 aprendizado por transferência. |
lr0 | float | 0.01 | Taxa de aprendizado inicial (por exemplo, SGD=1E-2, Adam=1E-3). Ajustar este valor é crucial para o processo de otimização, influenciando a rapidez com que os pesos do modelo são atualizados. |
lrf | float | 0.01 | Taxa de aprendizado final como uma fração da taxa inicial = (lr0 * lrf), usada em conjunto com agendadores para ajustar a taxa de aprendizado ao longo do tempo. |
momentum | float | 0.937 | Fator de momentum para SGD ou beta1 para otimizadores Adam, influenciando a incorporação de gradientes passados na atualização atual. |
weight_decay | float | 0.0005 | Termo de regularização L2, penalizando pesos grandes para evitar o sobreajuste (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 para 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 viés durante a fase de aquecimento, ajudando a estabilizar o treinamento do modelo nas épocas iniciais. |
box | float | 7.5 | Peso do componente de perda da caixa (box loss) na função de perda, influenciando quanta ênfase é colocada na previsão precisa das coordenadas da caixa delimitadora. |
cls | float | 0.5 | Peso da perda de classificação na função de perda total, afetando a importância da previsão correta da classe em relação a outros componentes. |
cls_pw | float | 0.0 | Potência para ponderação de classe para lidar com o desequilíbrio de classe usando a frequência inversa da classe. 0.0 desativa a ponderação de classe, 1.0 aplica ponderação de frequência inversa total. Valores entre 0 e 1 fornecem ponderação parcial. |
dfl | float | 1.5 | Peso da perda focal de distribuição, usada em certas versões do YOLO para classificação de granulação fina. |
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 (keypoints) da pose. |
kobj | float | 1.0 | Peso da perda de objetividade dos pontos-chave em modelos de estimativa de pose, equilibrando a confiança na 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. |
nbs | int | 64 | Tamanho de lote nominal para normalização da perda. |
overlap_mask | bool | True | Determina se as máscaras de objetos 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 é colocada sobre a máscara maior durante a mesclagem. |
mask_ratio | int | 4 | Taxa de subamostragem para máscaras de segmentação, afetando a resolução das máscaras usadas durante o treinamento. |
dropout | float | 0.0 | Taxa de dropout para regularização em tarefas de classificação, evitando o sobreajuste 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 das métricas de treinamento e validação, bem como exemplos de previsão, fornecendo insights visuais sobre o desempenho do modelo e a progressão do aprendizado. |
compile | bool ou str | False | Ativa a compilação de grafo torch.compile do PyTorch 2.x com backend='inductor'. Aceita True → "default", False → desativa, ou um modo de string como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Retorna ao modo imediato (eager) com um aviso se não for suportado. |
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:
- Tamanho de lote fixo: Especifique 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): Use
batch=-1para ajuste automático para aproximadamente 60% da utilização de memória CUDA. - Modo automático com fração de utilização: Defina uma fração (por exemplo,
batch=0.70) para ajustar com base em um uso de memória de GPU especificado.
Configurações de Previsão
As configurações de previsão para modelos YOLO incluem hiperparâmetros e configurações que influenciam o desempenho, a velocidade e a precisão durante a inferência. As principais configurações incluem o limite de confiança, o limite de Supressão Não-Máxima (NMS) e o número de classes. O tamanho dos dados de entrada, o formato e recursos suplementares como máscaras também afetam as previsões. Ajustar essas configurações é essencial para um desempenho ideal.
Argumentos de inferência:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
source | str ou int ou None | None | Especifica a fonte de dados para inferência. Pode ser um caminho de imagem, arquivo de vídeo, diretório, URL ou ID de dispositivo para transmissões 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 diferentes tipos de entrada. |
conf | float | 0.25 | Define o limite mínimo de confiança para detecções. Objetos detectados com confiança abaixo deste limite serão desconsiderados. Ajustar este valor pode ajudar a reduzir falsos positivos. |
iou | float | 0.7 | Limite de Interseção sobre União (IoU) para Supressão Não-Máxima (NMS). Valores mais baixos resultam em menos detecções ao eliminar caixas sobrepostas, úteis para reduzir duplicatas. |
imgsz | int ou tuple | 640 | Letterbox target. An integer gives a square N×N; a tuple gives (height, width). With rect=True, the actual tensor may be smaller than this target due to minimum-rectangle padding. Use rect=False for a fixed size. See Fixed shape vs minimum rectangle. |
rect | bool | True | Se True, usa preenchimento de retângulo mínimo quando possível (lote de mesma forma e backend suportado). Se False, sempre preenche até o imgsz completo. Veja Forma fixa vs retângulo mínimo. |
half | bool | False | Ativa a inferência de meia precisão (FP16), o que pode acelerar a inferência do modelo em GPUs suportadas com impacto mínimo na precisão. |
device | str | None | Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0, 0, npu ou npu:0). Permite que os usuários escolham entre CPU, uma GPU específica, Huawei Ascend NPU ou outros dispositivos de computação para execução do modelo. |
batch | int | 1 | Especifica o tamanho do lote para inferência (funciona apenas quando a fonte é um diretório, arquivo de vídeo ou arquivo .txt). Um tamanho de lote maior pode proporcionar maior rendimento, reduzindo 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 consegue detetar numa única inferência, prevenindo resultados excessivos em cenas densas. |
vid_stride | int | 1 | Intervalo (stride) de frames para entradas de vídeo. Permite saltar frames em vídeos para acelerar o processamento ao custo da resolução temporal. Um valor de 1 processa todos os frames; valores mais altos saltam frames. |
stream_buffer | bool | False | Determina se deve colocar em fila os frames recebidos para fluxos de vídeo. Se False, os frames antigos são descartados para acomodar novos frames (otimizado para aplicações em tempo real). Se True, enfileira novos frames num buffer, garantindo que nenhum frame seja saltado, mas causará latência se o FPS da inferência for inferior ao FPS do fluxo. |
visualize | bool | False | Ativa a visualização das características do modelo durante a inferência, fornecendo insights sobre o que o modelo está a "ver". Útil para depuração e interpretação do modelo. |
augment | bool | False | Ativa a aumentação durante o teste (TTA) para predições, melhorando potencialmente a robustez da deteção ao custo da velocidade de inferência. |
agnostic_nms | bool | False | Ativa a Supressão de Não-Máximos (NMS) agnóstica à classe, que funde caixas sobrepostas de classes diferentes. Ú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últiplos rótulos de classe (duplicados IoU=1.0) e não realiza supressão baseada em limiar de IoU entre caixas distintas. |
classes | list[int] | None | Filtra predições para um conjunto de IDs de classe. Apenas as deteções pertencentes às classes especificadas serão retornadas. Ú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 ativado. Se desativado, elas têm o tamanho da imagem usado durante a inferência. |
embed | list[int] | None | Especifica as camadas das quais extrair vetores de características ou embeddings. Útil para tarefas a jusante como agrupamento ou pesquisa de similaridade. |
project | str | None | Nome do diretório do projeto onde os resultados da predição são guardados se save estiver ativado. |
name | str | None | Nome da execução da predição. Usado para criar um subdiretório dentro da pasta do projeto, onde os resultados da predição são armazenados se save estiver ativado. |
stream | bool | False | Ativa o processamento eficiente de memória para vídeos longos ou numerosas imagens ao retornar um gerador de objetos Results em vez de carregar todos os frames para a memória de uma só vez. |
verbose | bool | True | Controla se deve exibir 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 grafo torch.compile do PyTorch 2.x com backend='inductor'. Aceita True → "default", False → desativa, ou um modo de string como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Retorna ao modo imediato (eager) com um aviso se não for suportado. |
end2end | bool | None | Substitui o modo end-to-end em modelos YOLO que suportam inferência sem NMS (YOLO26, YOLOv10). Definir como False permite-te executar a predição usando o pipeline tradicional de NMS, permitindo adicionalmente usar o argumento iou. Consulta o guia de Deteção End-to-End para detalhes. |
Argumentos de visualização:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
show | bool | False | Se True, exibe as imagens ou vídeos anotados numa 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 adicional ou partilha de resultados. O padrão é True ao usar CLI e False ao usar em Python. |
save_frames | bool | False | Ao processar vídeos, guarda frames individuais como imagens. Útil para extrair frames específicos ou para análise detalhada frame a frame. |
save_txt | bool | False | Guarda resultados de deteção num ficheiro 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 o detalhe disponível para pós-processamento e análise. |
save_crop | bool | False | Guarda imagens recortadas das deteções. Útil para aumentação de dados, análise ou criação de conjuntos de dados focados em objetos específicos. |
show_labels | bool | True | Exibe rótulos para cada deteção na saída visual. Proporciona uma compreensão imediata dos objetos detetados. |
show_conf | bool | True | Exibe a pontuação de confiança para cada deteção ao lado do rótulo. Dá uma noção da certeza do modelo para cada deteçã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 frames 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. Oferece personalização visual para clareza. |
Definições de Validação
As definições de validação para modelos YOLO envolvem hiperparâmetros e configurações para avaliar o desempenho num conjunto de dados de validação. Estas definições influenciam o desempenho, a velocidade e a precisão. Definições comuns incluem tamanho do lote, frequência de validação e métricas de desempenho. O tamanho e composição do conjunto de dados 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 ficheiro de configuração do conjunto de dados (por exemplo, coco8.yaml). Este ficheiro deve incluir o caminho para os dados de validação. |
imgsz | int | 640 | Define o tamanho das imagens de entrada. Todas as imagens são redimensionadas para esta dimensão antes do processamento. Tamanhos maiores podem melhorar a precisão para objetos pequenos, mas aumentam o tempo de computação. |
batch | int | 16 | Define o número de imagens por lote. Valores mais altos utilizam a memória da GPU de forma mais eficiente, mas exigem mais VRAM. Ajusta com base nos recursos de hardware disponíveis. |
save_json | bool | False | Se True, guarda os resultados num ficheiro JSON para análise posterior, integração com outras ferramentas ou submissão a servidores de avaliação como COCO. |
conf | float | 0.001 | Define o limiar mínimo de confiança para deteções. Valores mais baixos aumentam a recuperação (recall) mas podem introduzir mais falsos positivos. Usado durante a validação para calcular curvas de precisão-recuperação. |
iou | float | 0.7 | Define o limiar de Intersection Over Union para a Supressão de Não-Máximos. Controla a eliminação de deteçõ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. |
half | bool | False | Ativa a computação de precisão média (FP16), reduzindo o uso de memória e aumentando potencialmente a velocidade com impacto mínimo na precisão. |
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 com separação por vírgula. |
dnn | bool | False | Se True, usa o módulo DNN do OpenCV para inferência de modelo ONNX, oferecendo uma alternativa aos métodos de inferência do PyTorch. |
plots | bool | True | Quando definido como True, gera e guarda gráficos de predições versus verdade absoluta (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 (padding) e potencialmente aumentando a velocidade e eficiência ao processar imagens no seu rácio de aspeto original. |
split | str | 'val' | Determina a divisão do conjunto de dados a usar 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 guardados. Ajuda a organizar resultados de diferentes experiências ou modelos. |
name | str | None | Nome da execução da validação. Usado para criar um subdiretório dentro da pasta do projeto, onde os registos 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, guarda os resultados da deteção em ficheiros de texto, com um ficheiro por imagem, útil para análise posterior, pós-processamento personalizado ou integração com outros sistemas. |
save_conf | bool | False | Se True, inclui valores de confiança nos ficheiros de texto guardados quando save_txt está ativado, fornecendo saída mais detalhada para análise e filtragem. |
workers | int | 8 | Número de threads de trabalho para carregamento de dados. Valores mais altos podem acelerar o pré-processamento de dados, mas podem aumentar o uso da CPU. Definir como 0 usa a thread principal, que pode ser mais estável em alguns ambientes. |
augment | bool | False | Ativa a aumentação durante o teste (TTA) durante a validação, melhorando potencialmente a precisão da deteção ao custo da velocidade de inferência ao executar inferência em versões transformadas da entrada. |
agnostic_nms | bool | False | Ativa a Supressão de Não-Máximos agnóstica à classe, que funde caixas sobrepostas independentemente da sua classe prevista. Útil para aplicações focadas em instâncias. Para modelos end-to-end (YOLO26, YOLOv10), isto apenas evita que a mesma deteção apareça com múltiplos rótulos de classe (duplicados IoU=1.0) e não realiza supressão baseada em limiar 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 deteção binária ou quando as distinções de classe não são importantes. |
visualize | bool | False | Visualiza as verdades absolutas, verdadeiros positivos, falsos positivos e falsos negativos para cada imagem. Útil para depuração e interpretação do modelo. |
compile | bool ou str | False | Ativa a compilação de grafo torch.compile do PyTorch 2.x com backend='inductor'. Aceita True → "default", False → desativa, ou um modo de string como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Retorna ao modo imediato (eager) com um aviso se não for suportado. |
end2end | bool | None | Substitui o modo end-to-end em modelos YOLO que suportam inferência sem NMS (YOLO26, YOLOv10). Definir como False permite-te executar a validação usando o pipeline tradicional de NMS, permitindo adicionalmente usar o argumento iou. |
Ajustes cuidadosos e experimentação são cruciais para garantir um desempenho ideal e para detetar e prevenir o sobreajuste (overfitting).
Definições de Exportação
As definições de exportação para modelos YOLO incluem configurações para guardar ou exportar o modelo para uso em diferentes ambientes. Estas definições impactam o desempenho, tamanho e compatibilidade. Definições chave incluem o formato do ficheiro exportado (por exemplo, ONNX, TensorFlow SavedModel), o dispositivo alvo (por exemplo, CPU, GPU) e funcionalidades 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 ambientes de implementação. |
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 um tuplo (height, width) para dimensões específicas. |
keras | bool | False | Ativa a exportação para o formato Keras para TensorFlow SavedModel, proporcionando compatibilidade com APIs e o serviço do TensorFlow. |
optimize | bool | False | Aplica otimização para dispositivos móveis ao exportar para TorchScript, reduzindo potencialmente o tamanho do modelo e melhorando o desempenho da inferência. Não compatível com o formato NCNN ou dispositivos CUDA. Para DeepX, ativa uma otimização de compilador superior que reduz a latência de inferência e aumenta o tempo de compilação. |
half | bool | False | Ativa a quantização FP16 (precisão média), reduzindo o tamanho do modelo e acelerando potencialmente a inferência em hardware suportado. Não compatível com quantização INT8 ou exportações apenas para CPU. Disponível apenas para certos formatos, p.ex. ONNX (ver abaixo). |
int8 | bool | False | Ativa a quantização INT8, comprimindo ainda mais o modelo e acelerando a inferência com perda mínima de precisão, principalmente para dispositivos de ponta (edge devices). Quando usado com TensorRT, realiza quantização pós-treino (PTQ). |
dynamic | bool | False | Permite tamanhos de entrada dinâmicos para exportações TorchScript, ONNX, OpenVINO, TensorRT e CoreML, aumentando a flexibilidade no manuseamento de dimensões de imagem variáveis. Definido automaticamente como True ao usar TensorRT com INT8. |
simplify | bool | True | Simplifica o grafo do modelo para exportações ONNX com onnxslim, melhorando potencialmente o desempenho e a compatibilidade com motores de inferência. |
opset | int | None | Especifica a versão do opset ONNX para compatibilidade com diferentes analisadores e runtimes ONNX. Se não estiver definido, usa a última versão suportada. |
workspace | float ou None | None | Define o tamanho máximo do espaço de trabalho em GiB para otimizações do TensorRT, equilibrando o uso de memória e o desempenho. Use None para a autoalocação pelo TensorRT até o máximo do dispositivo. |
nms | bool | False | Adiciona Non-Maximum Suppression (NMS) ao modelo exportado quando suportado (veja Formatos de Exportação), melhorando a eficiência do pós-processamento de detecção. Não disponível para modelos end2end. |
batch | int | 1 | Especifica o tamanho 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 de 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). Exportações de TensorRT usam GPU automaticamente. |
data | str | 'coco8.yaml' | Caminho para o arquivo de configuração do dataset, essencial para calibração de quantização INT8. Se não for especificado com INT8 ativado, coco8.yaml será usado como fallback para calibração. |
fraction | float | 1.0 | Especifica a fração do dataset a ser usada para calibração de quantização INT8. Permite calibrar em um subconjunto do dataset completo, útil para experimentos ou quando os recursos são limitados. Se não for especificado com INT8 ativado, o dataset completo será usado. |
end2end | bool | None | Substitui o modo end-to-end em modelos YOLO que suportam inferência sem NMS (YOLO26, YOLOv10). Definir como False permite exportar esses modelos para serem compatíveis com o pipeline tradicional de pós-processamento baseado em NMS. Veja o guia de Detecção End-to-End para detalhes. |
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.
Configurações de Soluções
As configurações de Soluções Ultralytics oferecem flexibilidade para personalizar modelos para tarefas como contagem de objetos, criação de mapas de calor, rastreamento de exercícios, análise de dados, rastreamento de zonas, gerenciamento de filas e contagem baseada em regiões. Essas opções permitem ajustes fáceis para resultados precisos e úteis, adaptados às necessidades específicas.
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
model | str | None | Caminho para um arquivo de modelo Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Lista de pontos definindo a região de contagem. |
show_in | bool | True | Sinalizador para controlar se as contagens de entrada devem ser exibidas no fluxo de vídeo. |
show_out | bool | True | Sinalizador para controlar se as contagens de saída devem ser exibidas no fluxo de vídeo. |
analytics_type | str | 'line' | Tipo de gráfico, i.e., line, bar, area ou pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mapa de cores a ser usado para o mapa de calor. |
json_file | str | None | Caminho para o arquivo JSON que contém todos os dados de coordenadas de estacionamento. |
up_angle | float | 145.0 | Limite de ângulo para a pose 'up' (subida). |
kpts | list[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, para exercícios como flexões, barras, agachamentos e abdominais. |
down_angle | int | 90 | Limite de ângulo para a pose 'down' (descida). |
blur_ratio | float | 0.5 | Ajusta a porcentagem da intensidade de desfoque, com valores na faixa de 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Nome do diretório para armazenar detecções cortadas. |
records | int | 5 | Contagem total de detecções para acionar um e-mail com sistema de alarme de segurança. |
vision_point | tuple[int, int] | (20, 20) | O ponto onde a visão rastreará objetos e desenhará caminhos usando a Solução VisionEye. |
source | str | None | Caminho para a fonte de entrada (vídeo, RTSP, etc.). Apenas utilizável com a interface de linha de comando (CLI) de Soluções. |
figsize | tuple[int, int] | (12.8, 7.2) | Tamanho da figura para gráficos analíticos como mapas de calor ou gráficos. |
fps | float | 30.0 | Quadros por segundo usados para cálculos de velocidade. |
max_hist | int | 5 | Pontos históricos máximos para rastrear por objeto para cálculos de velocidade/direção. |
meter_per_pixel | float | 0.05 | Fator de escala usado para converter a distância em pixels para unidades do mundo real. |
max_speed | int | 120 | Limite máximo de velocidade em sobreposições visuais (usado em alertas). |
data | str | 'images' | Caminho para o diretório de imagens usado para busca de similaridade. |
Configurações de Aumentação
Técnicas de aumentação de dados são essenciais para melhorar a robustez e o desempenho do modelo YOLO, introduzindo variabilidade nos dados de treinamento, ajudando o modelo a generalizar melhor para dados não vistos. A tabela a seguir descreve o propósito e o efeito de cada argumento de aumentação:
| Argumento | Tipo | Predefinição | Tarefas Suportadas | Intervalo | Descrição |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Ajusta a matiz da imagem por uma fração da roda de cores, introduzindo variabilidade de cor. Ajuda o modelo a generalizar sob diferentes condições de iluminação. |
hsv_s | float | 0.7 | detect, segment, pose, obb, classify | 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, pose, obb, classify | 0.0 - 1.0 | Modifica o valor (brilho) da imagem por uma fração, ajudando o modelo a ter um bom desempenho sob várias condições de iluminação. |
degrees | float | 0 | detect, segment, 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, pose, obb | 0.0 - 1.0 | Transladar a imagem horizontal e verticalmente por uma fração do tamanho da imagem, auxiliando no aprendizado da detecção de objetos parcialmente visíveis. |
scale | float | 0.5 | detect, segment, pose, obb, classify | 0 - 1 | Escala a imagem por um fator de ganho, simulando objetos a diferentes distâncias da câmera. |
shear | float | 0 | detect, segment, pose, obb | -180 - +180 | Inclina a imagem por um grau especificado, imitando o efeito de objetos sendo vistos de ângulos diferentes. |
perspective | float | 0 | detect, segment, pose, obb | 0.0 - 0.001 | Aplica uma transformação de perspectiva aleatória à imagem, aumentando a capacidade do modelo de entender objetos no espaço 3D. |
flipud | float | 0 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Inverte a imagem de cabeça para baixo com a probabilidade especificada, aumentando a variabilidade dos dados sem afetar as características do objeto. |
fliplr | float | 0.5 | detect, segment, pose, obb, classify | 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, pose, obb | 0.0 - 1.0 | Inverte os canais da imagem de RGB para BGR com a probabilidade especificada, útil para aumentar a robustez contra a ordenação incorreta de canais. |
mosaic | float | 1 | detect, segment, 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, pose, obb | 0.0 - 1.0 | Mistura duas imagens e seus rótulos, criando uma imagem composta. Aumenta a capacidade do modelo de generalizar ao introduzir ruído nos rótulos e variabilidade visual. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Combina partes 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 de copy-paste a ser utilizada. 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 através 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 | `` | detect, segment, pose, obb | - | Transformações personalizadas de Albumentations para aumento de dados avançado (apenas via 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 diferentes valores pode ajudar a encontrar a estratégia de aumento ideal para o melhor desempenho do modelo.
Configurações de Registro, Checkpoints e Plotagem
O registro (logging), checkpoints, plotagem e gerenciamento de arquivos são importantes ao treinar um modelo YOLO:
- Registro: Acompanhe o progresso do modelo e diagnostique problemas usando bibliotecas como o TensorBoard ou escrevendo em um arquivo.
- Checkpoints: Salve o modelo em intervalos regulares para retomar o treinamento ou experimentar diferentes configurações.
- Plotagem: Visualize o desempenho e o progresso do treinamento usando bibliotecas como Matplotlib ou TensorBoard.
- Gerenciamento de arquivos: Organize os arquivos gerados durante o treinamento, como checkpoints, arquivos de log e gráficos, para facilitar o acesso e a análise.
O gerenciamento eficaz desses aspectos ajuda a acompanhar o progresso e facilita a depuração e a otimização.
| Argumento | Predefinição | Descrição |
|---|---|---|
project | 'runs' | Especifica o diretório raiz para salvar as execuções de treinamento. Cada execução é salva em um subdiretório separado. |
name | 'exp' | Define o nome do experimento. Se não for especificado, o YOLO incrementa esse nome para cada execução (por exemplo, exp, exp-2) para evitar sobrescrição. |
exist_ok | False | Determina se deve sobrescrever um diretório de experimento existente. True permite a sobrescriçã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-revocação e amostras de predições para acompanhamento visual do desempenho. |
save | True | Habilita o salvamento de checkpoints de treinamento e pesos finais do modelo. Defina como True para salvar os estados do modelo periodicamente, permitindo a retomada do treinamento ou a implantação do modelo. |
Arquivo de Configuração Personalizado
Carregue um YAML salvo para reutilizar um conjunto completo de argumentos sem passá-los em linha. O argumento cfg substitui os valores de default.yaml, enquanto argumentos adicionais passados junto ainda têm precedência.
| Argumento | Predefinição | Descrição |
|---|---|---|
cfg | None | Caminho para um arquivo YAML cujos valores substituem as entradas do default.yaml. Veja Substituindo Arquivo de Configuração Padrão para um exemplo prático de CLI. |
FAQ
Como posso melhorar o desempenho do meu modelo YOLO durante o treinamento?
Melhore o desempenho ajustando hiperparâmetros como tamanho do lote, taxa de aprendizado, momentum e decaimento de peso. Ajuste as configurações de aumento de dados, selecione o otimizador certo e use técnicas como parada precoce (early stopping) ou precisão mista. Para detalhes, veja 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. - Momentum (
momentum): Acelera vetores de gradiente, amortecendo oscilações. - Tamanho da Imagem (
imgsz): Tamanhos maiores melhoram a precisão, mas aumentam a carga computacional.
Ajuste esses valores 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). 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 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 uma visão geral completa, veja Configurações de Predição e o Guia de Predição.
Por que usar treinamento de precisão mista com modelos YOLO?
O treinamento de 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 cálculos mais rápidos sem perda significativa de precisão. Saiba mais no Guia de Treinamento.