Configuração#
As definições e os hiperparâmetros do YOLO desempenham um papel fundamental no desempenho, na velocidade e na precisão do modelo. Essas definições podem afetar o comportamento do modelo em várias etapas, incluindo o treino, a validação e a previsão.
Watch: Mastering Ultralytics YOLO: Configuration
Os comandos Ultralytics usam 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=value, comoimgsz=640, que substituem os valores predefinidos.
Os valores predefinidos de ARG são definidos nesta página e provêm do ficheiro cfg/default.yaml.
Tarefas#
Os modelos Ultralytics YOLO podem executar várias tarefas de visão computacional, incluindo:
- Deteção: A deteção de objetos identifica e localiza objetos numa imagem ou vídeo.
- Segmentação: A segmentação de instâncias divide uma imagem ou vídeo em regiões correspondentes a diferentes objetos ou classes.
- Segmentação semântica (
semantic): A segmentação semântica atribui um rótulo de classe a cada pixel de uma imagem para uma compreensão densa da cena. - Profundidade (
depth): A estimativa monocular de profundidade prevê um mapa de profundidade por pixel, em metros, a partir de uma única imagem RGB. - Classificação: A classificação de imagens prevê o rótulo de 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: As caixas delimitadoras orientadas utilizam caixas delimitadoras rodadas, adequadas para imagens de satélite ou médicas.
| Argumento | Predefinição | Descrição |
|---|---|---|
task | 'detect' | Especifica a tarefa do YOLO: detect para deteção de objetos, segment para segmentação de instâncias, semantic para segmentação semântica, depth para estimativa monocular de profundidade, classify para classificação, pose para estimativa de pose e obb para caixas delimitadoras orientadas. Cada tarefa é adaptada a resultados e problemas específicos da análise de imagens e vídeos. |
Modos#
Os modelos Ultralytics YOLO funcionam em diferentes modos, cada um concebido para uma etapa específica do ciclo de vida do modelo:
- Treino: Treina um modelo YOLO num conjunto de dados personalizado.
- Validação: Valida um modelo YOLO treinado.
- Previsão: Usa um modelo YOLO treinado para fazer previsões em novas imagens ou vídeos.
- Exportação: Exporta um modelo YOLO para implementação.
- Rastreamento: Rastreia objetos em tempo real usando um modelo YOLO.
- Benchmark: Avalia a velocidade e a 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 treino do modelo, val para validação, predict para inferência, export para conversão para formatos de implementação, track para rastreamento de objetos e benchmark para avaliação de desempenho. Cada modo suporta diferentes etapas, desde o desenvolvimento até à implementação. |
Definições de treino#
As definições de treino dos modelos YOLO incluem hiperparâmetros e configurações que afetam o desempenho, a velocidade e a precisão do modelo. As principais definições incluem o tamanho do lote, a taxa de aprendizagem, o momentum e o decaimento de pesos. A escolha do otimizador, da função de perda e da composição do conjunto de dados também influencia o treino. O ajuste e a experimentação são essenciais para obter o desempenho ideal. Para mais detalhes, consulta a função de entrada do Ultralytics.
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
model | str | None | Especifica o ficheiro do modelo para o treino. Aceita um caminho para um modelo .pt pré-treinado ou para um ficheiro de configuração .yaml. É essencial para definir a estrutura do modelo ou inicializar os pesos. |
data | str | None | Caminho para o YAML do conjunto de dados (por exemplo, coco8.yaml), que contém os caminhos para os dados de treino e validação, os nomes das classes e o número de classes. A classificação utiliza, em alternativa, um diretório de conjunto de dados ou um nome de conjunto de dados integrado (por exemplo, imagenet10). |
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. Quando definido, substitui o argumento epochs, permitindo que o treino pare automaticamente após a duração especificada. É útil em cenários de treino com restrições de tempo. |
patience | int | 100 | Número de épocas a aguardar sem melhoria nas métricas de validação antes de parar o treino antecipadamente. Ajuda a evitar o sobreajuste, interrompendo o treino quando o desempenho 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 utilizar 60% da memória da GPU (batch=-1) ou modo automático com uma fração de utilização especificada (batch=0.70). |
imgsz | int | 640 | Tamanho-alvo das imagens para o treino. As imagens são redimensionadas para quadrados com lados iguais ao valor especificado (se rect=False), preservando a proporção nos modelos YOLO, mas não no RT-DETR. Afeta a precisão e a complexidade computacional do modelo. |
save | bool | True | Ativa a gravação de checkpoints de treino e dos pesos finais do modelo. É útil para retomar o treino ou para a implementação do modelo. |
save_period | int | -1 | Frequência de gravação dos checkpoints do modelo, especificada em épocas. O valor -1 desativa esta funcionalidade. É útil para guardar modelos intermédios durante sessões de treino longas. |
cache | bool | False | Ativa o armazenamento em cache das imagens do conjunto de dados na memória (True/ram), no disco (disk) ou desativa-o (False). Melhora a velocidade do treino ao reduzir a E/S do 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), várias GPUs (device=[0,1]), CPU (device=cpu), MPS para Apple silicon (device=mps), NPU Huawei Ascend (device=npu:0 ou device=npu:0,1), seleção automática de uma GPU inativa (device=-1) ou de várias GPUs inativas (device=[-1,-1]). |
workers | int | 8 | Número de threads de trabalho para o carregamento de dados (por RANK no treino Multi-GPU). Influencia a velocidade do pré-processamento dos dados e do seu fornecimento ao modelo, sendo especialmente útil em configurações com várias GPUs. |
project | str | None | Nome do diretório do projeto onde são guardadas as saídas do treino. Permite organizar o armazenamento de diferentes experiências. |
name | str | None | Nome da execução de treino. É utilizado para criar um subdiretório na pasta do projeto, onde são guardados os registos e as saídas do treino. |
exist_ok | bool | False | Se True, permite substituir um diretório de projeto/nome existente. É útil para experiências iterativas sem ser necessário limpar manualmente as saídas anteriores. |
save_dir | str | None | Especifica o diretório exato onde são guardadas as saídas da execução, substituindo a combinação project/name. O caminho é utilizado tal como está, sem incremento automático, pelo que as execuções consecutivas reutilizam o mesmo diretório. |
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 texto para os pesos a carregar. pretrained=False treina a partir de pesos inicializados aleatoriamente, mantendo a arquitetura do modelo. |
cls_remap | bool | True | Ao fazer fine-tuning entre conjuntos de dados, copia as linhas da cabeça de classificação pré-treinada para o novo modelo sempre que os nomes das classes correspondem, para que as classes sobrepostas mantenham o respetivo bias aprendido, além dos pesos quando a largura da cabeça não é alterada. Aplica-se tanto quando o número de classes é diferente como quando é igual, mas a ordem das classes muda. |
optimizer | str | 'auto' | Escolha do otimizador para o treino. As opções incluem SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp ou auto para escolher AdamW ou MuSGD com base no número de iterações de treino. Afeta a velocidade e a estabilidade da convergência. |
seed | int | 0 | Define a semente aleatória para o 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 uma saída detalhada durante o treino, apresentando barras de progresso, métricas por época e informações adicionais do treino na consola. |
single_cls | bool | False | Trata todas as classes em conjuntos de dados multiclasses como uma única classe durante o treino. É útil para tarefas de classificação binária ou quando o foco está na presença de objetos, e não na classificação. |
classes | list[int] | None | Especifica uma lista de IDs de classes para o treino. É útil para filtrar classes e concentrar o treino apenas em determinadas classes. |
rect | bool | False | Ativa a estratégia de preenchimento mínimo — as imagens de um lote recebem o mínimo de preenchimento necessário para atingir um tamanho comum, com o lado mais longo igual a imgsz. Pode melhorar a eficiência e a velocidade, mas afetar a precisão do modelo. |
multi_scale | float | 0.0 | Varia aleatoriamente imgsz em cada lote em +/- multi_scale (por exemplo, 0.25 -> 0.75x a 1.25x), arredondando para múltiplos do stride do modelo; 0.0 desativa o treino multiescala. |
cos_lr | bool | False | Utiliza um agendador de taxa de aprendizagem cossenoidal, ajustando a taxa de aprendizagem segundo uma curva cossenoidal ao longo das épocas. Ajuda a gerir a taxa de aprendizagem para obter uma melhor convergência. |
close_mosaic | int | 10 | Desativa a ampliação de dados mosaic nas últimas N épocas para estabilizar o treino antes da conclusão. Definir como 0 desativa esta funcionalidade. |
resume | bool | False | Retoma o treino a partir do último checkpoint guardado. Carrega automaticamente os pesos do modelo, o estado do otimizador e o número da época, continuando o treino sem interrupções. |
amp | bool ou str | True | Define a precisão do treino: True ou "fp16" utiliza FP16, "bf16" utiliza BF16 em dispositivos CUDA compatíveis, e False ou "fp32" utiliza FP32. |
quantize | int ou str | None | Define como 8 (ou "int8") para o treinamento consciente de quantização (QAT) em INT8, que faz o ajuste fino com falsa quantização no loop para que os pesos tolerem a exportação em INT8. Vê o Treinamento Consciente de Quantização. |
fraction | float, int ou list | 1.0 | Subconjunto do conjunto de dados como proporção/contagem ou lista [train, val, test]. 1 significa a divisão completa, os números inteiros superiores a 1 correspondem a contagens de imagens, e apenas a entrada de teste opcional aceita 0/0.0 para significar nenhum. As listas com dois itens mantêm o teste completo. |
profile | bool | False | Ativa a criação de perfis das velocidades de ONNX e TensorRT durante o treino, sendo útil para otimizar a implementação do modelo. |
freeze | int ou list | None | Congela as primeiras N camadas do modelo ou camadas específicas por índice ou nome do módulo (23.cv2, sem o model. inicial), reduzindo o número de parâmetros treináveis. É útil para fine-tuning ou aprendizagem por transferência. |
lr0 | float | 0.01 | Taxa de aprendizagem inicial (ou seja, SGD=1E-2, Adam=1E-3). Ajustar este valor é essencial para o processo de otimização, influenciando a rapidez com que os pesos do modelo são atualizados. |
lrf | float | 0.01 | Taxa de aprendizagem final como fração da taxa inicial = (lr0 * lrf), utilizada em conjunto com agendadores para ajustar a taxa de aprendizagem ao longo do tempo. |
momentum | float | 0.937 | Fator de momentum para SGD ou beta1 para otimizadores Adam, influenciando a incorporação dos gradientes anteriores na atualização atual. |
weight_decay | float | 0.0005 | Termo de regularização L2, que penaliza pesos elevados para evitar o sobreajuste. |
warmup_epochs | float | 3.0 | Número de épocas de aquecimento da taxa de aprendizagem, aumentando gradualmente a taxa de um valor baixo até à taxa inicial para estabilizar o treino nas fases iniciais. |
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 aprendizagem dos parâmetros de bias durante a fase de aquecimento, ajudando a estabilizar o treino do modelo nas épocas iniciais. É definida automaticamente como 0.0 no optimizer='auto' predefinido; por isso, especifica explicitamente um otimizador para a utilizar. |
distill_model | str | None | Caminho para um checkpoint do modelo professor (por exemplo, yolo26x.pt) para destilação de conhecimento. Quando definido, o modelo aluno é treinado com uma perda de destilação adicional orientada pelo professor congelado. |
dis | float | 6.0 | Peso da perda de destilação adicionada às perdas de deteção padrão. Valores mais elevados aumentam a influência da orientação das características do professor. |
box | float | 7.5 | Peso da componente de perda das caixas na função de perda, influenciando a importância atribuída à 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 às outras componentes. |
cls_pw | float | 0.0 | Potência utilizada para ponderar classes e lidar com o desequilíbrio entre classes através da frequência inversa das classes. 0.0 desativa a ponderação de classes, enquanto 1.0 aplica a ponderação de frequência inversa completa. Valores entre 0 e 1 fornecem uma ponderação parcial. |
dfl | float | 1.5 | Peso do termo de regressão da distância das caixas: perda focal de distribuição (DFL) quando a cabeça de deteção utiliza reg_max > 1; uma perda L1 nas distâncias normalizadas das caixas no YOLO26 sem DFL (reg_max: 1). |
pose | float | 12.0 | Peso da perda de pose em modelos treinados para estimativa de pose, influenciando a importância atribuída à previsão precisa dos pontos-chave da pose. |
kobj | float | 1.0 | Peso da perda de objetividade dos pontos-chave nos modelos de estimativa de pose, equilibrando a confiança da deteção e a precisão da pose. |
rle | float | 1.0 | Peso da perda de estimativa de log-verosimilhança residual nos modelos de estimativa de pose, afetando a precisão da localização dos pontos-chave. |
angle | float | 1.0 | Peso da perda angular nos modelos obb, afetando a precisão das previsões dos ângulos das caixas delimitadoras orientadas. |
dlog | float | 1.0 | Peso da perda logarítmica invariante à escala (SILog) nos modelos de estimativa de profundidade, o principal termo responsável pela precisão da profundidade. |
dgrad | float | 0.5 | Peso da perda de gradiente nos modelos de estimativa de profundidade, penalizando erros nas extremidades de profundidade e incentivando limites de superfície mais nítidos. |
dlam | float | 1.0 | Fator de foco na variância da perda SILog nos modelos de estimativa de profundidade. 1.0 torna a perda totalmente invariante à escala, enquanto 0.0 a reduz a um RMSE logarítmico simples. |
nbs | int | 64 | Tamanho nominal do lote para normalização da perda. |
overlap_mask | bool | True | Determina se as máscaras de objetos devem ser combinadas numa única máscara para o treino ou mantidas separadas para cada objeto. Em caso de sobreposição, a máscara menor é colocada sobre a máscara maior durante a combinação. |
mask_ratio | int | 4 | Rácio de redução das máscaras de segmentação, afetando a resolução das máscaras utilizadas durante o treino. |
dropout | float | 0.0 | Taxa de dropout para regularização em tarefas de classificação, evitando o sobreajuste ao omitir unidades aleatoriamente durante o treino. |
val | bool | True | Ativa a validação durante o treino, permitindo a avaliação periódica do desempenho do modelo num conjunto de dados separado. |
nms | bool, opcional | None | Seleciona o cabeçote de inferência usado para validação de época, seleção de checkpoints e paragem antecipada. None ou True utiliza a abordagem de um para muitos com NMS; False utiliza o cabeçote sem NMS quando disponível. Ambos os cabeçotes retêm as suas perdas de treino. |
plots | bool | True | Gera e guarda gráficos das métricas de treino e validação, bem como exemplos de previsões, fornecendo informações visuais sobre o desempenho e a progressão da aprendizagem do modelo. |
compile | bool ou str | False | Ativa a compilação de grafos 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". Recorre ao modo eager com um aviso se não houver suporte. |
channels_last | bool | None | Usa o formato de memória channels_last (NHWC) para convoluções durante o treino. None ativa-o automaticamente em CUDA com o PyTorch 1.11 ou mais recente, exceto no Windows, onde foi medido como sendo mais lento. False desativa-o, e True solicita-o explicitamente. O PyTorch 1.10 e versões anteriores, a CPU e o MPS permanecem em NCHW por predefinição. |
max_det | int | 300 | Máximo de detecções por imagem durante a validação do treinamento. Para detect, segment, pose e OBB, o valor padrão de 300 aumenta para a maior contagem de objetos rotulados de treino/val apenas quando essa contagem excede 300. Outros valores permanecem fixos; exceder o limite aciona um aviso. |
O argumento batch oferece três opções de configuração:
- Tamanho fixo do lote: Especifica o número de imagens por lote com um número inteiro (por exemplo,
batch=16). - Modo automático (60% da memória da GPU): Utiliza
batch=-1para ajustar automaticamente a utilização da memória CUDA para aproximadamente 60%. - Modo automático com fração de utilização: Define uma fração (por exemplo,
batch=0.70) para ajustar com base numa utilização especificada da memória da GPU. - Nenhum ajuste encontrado: Se nenhum tamanho de lote candidato produzir um perfil utilizável, o AutoBatch gera um
RuntimeErrorclaro em vez de recuar silenciosamente para um valor predefinido não relacionado.
Definições de previsão#
As definições de previsão dos modelos YOLO incluem hiperparâmetros e configurações que influenciam o desempenho, a velocidade e a precisão durante a inferência. As principais definições incluem o limiar de confiança, o limiar de supressão não máxima (NMS) e o número de classes. O tamanho e o formato dos dados de entrada, bem como funcionalidades suplementares, como máscaras, também afetam as previsões. Ajustar estas definições é essencial para obter o 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, um ficheiro de vídeo, um diretório, um URL ou um ID de dispositivo para transmissões em direto. Se for omitida, é registado um aviso e o modelo recorre aos recursos de demonstração integrados (ultralytics/assets ou um URL de demonstração para OBB). Suporta uma vasta gama de formatos e fontes, permitindo uma aplicação flexível em diferentes tipos de entrada. |
conf | float | 0.25 | Define o limite mínimo de confiança para as deteções. Os objetos detetados com confiança abaixo deste limite serão ignorados. Ajustar este valor pode ajudar a reduzir falsos positivos. |
iou | float | 0.7 | Limite de Interseção sobre União (IoU) para a Supressão de Não Máximos (NMS). Valores mais baixos resultam em menos deteções ao eliminar caixas sobrepostas, o que é útil para reduzir duplicados. |
imgsz | int ou tuple | 640 | Alvo do letterbox. Um inteiro fornece um N×N quadrado; uma tupla fornece (height, width). Com rect=True, o tensor real pode ser menor do que este alvo devido ao preenchimento de retângulo mínimo. Usa rect=False para um tamanho fixo. Consulta Forma fixa vs. retângulo mínimo. |
rect | bool | True | Se True, usa preenchimento de retângulo mínimo quando possível (batch com a mesma forma e backend compatível). Se False, preenche sempre até ao imgsz completo. Consulta Forma fixa vs. retângulo mínimo. |
quantize | int ou str | None | Precisão de inferência: 16/"fp16" e 32/"fp32"/unset selecionam computação FP16 ou FP32 para modelos PyTorch e TorchScript; outros formatos computam na precisão que o artefato e o tempo de execução selecionam. Em 16, o OpenVINO ainda arredonda a entrada para FP16 no cliente e a expande de volta para FP32, sem alterar o que o tempo de execução calcula. A quantização INT8/PTQ é configurada durante a export, sendo usada posteriormente ao carregar o modelo exportado. Substitui a flag obsoleta half. |
device | str | None | Especifica o dispositivo para a inferência (por exemplo, cpu, cuda:0, 0, npu ou npu:0). Permite selecionar entre CPU, uma GPU específica, NPU Huawei Ascend ou outros dispositivos de computação para executar o modelo. |
dnn | bool | False | Se True, utiliza o módulo DNN do OpenCV em vez do ONNX Runtime para a inferência de modelos ONNX. |
data | str | None | Caminho para um YAML de dataset (por exemplo, coco8.yaml), lido apenas para o seu names e apenas quando o modelo carregado não tem nomes de classes próprios: uma exportação de terceiros ou uma exportação da Ultralytics separada dos metadados que a acompanham. Caso contrário, esse modelo comunica class0, class1 e assim por diante. |
batch | int | 1 | Especifica o tamanho do batch para a inferência (funciona apenas quando a origem é um diretório, um ficheiro de vídeo ou um ficheiro .txt). Um tamanho de batch maior pode proporcionar um débito superior, 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 pode detetar numa única inferência, evitando resultados excessivos em cenas densas. |
vid_stride | int | 1 | Passo de frames para entradas de vídeo. Permite ignorar frames em vídeos para acelerar o processamento, com o custo de reduzir a resolução temporal. Um valor de 1 processa todos os frames; valores superiores ignoram frames. |
stream_buffer | bool | False | Determina se os frames recebidos devem ser colocados numa fila para streams de vídeo. Se False, os frames antigos são descartados para acomodar os novos (otimizado para aplicações em tempo real). Se True, os novos frames são colocados numa fila num buffer, garantindo que nenhum frame é ignorado, mas causando latência se o FPS da inferência for inferior ao FPS do stream. |
visualize | bool | False | Guarda um mapa de calor de ativação das classes junto a cada predição, mostrando quais pixels aumentaram as pontuações das classes previstas. Respeita conf e classes, pelo que classes=[0] mapeia apenas essa classe. Disponível apenas para modelos PyTorch da Ultralytics. |
augment | bool | False | Ativa o aumento em tempo de teste (TTA) para as predições, podendo melhorar a robustez da deteção à custa da velocidade de inferência. Disponível apenas para modelos PyTorch da Ultralytics. |
agnostic_nms | bool | False | Ativa a Supressão Não Máxima (NMS) agnóstica de classes, suprimindo caixas sobrepostas com pontuações mais baixas em diferentes classes, em vez de apenas na mesma classe. Útil em cenários de deteção multi-classe onde a sobreposição de classes é comum. Com a inferência sem NMS (nms=False no YOLO26 ou YOLOv10), isto apenas evita que a mesma deteção apareça com múltiplos rótulos de classe (duplicados de IoU=1.0) e não efetua 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 classes. Apenas serão devolvidas as deteções pertencentes às classes especificadas. É útil para te concentrares nos objetos relevantes em tarefas de deteção multiclasse. |
retina_masks | bool | False | Devolve máscaras de segmentação de alta resolução. Quando ativadas, as máscaras devolvidas (masks.data) corresponderão ao tamanho da imagem original. Quando desativadas, terão o tamanho da imagem utilizado durante a inferência. |
embed | list[int] | None | Especifica as camadas das quais extrair vetores de características ou embeddings. Usa model.embed(source) para embeddings da penúltima camada ou model.predict(source, embed=[layer]) para selecionar camadas específicas. É útil para tarefas posteriores, como agrupamento ou pesquisa por similaridade. Disponível apenas para modelos PyTorch da Ultralytics. |
project | str | None | Nome do diretório do projeto onde os resultados das predições são guardados se save estiver ativado. |
name | str | None | Nome da execução da predição. Utilizado para criar um subdiretório dentro da pasta do projeto, onde os resultados das predições são guardados 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 Results em vez de carregar todos os frames na memória de uma só vez. |
verbose | bool | True | Controla se os registos detalhados da inferência são apresentados no terminal, fornecendo feedback em tempo real sobre o processo de predição. |
compile | bool ou str | False | Ativa a compilação de grafos 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". Recorre ao modo eager com um aviso se não houver suporte. |
channels_last | bool | None | Utiliza o formato de memória channels_last (NHWC) para a inferência nativa do PyTorch. None ativa-o automaticamente em CPUs x86 Linux e Windows com oneDNN ativado e PyTorch 1.13 ou posterior; False desativa-o; e True solicita-o em CPUs x86 ou dispositivos CUDA compatíveis. ARM64, MPS, versões antigas do PyTorch, CPUs sem oneDNN e formatos exportados como TensorRT e ONNX permanecem inalterados. |
nms | bool, opcional | None | Executa inferência de um para muitos com NMS por predefinição (None ou True). Define False para utilizar o cabeçote de um para um sem NMS quando disponível. Vê o guia de Deteção de Ponta a Ponta para obter detalhes. |
Argumentos de visualização:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
show | bool | False | Se True, apresenta as imagens ou vídeos anotados numa janela. É útil para obter feedback visual imediato durante o desenvolvimento ou os testes. |
save | bool | False or True | Ativa a gravação das imagens ou vídeos anotados em ficheiros. É útil para documentação, análises adicionais ou partilha de resultados. O valor predefinido é True ao utilizar a CLI e False ao utilizar Python. |
save_frames | bool | False | Ao processar vídeos, guarda os frames individuais como imagens. É útil para extrair frames específicos ou para uma análise detalhada frame a frame. |
save_txt | bool | False | Guarda os resultados das deteções 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 as pontuações de confiança nos ficheiros de texto guardados. Aumenta o nível de detalhe disponível para pós-processamento e análise. |
save_crop | bool | False | Guarda imagens recortadas das deteções. É útil para aumento de datasets, análise ou criação de datasets focados em objetos específicos. |
show_labels | bool | True | Apresenta etiquetas para cada deteção no resultado visual. Permite compreender imediatamente os objetos detetados. |
show_conf | bool | True | Apresenta a pontuação de confiança de cada deteção junto à etiqueta. Permite compreender o grau de certeza do modelo em cada deteção. |
show_boxes | bool | True | Desenha caixas delimitadoras à volta dos objetos detetados. É essencial para a identificação visual e a localização de objetos em imagens ou fotogramas de vídeo. |
line_width | int or None | None | Especifica a largura das linhas das caixas delimitadoras. Se None, a largura da linha é ajustada automaticamente com base no tamanho da imagem. Permite uma personalização visual para maior 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 dataset de validação. Estas definições influenciam o desempenho, a velocidade e a precisão. As definições comuns incluem o tamanho do batch, a frequência de validação e as métricas de desempenho. O tamanho e a composição do dataset de validação, bem como a tarefa específica, também afetam o processo.
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
data | str | None | Especifica o caminho para o YAML do conjunto de dados (por exemplo, coco8.yaml), que deve incluir o caminho para os dados de validação. A classificação, por sua vez, aceita um diretório de conjunto de dados ou um nome de conjunto de dados integrado (por exemplo, imagenet10). |
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 este valor 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 COCO. Em conjuntos de dados de detecção, também avalia as previsões com faster-coco-eval e relata o mAP de objetos pequenos, médios e grandes, registrado durante o treinamento como metrics/mAP_small(B), metrics/mAP_medium(B) e metrics/mAP_large(B) em results.csv. |
conf | float | 0.001 | Define o limiar mínimo de confiança para as deteções. Valores mais baixos aumentam o recall, mas podem introduzir mais falsos positivos. As curvas precisão-recall usam 0.001 por predefinição; as matrizes de confusão de deteção usam um valor explícito conf, ou 0.25 quando este é omitido. A precisão e o recall resumidos usam a confiança de F1 máximo, pelo que podem diferir dos valores derivados de confusion_matrix.png. Usa 0.01 por predefinição para a validação OBB, de modo a reduzir o uso de memória. |
iou | float | 0.7 | Define o limiar de Interseção sobre União 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 detecções por imagem. Para detect, segment, pose e OBB, se mantido em 300, ele é elevado para a maior contagem de objetos rotulados na divisão validada quando uma imagem a excede, com um aviso; qualquer outro valor é mantido, com um aviso de que o recall pode ser limitado quando uma imagem o excede. |
quantize | int ou str | None | Precisão de validação: 16/"fp16" e 32/"fp32"/unset selecionam computação FP16 ou FP32 para modelos PyTorch e TorchScript; outros formatos computam na precisão que o artefato e o tempo de execução selecionam. Em 16, o OpenVINO ainda arredonda a entrada para FP16 no cliente e a expande de volta para FP32, sem alterar o que o tempo de execução calcula. A quantização INT8/PTQ é configurada durante a export, sendo usada posteriormente ao validar o modelo exportado. Substitui a flag obsoleta half. |
device | str | None | Especifica o dispositivo para a validação (cpu, cuda:0, npu, npu:0, etc.). Quando definido como None, seleciona automaticamente o melhor dispositivo disponível. Podes especificar vários dispositivos CUDA separados por vírgulas. |
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 guarda gráficos de previsões versus valores reais, matrizes de confusão e curvas PR para a avaliação visual do desempenho do modelo. |
classes | list[int] | None | Especifica uma lista de IDs de classes a avaliar. É útil para filtrar classes e focar apenas em determinadas classes durante a avaliação. |
rect | bool | True | Se True, usa inferência retangular para o processamento em lotes, reduzindo o preenchimento e aumentando potencialmente a velocidade e a eficiência ao processar imagens na sua proporção original. É ignorado na validação depth, que estica cada imagem para um quadrado fixo de imgsz em vez de aplicar preenchimento. |
split | str | 'val' | Determina a divisão do conjunto de dados a usar para a validação (val, test ou train). Permite escolher de forma flexível o segmento de dados para a avaliação do desempenho. |
fraction | float, int ou list | 1.0 | Subconjunto da divisão validada. Com uma lista [train, val, test], a entrada correspondente a split se aplica (1 = divisão completa, inteiros acima de 1 = contagens de imagens; entradas omitidas são completas). Um escalar se aplica apenas com split=train; val e test usam então a divisão completa. |
project | str | None | Nome do diretório do projeto onde os resultados da validação são guardados. Ajuda a organizar os resultados de diferentes experiências 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 registos e resultados da validação são armazenados. |
verbose | bool | True | Se True, apresenta informações detalhadas durante o processo de validação, incluindo métricas por classe, progresso dos lotes e informações adicionais de depuração. |
save_txt | bool | False | Se True, guarda os resultados das deteções em ficheiros de texto, com um ficheiro 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 os valores de confiança nos ficheiros de texto guardados quando save_txt está ativado, fornecendo resultados mais detalhados para análise e filtragem. |
workers | int | 8 | Número de threads de trabalho para o 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, o que pode ser mais estável em alguns ambientes. |
augment | bool | False | Ativa o aumento em tempo de teste (TTA) durante a validação, melhorando potencialmente a precisão das deteções à custa da velocidade de inferência, ao executar a inferência em versões transformadas da entrada. Disponível apenas para modelos Ultralytics PyTorch. |
agnostic_nms | bool | False | Ativa a Supressão Não Máxima agnóstica de classes, suprimindo caixas sobrepostas com pontuações mais baixas, independentemente da sua classe prevista. Útil para aplicações centradas em instâncias. Com a inferência sem NMS (nms=False no YOLO26 ou YOLOv10), isto apenas evita que a mesma deteção apareça com múltiplos rótulos de classe (duplicados de IoU=1.0) e não efetua a supressão baseada no 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 entre classes não são importantes. |
visualize | bool | False | Visualiza os valores reais, os verdadeiros positivos, os falsos positivos e os falsos negativos de cada imagem. É útil para depuração e interpretação do modelo. |
show_labels | bool | True | Apresenta as etiquetas de classe nas visualizações de validação quando visualize=True. Define como False para uma visualização mais limpa das correspondências e dos erros. |
show_conf | bool | True | Apresenta as pontuações de confiança nas visualizações de validação quando visualize=True. Define como False para uma visualização mais limpa das correspondências e dos erros. |
compile | bool ou str | False | Ativa a compilação de grafos 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". Recorre ao modo eager com um aviso se não houver suporte. |
channels_last | bool | None | Usa o formato de memória channels_last (NHWC) para a validação nativa do PyTorch. None ativa-o automaticamente em CPUs x86 Linux e Windows com oneDNN ativado e PyTorch 1.13 ou mais recente, False desativa-o e True solicita-o em dispositivos CPU x86 ou CUDA compatíveis. ARM64, MPS, versões mais antigas do PyTorch, CPUs sem oneDNN e formatos exportados permanecem inalterados; a validação durante o treino mantém o esquema de memória do modelo de treino. |
nms | bool, opcional | None | Executa inferência de um para muitos com NMS por predefinição (None ou True). Define False para utilizar o cabeçote de um para um sem NMS quando disponível. Vê o guia de Deteção de Ponta a Ponta para obter detalhes. |
Uma afinação e experimentação cuidadosas são essenciais para garantir um desempenho ideal e detetar e evitar 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 utilização em diferentes ambientes. Estas definições afetam o desempenho, o tamanho e a compatibilidade. As principais definições 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 alvo do modelo exportado, como 'onnx', 'torchscript', 'engine' (TensorRT) ou outros. Cada formato permite a compatibilidade com diferentes ambientes de implementação. |
name | str | None | Nome do alvo de hardware para os formatos que exigem um: arquitetura Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; predefinido como 'hailo8l'), chip Rockchip RKNN (predefinido como 'rk3588'), SoC Huawei Ascend (um --soc_version CANN; predefinido como 'Ascend310B4') ou alvo Qualcomm QNN HTP (predefinido como '73'). É distinto do par de nomes de execução project/name utilizado por outros modos. |
imgsz | int ou tuple | 640 | Tamanho de imagem pretendido para a entrada do modelo. Pode ser um inteiro para imagens quadradas (por exemplo, 640 para 640×640) ou uma tupla (height, width) para dimensões específicas. Quando não é fornecido, uma exportação reutiliza o tamanho de treino registado no checkpoint carregado: os checkpoints oficiais YOLO26 registam 768 para depth, 224 para classify, 1024 para OBB e 640 para as restantes tarefas, enquanto um fine-tune regista o imgsz com que foi treinado. Um modelo criado a partir de um YAML não tem tamanho de treino registado e utiliza 640. |
keras | bool | False | Ativa a exportação para o formato Keras para TensorFlow SavedModel, proporcionando compatibilidade com o serving e as APIs do TensorFlow. |
optimize | bool | False | Ativa uma otimização superior do compilador para DEEPX, reduzindo a latência da inferência e aumentando o tempo de compilação. |
quantize | int ou str | None | Precisão de quantização: 16 (FP16, reduz o tamanho do modelo e pode acelerar a inferência em hardware compatível) ou 8 (INT8/PTQ, comprime ainda mais o modelo com perda mínima de precisão, principalmente para dispositivos de borda; precisa de calibração data/fraction); 32/não definido é FP32. Um ponto de verificação treinado com quantize=8 sempre exporta INT8: onnx e engine exportam a partir dos intervalos que ele carrega sem calibração, e outros formatos ou precisões são rejeitados. Os formatos de exportação que suportam precisão mista de peso/ativação também aceitam a notação 'w8a8'/'w16a16'/'w8a16'/'w8a32'. Substitui as opções obsoletas half/int8 (half=True → 16, int8=True → 8, ainda aceitas com um aviso de obsolescência). Apenas precisões suportadas pelo formato de destino são permitidas (veja abaixo). |
dynamic | bool | False | Permite tamanhos de entrada dinâmicos para exportações TorchScript, ONNX, OpenVINO, TensorRT e CoreML, aumentando a flexibilidade no processamento de dimensões de imagem variáveis. |
simplify | bool | True | Simplifica o grafo ONNX intermédio com onnxslim para as exportações que criam um (consulta Formatos de exportação), podendo melhorar o desempenho e a compatibilidade com motores de inferência. |
opset | int | None | Especifica a versão do opset ONNX para as exportações que criam um grafo ONNX (consulta Formatos de exportação), garantindo compatibilidade com diferentes analisadores e runtimes ONNX. Se não for definida, utiliza a versão suportada mais recente. |
workspace | float ou None | None | Define o tamanho máximo do workspace, em GiB, para otimizações do TensorRT, equilibrando a utilização de memória e o desempenho. Usa None para alocação automática pelo TensorRT até ao máximo do dispositivo. |
nms | bool, opcional | None | None exporta previsões brutas de um para muitos para NMS externo; True incorpora NMS onde suportado; False seleciona o cabeçote sem NMS quando disponível. O NMS incorporado no CoreML suporta deteção, segmentação e pose com formas estáticas. Vê o guia de Deteção de Ponta a Ponta. |
conf | float | None | Limite de confiança utilizado sempre que é gerado NMS durante a exportação: exportações nms=True; exportações de deteção Hailo não end-to-end; e exportações de deteção, pose e segmentação IMX, que forçam internamente nms=True. O valor predefinido é 0.25 quando não definido. |
iou | float | 0.7 | Limite de IoU utilizado sempre que é gerado NMS durante a exportação: exportações nms=True; exportações de deteção Hailo não end-to-end; e exportações de deteção, pose e segmentação IMX, que forçam internamente nms=True. |
max_det | int | 300 | Número máximo de deteções mantidas na saída do modelo exportado. Aplica-se a exportações nms=True em todos os formatos, exceto na deteção CoreML, cuja pipeline NMS nativa não tem limite de deteção, além das exportações de deteção de ponta a ponta sem NMS (YOLO26, YOLOv10, limitadas ao número de âncoras disponíveis) e das exportações de deteção, pose e segmento da IMX. |
agnostic_nms | bool | False | Ativa o NMS independente da classe sempre que o NMS é gerado durante a exportação através do pipeline padrão nms=True, incluindo a própria etapa NMS do CoreML, suprimindo caixas sobrepostas com pontuações inferiores entre classes diferentes, em vez de apenas dentro da mesma classe. Não é respeitado pelas configurações NMS geradas pelo Hailo ou pelo IMX, que não têm uma opção independente da classe e permanecem cientes da classe independentemente desta flag. Também é incorporado nas exportações end-to-end sem NMS (YOLO26, YOLOv10), onde apenas impede que a mesma deteção apareça com vários rótulos de classe (duplicados IoU=1.0), não executando supressão baseada no limite de IoU entre caixas distintas. |
batch | int | 1 | Especifica o tamanho do batch de inferência do modelo exportado ou o número máximo de imagens que o modelo exportado processará simultaneamente no modo predict. Para exportações Edge TPU, é definido automaticamente como 1. |
device | str | None | Especifica o dispositivo para a exportação: GPU (device=0), CPU (device=cpu), MPS para Apple silicon (device=mps), NPU Huawei Ascend (device=npu ou device=npu:0) ou DLA para NVIDIA Jetson (device=dla:0 ou device=dla:1). As exportações TensorRT utilizam automaticamente a GPU, mas o TensorRT 11.0 não suporta DLA. |
verbose | bool | False | Eleva o registo do builder TensorRT para a severidade VERBOSE durante a exportação format='engine'. Os outros formatos de exportação ignoram esta opção. |
data | str | None | Caminho para o YAML do conjunto de dados, essencial para a calibração de quantização INT8; a classificação, por sua vez, aceita um diretório de conjunto de dados ou um nome de conjunto de dados integrado. Se não for especificado com o INT8 ativado, a Ultralytics seleciona um conjunto de dados de calibração específico para a tarefa quando necessário, ou recorre ao conjunto de dados padrão para a tarefa do modelo. Um ponto de verificação treinado com quantize=8 carrega seus próprios intervalos INT8 e não precisa de dados de calibração. |
split | str | 'val' | Divisão do dataset ('train', 'val' ou 'test') utilizada para criar o dataloader de calibração da quantização INT8 a partir de data. |
fraction | float, int ou list | 1.0 | Subconjunto do dataset utilizado para a calibração INT8: uma proporção, uma contagem de imagens ou valores [train, val, test]. 1 significa a divisão completa; inteiros superiores a 1 são contagens de imagens; e apenas a entrada de teste opcional aceita 0/0.0 para significar nenhum. As listas com dois itens deixam test completo. |
Uma configuração cuidadosa garante que o modelo exportado está otimizado para o seu caso de utilização e funciona eficazmente no ambiente de destino.
Definições de soluções#
As definições de configuração das soluções da Ultralytics oferecem flexibilidade para personalizar modelos para tarefas como contagem de objetos, criação de mapas de calor, acompanhamento de treinos, análise de dados, acompanhamento de zonas, gestão de filas e contagem baseada em regiões. Estas opções permitem ajustes fáceis para obter 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 tuplos (x, y) ou um dicionário que associa nomes de regiões a listas de pontos para várias regiões (apenas RegionCounter). Quando None, as soluções que requerem uma região utilizam uma predefinição. |
show_in | bool | True | Sinalizador que controla se as contagens de entradas são apresentadas na transmissão de vídeo. |
show_out | bool | True | Sinalizador que controla se as contagens de saídas são apresentadas na transmissão de vídeo. |
analytics_type | str | 'line' | Tipo de gráfico, isto é, line, bar, area ou pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mapa de cores a utilizar no mapa de calor. |
line_width | int | 2 | Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução. |
verbose | bool | True | Ativa o registo por fotograma da solução, incluindo a forma da entrada, as contagens por classe e a velocidade de processamento. A chamada de rastreamento permanece sempre silenciosa. |
json_file | str | None | Caminho para o ficheiro JSON que contém todos os dados das coordenadas de estacionamento. |
up_angle | float | 145.0 | Limiar do ângulo para a pose "up". |
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 exercícios abdominais. |
down_angle | int | 90 | Limiar do ângulo para a pose "down". |
blur_ratio | float | 0.5 | Ajusta a percentagem de intensidade da desfocagem, com valores no intervalo 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Nome do diretório para armazenar as deteções recortadas. |
records | int | 5 | Contagem total de deteções necessária para acionar um e-mail com o sistema de alarme de segurança. |
vision_point | tuple[int, int] | (20, 20) | O ponto onde a visão rastreia objetos e desenha trajetórias usando a solução VisionEye. |
source | str | None | Caminho para a fonte de entrada (vídeo, RTSP, etc.). Só pode ser usado com a interface de linha de comandos (CLI) das soluções. |
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 | Fotogramas por segundo usados nos cálculos de velocidade. |
max_hist | int | 5 | Número máximo de pontos históricos 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 em unidades do mundo real. |
max_speed | int | 120 | Limite máximo de velocidade nas sobreposições visuais (usado nos alertas). |
data | str | 'images' | Caminho para o diretório de imagens usado na pesquisa por semelhança. |
imgsz | int | 640 | Tamanho da imagem de entrada para a inferência do modelo. |
Definições de aumento#
As técnicas de aumento de dados são essenciais para melhorar a robustez e o desempenho dos modelos YOLO, introduzindo variabilidade nos dados de treino e ajudando o modelo a generalizar melhor para dados não observados. A tabela seguinte descreve o objetivo e o efeito de cada argumento de aumento:
| 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 tonalidade da imagem por uma fração do círculo cromático, introduzindo variabilidade de cor. Ajuda o modelo a generalizar em diferentes condições de iluminação. Para classify, isto aplica-se apenas quando auto_augment=None. |
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. Para classify, isto aplica-se apenas quando auto_augment=None. |
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 funcionar bem em várias condições de iluminação. Para classify, isto aplica-se apenas quando auto_augment=None. |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | Roda aleatoriamente a imagem dentro do intervalo de graus especificado, melhorando a capacidade do modelo para 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 o modelo a aprender a detetar objetos parcialmente visíveis. |
scale | float | tuple | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1 ou uma tupla (min, max) explícita (não para classify) | Escala a imagem por um fator de ganho, simulando objetos a diferentes distâncias da câmara. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | Aplica cisalhamento à imagem pelo número de graus especificado, imitando o efeito de observar objetos de diferentes ângulos. |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 0.001 | Aplica uma transformação de perspetiva aleatória à imagem, melhorando a capacidade do modelo para compreender objetos num espaço 3D. |
flipud | float | 0 | detect, segment, semantic, depth, classify, pose, obb | 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, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Inverte a imagem da esquerda para a direita com a probabilidade especificada, sendo útil para aprender objetos simétricos e aumentar a diversidade do dataset. |
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, sendo útil para aumentar a robustez a uma ordenação incorreta dos canais. |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Combina quatro imagens de treino numa só, simulando diferentes composições de cenas e interações entre 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 os respetivos rótulos, criando uma imagem composta. Melhora a capacidade de generalização do modelo 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. Melhora a robustez do modelo ao criar cenários de oclusão. |
copy_paste | float | 0 | segment, obb | 0.0 - 1.0 | Fração dos objetos elegíveis colados; flip espelha-os dentro da imagem, enquanto mixup também utiliza o valor como probabilidade de aplicação entre imagens. |
copy_paste_mode | str | flip | segment, obb | - | Especifica a estratégia copy-paste a utilizar. 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 treino para incentivar o modelo a concentrar-se em características menos óbvias. |
augmentations | list | None | detect, segment, semantic, depth, pose, obb | - | Transformações Albumentations personalizadas para aumento de dados avançado (apenas API Python). Aceita uma lista de objetos de transformação para necessidades de aumento especializadas. |
Ajusta estas definições para satisfazer os requisitos do dataset e da tarefa. Experimentar valores diferentes pode ajudar a encontrar a estratégia de aumento ideal para obter o melhor desempenho do modelo.
Definições de registos, checkpoints e gráficos#
Os registos, checkpoints, gráficos e a gestão de ficheiros são importantes ao treinar um modelo YOLO:
- Registos: acompanha o progresso do modelo e diagnostica problemas utilizando bibliotecas como o TensorBoard ou escrevendo num ficheiro.
- Checkpoints: guarda o modelo em intervalos regulares para retomar o treino ou experimentar diferentes configurações.
- Gráficos: visualiza o desempenho e o progresso do treino utilizando bibliotecas como Matplotlib ou TensorBoard.
- Gestão de ficheiros: organiza os ficheiros gerados durante o treino, como checkpoints, ficheiros de registo e gráficos, para facilitar o acesso e a análise.
A gestão eficaz destes aspetos ajuda a acompanhar o progresso e facilita a depuração e a otimização.
| Argumento | Predefinição | Descrição |
|---|---|---|
project | None | Especifica o diretório raiz para guardar as execuções de treino. Se não for especificado, as execuções são guardadas em runs/<task>. Cada execução é guardada num subdiretório separado. |
name | None | Define o nome da experiência. Se não for especificado, o YOLO utiliza o nome do modo e incrementa-o em cada execução (por exemplo, train, train-2) para evitar substituições. |
exist_ok | False | Determina se deve substituir um diretório de experiência existente. True permite a substituição; False impede-a. |
plots | True | Controla a geração e o armazenamento de gráficos de treino e validação. Define como True para criar gráficos como curvas de perda, curvas de precisão-revocação e previsões de amostras para acompanhar visualmente o desempenho. |
save | True | Ativa o armazenamento de checkpoints de treino e dos pesos finais do modelo. Define como True para guardar periodicamente os estados do modelo, permitindo retomar o treino ou implementar o modelo. |
Ficheiro de configuração personalizado#
Carrega um YAML guardado para reutilizar um conjunto completo de argumentos sem os passar inline. O argumento cfg substitui os valores de default.yaml, enquanto os argumentos adicionais passados em conjunto continuam a ter precedência.
| Argumento | Predefinição | Descrição |
|---|---|---|
cfg | None | Caminho para um ficheiro YAML cujos valores substituem as entradas de default.yaml. Consulta Substituir o ficheiro de configuração predefinido para veres um exemplo prático de CLI. |
Perguntas frequentes#
Melhora o desempenho ajustando hiperparâmetros como o tamanho do lote, a taxa de aprendizagem, o momentum e o decaimento dos pesos. Ajusta as definições de aumento de dados, seleciona o otimizador adequado e usa técnicas como a paragem antecipada ou a precisão mista. Para obteres mais detalhes, consulta o Guia de treino.
Os principais hiperparâmetros que afetam a precisão incluem:
- Tamanho do lote (
batch): Tamanhos maiores podem estabilizar o treino, mas requerem mais memória. - Taxa de aprendizagem (
lr0): Taxas menores permitem ajustes mais precisos, mas resultam numa convergência mais lenta. - Momentum (
momentum): Acelera os vetores de gradiente, amortecendo as oscilações. - Tamanho da imagem (
imgsz): Tamanhos maiores melhoram a precisão, mas aumentam a carga computacional.
Ajusta estes valores com base no teu conjunto de dados e hardware. Obtém mais informações em Definições de treino.
- Tamanho do lote (
A taxa de aprendizagem (
lr0) é crucial; começa com0.01para SGD ou0.001para o otimizador Adam. Monitoriza as métricas e ajusta conforme necessário. Usa escalonadores de taxa de aprendizagem cossenoidais (cos_lr) ou o aquecimento (warmup_epochs,warmup_momentum). Os detalhes estão no Guia de treino.As definições predefinidas incluem:
- Limiar de confiança (
conf=0.25): Confiança mínima para as deteções. - Limiar de IoU (
iou=0.7): 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 obteres uma visão geral completa, consulta Definições de predição e o Guia de predição.
- Limiar de confiança (
O treino de precisão mista (
amp=True) reduz o uso de memória e acelera o treino utilizando FP16 e FP32. É benéfico para GPUs modernas, permitindo usar modelos maiores e realizar cálculos mais rápidos sem uma perda significativa de precisão. Obtém mais informações no Guia de treino.