Configuração
As configurações e os hiperparâmetros do YOLO desempenham um papel fundamental no desempenho, velocidade e precisão do modelo. Essas configurações podem afetar o comportamento do modelo em vários estágios, incluindo treinamento, validação e previsão.
Assistir: Dominando o Ultralytics YOLO: Configuração
Assista: Dominando o Ultralytics YOLO: Configuração
Os comandos Ultralytics usam a seguinte sintaxe:
Exemplo
yolo TASK MODE ARGS
from ultralytics import YOLO
# Load a YOLO model from a pre-trained weights file
model = YOLO("yolo11n.pt")
# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)
Onde:
TASK
(opcional) é um de (detect, segment, classify, pose, obb)MODE
(obrigatório) é um de (train, val, predict, export, track, benchmark)ARGS
(opcional) sãoarg=value
pares comoimgsz=640
que substituem os padrões.
Padrão ARG
os valores são definidos nesta página e vêm do cfg/defaults.yaml
arquivo.
Tarefas
Os modelos YOLO da Ultralytics podem executar uma variedade de tarefas de visão computacional, incluindo:
- Detectar: A detecção de objetos identifica e localiza objetos dentro de uma imagem ou vídeo.
- Segmento: A segmentação de instâncias divide uma imagem ou vídeo em regiões correspondentes a diferentes objetos ou classes.
- Classificar: A classificação de imagem prevê o rótulo da classe de uma imagem de entrada.
- Pose: A estimativa de pose identifica objetos e estima seus pontos-chave em uma imagem ou vídeo.
- OBB: Caixas Delimitadoras Orientadas usam caixas delimitadoras rotacionadas, adequadas para imagens de satélite ou médicas.
Argumento | Padrão | Descrição |
---|---|---|
task |
'detect' |
Especifica a tarefa YOLO: detect para detecção de objetos, segment para segmentação, classify para classificação, pose para estimativa de pose, e obb para caixas delimitadoras orientadas. Cada tarefa é adaptada para saídas e problemas específicos na análise de imagem e vídeo. |
Modos
Os modelos YOLO da Ultralytics operam em diferentes modos, cada um projetado para um estágio específico do ciclo de vida do modelo:
- Treinar: Treine um modelo YOLO em um conjunto de dados personalizado.
- Val: Validar um modelo YOLO treinado.
- Prever: Use um modelo YOLO treinado para fazer previsões sobre novas imagens ou vídeos.
- Exportar: Exporte um modelo YOLO para implementação.
- Track: Rastreie objetos em tempo real usando um modelo YOLO.
- Benchmark: Faça o benchmark da velocidade e precisão das exportações YOLO (ONNX, TensorRT, etc.).
Argumento | Padrão | Descrição |
---|---|---|
mode |
'train' |
Especifica o modo de operação do modelo YOLO: train para treinamento do modelo, val para validação, predict para inferência, export para conversão para formatos de implementação, track para rastreamento de objetos, e benchmark para avaliação de desempenho. Cada modo suporta diferentes estágios, desde o desenvolvimento até a implantação. |
Configurações de Treinamento
As configurações de treino para modelos YOLO incluem hiperparâmetros e configurações que afetam o desempenho, a velocidade e a precisão do modelo. As configurações principais incluem o tamanho do lote, a taxa de aprendizagem, o momentum e o decaimento do peso. A escolha do otimizador, da função de perda e da composição do conjunto de dados também afetam o treino. O ajuste e a experimentação são cruciais para um desempenho ideal. Para mais detalhes, consulte a função de ponto de entrada Ultralytics.
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
model |
str |
None |
Especifica o arquivo do modelo para treinamento. Aceita um caminho para um .pt modelo pré-treinado ou um .yaml arquivo de configuração. Essencial para definir a estrutura do modelo ou inicializar os pesos. |
data |
str |
None |
Caminho para o arquivo de configuração do conjunto de dados (por exemplo, coco8.yaml ). Este arquivo contém parâmetros específicos do conjunto de dados, incluindo caminhos para treinamento e dados de validaçãovalidação, nomes de classes e número de classes. |
epochs |
int |
100 |
Número total de épocas de treinamento. Cada época representa uma passagem completa por todo o conjunto de dados. Ajustar este valor pode afetar a duração do treinamento e o desempenho do modelo. |
time |
float |
None |
Tempo máximo de treinamento em horas. Se definido, isso substitui o epochs argumento, permitindo que o treinamento pare automaticamente após a duração especificada. Útil para cenários de treinamento com restrição de tempo. |
patience |
int |
100 |
Número de épocas a esperar sem melhorias nas métricas de validação antes de interromper o treinamento precocemente. Ajuda a prevenir overfitting ao interromper o treinamento quando o desempenho estabiliza. |
batch |
int ou float |
16 |
Tamanho do lote (Batch size), com três modos: definido como um inteiro (por exemplo, batch=16 auto mode para 60% de utilização da memória da GPU (batch=-1 auto mode com fração de utilização especificada (batch=0.70 ). |
imgsz |
int ou list |
640 |
Tamanho da imagem alvo para treinamento. Todas as imagens são redimensionadas para esta dimensão antes de serem inseridas no modelo. Afeta a precisão do modelo e a complexidade computacional. |
save |
bool |
True |
Permite salvar checkpoints de treinamento e pesos do modelo final. Útil para retomar o treinamento ou para o implantação do modelo. |
save_period |
int |
-1 |
Frequência de salvamento dos checkpoints do modelo, especificada em épocas. Um valor de -1 desativa este recurso. Útil para salvar modelos provisórios durante longas sessões de treinamento. |
cache |
bool |
False |
Permite o armazenamento em cache de imagens do conjunto de dados na memória (True /ram armazenamento em disco (disk ou desativa (False ). Melhora a velocidade de treinamento, reduzindo as operações de E/S no disco, ao custo de maior uso de memória. |
device |
int ou str ou list |
None |
Especifica o(s) dispositivo(s) computacional(is) para treinamento: uma única GPU (device=0 várias GPUs (device=[0,1] CPU (device=cpu ), MPS para Apple silicon (device=mps ), ou seleção automática da GPU mais ociosa (device=-1 ) ou várias GPUs ociosas (device=[-1,-1] ) |
workers |
int |
8 |
Número de threads de trabalho para carregamento de dados (por RANK se treinamento Multi-GPU). Influencia a velocidade do pré-processamento de dados e alimentação no modelo, especialmente útil em configurações multi-GPU. |
project |
str |
None |
Nome do diretório do projeto onde as saídas de treinamento são salvas. Permite o armazenamento organizado de diferentes experimentos. |
name |
str |
None |
Nome da execução de treinamento. Usado para criar um subdiretório dentro da pasta do projeto, onde os logs e saídas de treinamento são armazenados. |
exist_ok |
bool |
False |
Se True, permite sobrescrever um diretório de projeto/nome existente. Útil para experimentação iterativa sem a necessidade de limpar manualmente as saídas anteriores. |
pretrained |
bool ou str |
True |
Determina se o treinamento deve começar a partir de um modelo pré-treinado. Pode ser um valor booleano ou um caminho de string para um modelo específico do qual carregar os pesos. Melhora a eficiência do treinamento e o desempenho do modelo. |
optimizer |
str |
'auto' |
Escolha do otimizador para treinamento. As opções incluem SGD , Adam , AdamW , NAdam , RAdam , RMSProp etc., ou auto para seleção automática com base na configuração do modelo. Afeta a velocidade e a estabilidade da convergência. |
seed |
int |
0 |
Define a semente aleatória para o treinamento, garantindo a reprodutibilidade dos resultados em execuções com as mesmas configurações. |
deterministic |
bool |
True |
Força o uso de algoritmo determinístico, garantindo a reprodutibilidade, mas pode afetar o desempenho e a velocidade devido à restrição de algoritmos não determinísticos. |
single_cls |
bool |
False |
Trata todas as classes em conjuntos de dados multiclasse como uma única classe durante o treinamento. Útil para tarefas de classificação binária ou ao focar na presença do objeto em vez da classificação. |
classes |
list[int] |
None |
Especifica uma lista de IDs de classe para treinar. Útil para filtrar e focar apenas em certas classes durante o treinamento. |
rect |
bool |
False |
Ativa o treinamento retangular, otimizando a composição do lote para preenchimento mínimo. Pode melhorar a eficiência e a velocidade, mas pode afetar a precisão do modelo. |
multi_scale |
bool |
False |
Ativa o treinamento multi-escala aumentando/diminuindo imgsz por até um fator de 0.5 durante o treinamento. Treina o modelo para ser mais preciso com múltiplos imgsz durante a inferência. |
cos_lr |
bool |
False |
Utiliza um planejador de taxa de aprendizado de cosseno, ajustando a taxa de aprendizado seguindo uma curva de cosseno ao longo das épocas. Ajuda no gerenciamento da taxa de aprendizado para uma melhor convergência. |
close_mosaic |
int |
10 |
Desativa o aumento de dados de mosaico nas últimas N épocas para estabilizar o treinamento antes da conclusão. Definir como 0 desativa este recurso. |
resume |
bool |
False |
Retoma o treinamento a partir do último checkpoint salvo. Carrega automaticamente os pesos do modelo, o estado do otimizador e a contagem de épocas, continuando o treinamento perfeitamente. |
amp |
bool |
True |
Ativa o treinamento de Precisão Mista Automática (AMP), reduzindo o uso de memória e possivelmente acelerando o treinamento com impacto mínimo na precisão. |
fraction |
float |
1.0 |
Especifica a fração do conjunto de dados a ser usada para treinamento. Permite o treinamento em um subconjunto do conjunto de dados completo, útil para experimentos ou quando os recursos são limitados. |
profile |
bool |
False |
Permite a criação de perfis das velocidades ONNX e TensorRT durante o treinamento, útil para otimizar a implantação do modelo. |
freeze |
int ou list |
None |
Congela as primeiras N camadas do modelo ou as camadas especificadas por índice, reduzindo o número de parâmetros treináveis. Útil para ajuste fino ou transfer learning. |
lr0 |
float |
0.01 |
Taxa de aprendizado inicial (ou seja, SGD=1E-2 , Adam=1E-3 ). Ajustar este valor é crucial para o processo de otimização, influenciando a rapidez com que os pesos do modelo são atualizados. |
lrf |
float |
0.01 |
Taxa de aprendizado final como uma fração da taxa inicial = (lr0 * lrf ), usada em conjunto com os schedulers para ajustar a taxa de aprendizado ao longo do tempo. |
momentum |
float |
0.937 |
Fator de momentum para SGD ou beta1 para otimizadores Adam, influenciando a incorporação de gradientes passados na atualização atual. |
weight_decay |
float |
0.0005 |
Termo de regularização L2, penalizando pesos grandes para evitar overfitting. |
warmup_epochs |
float |
3.0 |
Número de épocas para aquecimento da taxa de aprendizado, aumentando gradualmente a taxa de aprendizado de um valor baixo para a taxa de aprendizado inicial para estabilizar o treinamento no início. |
warmup_momentum |
float |
0.8 |
Momentum inicial para a fase de aquecimento, ajustando-se gradualmente ao momentum definido durante o período de aquecimento. |
warmup_bias_lr |
float |
0.1 |
Taxa de aprendizado para parâmetros de bias durante a fase de aquecimento, ajudando a estabilizar o treinamento do modelo nas épocas iniciais. |
box |
float |
7.5 |
Peso do componente de perda da caixa na função de perda, influenciando quanta ênfase é colocada na previsão precisa das coordenadas da caixa delimitadora. |
cls |
float |
0.5 |
Peso da perda de classificação na função de perda total, afetando a importância da previsão correta da classe em relação a outros componentes. |
dfl |
float |
1.5 |
Peso da perda focal de distribuição, usado em certas versões do YOLO para classificação refinada. |
pose |
float |
12.0 |
Peso da perda de pose em modelos treinados para estimativa de pose, influenciando a ênfase na previsão precisa dos pontos-chave da pose. |
kobj |
float |
2.0 |
Peso da perda de objetividade do ponto-chave em modelos de estimativa de pose, equilibrando a confiança da detecção com a precisão da pose. |
nbs |
int |
64 |
Tamanho nominal do lote para normalização da perda. |
overlap_mask |
bool |
True |
Determina se as máscaras de objeto devem ser mescladas em uma única máscara para treinamento ou mantidas separadas para cada objeto. Em caso de sobreposição, a máscara menor é sobreposta à máscara maior durante a mesclagem. |
mask_ratio |
int |
4 |
Taxa de subamostragem para máscaras de segmentação, afetando a resolução das máscaras usadas durante o treinamento. |
dropout |
float |
0.0 |
Taxa de dropout para regularização em tarefas de classificação, prevenindo o sobreajuste ao omitir aleatoriamente unidades durante o treinamento. |
val |
bool |
True |
Ativa a validação durante o treinamento, permitindo a avaliação periódica do desempenho do modelo em um conjunto de dados separado. |
plots |
bool |
False |
Gera e salva gráficos das métricas de treinamento e validação, bem como exemplos de previsão, fornecendo insights visuais sobre o desempenho do modelo e a progressão do aprendizado. |
Nota sobre as configurações de tamanho do lote (Batch-size)
O batch
argumento oferece três opções de configuração:
- Tamanho Fixo do Batch: Especifique o número de imagens por lote com um número inteiro (por exemplo,
batch=16
). - Modo Automático (60% de Memória da GPU): Use
batch=-1
para ajuste automático para aproximadamente 60% de utilização da memória CUDA. - Modo Automático com Fração de Utilização: Defina uma fração (por exemplo,
batch=0.70
) para ajustar com base no uso especificado de memória da GPU.
Configurações de Predição
As configurações de previsão para modelos YOLO incluem hiperparâmetros e configurações que influenciam o desempenho, a velocidade e a precisão durante a inferência. As configurações principais incluem o limite de confiança, o limite de Supressão Não Máxima (NMS) e o número de classes. O tamanho dos dados de entrada, o formato e os recursos suplementares, como máscaras, também afetam as previsões. Ajustar essas configurações é essencial para um desempenho ideal.
Argumentos de inferência:
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
source |
str |
'ultralytics/assets' |
Especifica a fonte de dados para a inferência. Pode ser um caminho de imagem, arquivo de vídeo, diretório, URL ou ID de dispositivo para feeds ao vivo. Suporta uma ampla gama de formatos e fontes, permitindo uma aplicação flexível em diferentes tipos de entrada. |
conf |
float |
0.25 |
Define o limite mínimo de confiança para as detecções. Objetos detectados com confiança abaixo deste limite serão desconsiderados. Ajustar este valor pode ajudar a reduzir falsos positivos. |
iou |
float |
0.7 |
Limite de Intersecção Sobre União (IoU) para Supressão Não Máxima (NMS). Valores mais baixos resultam em menos detecções, eliminando caixas sobrepostas, útil para reduzir duplicatas. |
imgsz |
int ou tuple |
640 |
Define o tamanho da imagem para inferência. Pode ser um único inteiro 640 para redimensionamento quadrado ou uma tupla (altura, largura). O dimensionamento adequado pode melhorar a detecção precisão e a velocidade de processamento. |
rect |
bool |
True |
Se ativado, preenche minimamente o lado mais curto da imagem até que seja divisível por stride para melhorar a velocidade de inferência. Se desativado, preenche a imagem para um quadrado durante a inferência. |
half |
bool |
False |
Ativa a inferência de meia-precisão (FP16), o que pode acelerar a inferência do modelo em GPUs suportadas com impacto mínimo na precisão. |
device |
str |
None |
Especifica o dispositivo para inferência (por exemplo, cpu , cuda:0 ou 0 ). Permite que os usuários selecionem entre CPU, uma GPU específica ou outros dispositivos de computação para a execução do modelo. |
batch |
int |
1 |
Especifica o tamanho do lote para inferência (só funciona quando a fonte é um diretório, arquivo de vídeo ou .txt arquivo). Um tamanho de lote maior pode fornecer maior throughput, encurtando o tempo total necessário para a inferência. |
max_det |
int |
300 |
Número máximo de detecções permitidas por imagem. Limita o número total de objetos que o modelo pode detectar em uma única inferência, evitando saídas excessivas em cenas densas. |
vid_stride |
int |
1 |
Stride de frames para entradas de vídeo. Permite pular frames em vídeos para acelerar o processamento ao custo da resolução temporal. Um valor de 1 processa cada frame, valores mais altos pulam frames. |
stream_buffer |
bool |
False |
Determina se os frames recebidos devem ser enfileirados para streams de vídeo. Se False , os frames antigos são descartados para acomodar novos frames (otimizado para aplicações em tempo real). Se True , enfileira novos frames em um buffer, garantindo que nenhum frame seja ignorado, mas causará latência se o FPS de inferência for menor que o FPS do stream. |
visualize |
bool |
False |
Ativa a visualização das características do modelo durante a inferência, fornecendo insights sobre o que o modelo está "vendo". Útil para depuração e interpretação do modelo. |
augment |
bool |
False |
Ativa o aumento do tempo de teste (TTA) para previsões, potencialmente melhorando a robustez da detecção ao custo da velocidade de inferência. |
agnostic_nms |
bool |
False |
Ativa a Supressão Não Máxima (NMS) agnóstica à classe, que mescla caixas sobrepostas de diferentes classes. Útil em cenários de detecção multi-classe onde a sobreposição de classes é comum. |
classes |
list[int] |
None |
Filtra as previsões para um conjunto de IDs de classe. Apenas as detecções pertencentes às classes especificadas serão retornadas. Útil para focar em objetos relevantes em tarefas de detecção multi-classe. |
retina_masks |
bool |
False |
Retorna máscaras de segmentação de alta resolução. As máscaras retornadas (masks.data ) corresponderão ao tamanho original da imagem se ativado. Se desativado, elas terão o tamanho da imagem usado durante a inferência. |
embed |
list[int] |
None |
Especifica as camadas das quais extrair vetores de características ou embeddings. Útil para tarefas downstream como clustering ou pesquisa de similaridade. |
project |
str |
None |
Nome do diretório do projeto onde as saídas de previsão são salvas se save estiver ativado. |
name |
str |
None |
Nome da execução da previsão. Usado para criar um subdiretório dentro da pasta do projeto, onde as saídas de previsão são armazenadas se save estiver ativado. |
stream |
bool |
False |
Ativa o processamento com uso eficiente de memória para vídeos longos ou inúmeras imagens, retornando um gerador de objetos Results em vez de carregar todos os frames na memória de uma só vez. |
verbose |
bool |
True |
Controla se deve exibir logs de inferência detalhados no terminal, fornecendo feedback em tempo real sobre o processo de previsão. |
Argumentos de visualização:
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
show |
bool |
False |
Se True , exibe as imagens ou vídeos anotados em uma janela. Útil para feedback visual imediato durante o desenvolvimento ou teste. |
save |
bool |
False or True |
Permite salvar as imagens ou vídeos anotados em um arquivo. Útil para documentação, análise posterior ou compartilhamento de resultados. O padrão é True ao usar a CLI e False ao usar python. |
save_frames |
bool |
False |
Ao processar vídeos, salva frames individuais como imagens. Útil para extrair frames específicos ou para análise detalhada frame a frame. |
save_txt |
bool |
False |
Salva os resultados da detecção em um arquivo de texto, seguindo o formato [class] [x_center] [y_center] [width] [height] [confidence] . Útil para integração com outras ferramentas de análise. |
save_conf |
bool |
False |
Inclui os scores de confiança nos arquivos de texto salvos. Aumenta o detalhe disponível para pós-processamento e análise. |
save_crop |
bool |
False |
Salva imagens cortadas das detecções. Útil para aumento de dataset, análise ou criação de datasets focados para objetos específicos. |
show_labels |
bool |
True |
Exibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados. |
show_conf |
bool |
True |
Exibe o score de confiança para cada detecção junto com o rótulo. Dá uma ideia da certeza do modelo para cada detecção. |
show_boxes |
bool |
True |
Desenha caixas delimitadoras ao redor dos objetos detectados. Essencial para identificação visual e localização de objetos em imagens ou frames de vídeo. |
line_width |
None or int |
None |
Especifica a largura da linha das caixas delimitadoras. Se None , a largura da linha é ajustada automaticamente com base no tamanho da imagem. Fornece personalização visual para clareza. |
Configurações de Validação
As configurações de validação para modelos YOLO envolvem hiperparâmetros e configurações para avaliar o desempenho em um conjunto de dados de validação. Essas configurações influenciam o desempenho, a velocidade e a precisão. As configurações comuns incluem tamanho do lote, frequência de validação e métricas de desempenho. O tamanho e a composição do conjunto de dados de validação, juntamente com a tarefa específica, também afetam o processo.
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
data |
str |
None |
Especifica o caminho para o arquivo de configuração do conjunto de dados (por exemplo, coco8.yaml ). Este arquivo inclui caminhos para dados de validaçãovalidação, nomes de classes e número de classes. |
imgsz |
int |
640 |
Define o tamanho das imagens de entrada. Todas as imagens são redimensionadas para esta dimensão antes do processamento. Tamanhos maiores podem melhorar a precisão para objetos pequenos, mas aumentam o tempo de computação. |
batch |
int |
16 |
Define o número de imagens por lote. Valores mais altos utilizam a memória da GPU de forma mais eficiente, mas exigem mais VRAM. Ajuste com base nos recursos de hardware disponíveis. |
save_json |
bool |
False |
Se True , salva os resultados em um arquivo JSON para análise posterior, integração com outras ferramentas ou envio para servidores de avaliação como o COCO. |
conf |
float |
0.001 |
Define o limite mínimo de confiança para detecções. Valores mais baixos aumentam o recall, mas podem introduzir mais falsos positivos. Usado durante a validação para calcular as curvas de precisão-recall. |
iou |
float |
0.7 |
Define o limite de Intersecção sobre União para Supressão Não Máxima. Controla a eliminação de detecção de duplicados. |
max_det |
int |
300 |
Limita o número máximo de detecções por imagem. Útil em cenas densas para evitar detecções excessivas e gerenciar recursos computacionais. |
half |
bool |
True |
Ativa a computação de meia-precisão (FP16), reduzindo o uso de memória e potencialmente aumentando a velocidade com impacto mínimo na precisão. |
device |
str |
None |
Especifica o dispositivo para validação (cpu , cuda:0 , etc.). Quando None , seleciona automaticamente o melhor dispositivo disponível. Vários dispositivos CUDA podem ser especificados com separação por vírgulas. |
dnn |
bool |
False |
Se True , usa o OpenCV Módulo DNN para inferência de modelo ONNX, oferecendo uma alternativa para PyTorch métodos de inferência. |
plots |
bool |
False |
Quando definido como True , gera e salva gráficos de previsões versus verdade fundamental, matrizes de confusão e curvas PR para avaliação visual do desempenho do modelo. |
classes |
list[int] |
None |
Especifica uma lista de IDs de classe para treinar. Útil para filtrar e focar apenas em certas classes durante a avaliação. |
rect |
bool |
True |
Se True , usa inferência retangular para loteamento, reduzindo o preenchimento e potencialmente aumentando a velocidade e a eficiência ao processar imagens em sua proporção original. |
split |
str |
'val' |
Determina a divisão do conjunto de dados a ser usada para validação (val , test , ou train ). Permite flexibilidade na escolha do segmento de dados para avaliação de desempenho. |
project |
str |
None |
Nome do diretório do projeto onde as saídas de validação são salvas. Ajuda a organizar os resultados de diferentes experimentos ou modelos. |
name |
str |
None |
Nome da execução de validação. Usado para criar um subdiretório dentro da pasta do projeto, onde os logs e saídas de validação são armazenados. |
verbose |
bool |
False |
Se True , exibe informações detalhadas durante o processo de validação, incluindo métricas por classe, progresso do lote e informações de depuração adicionais. |
save_txt |
bool |
False |
Se True , salva os resultados da detecção em arquivos de texto, com um arquivo por imagem, útil para análise posterior, pós-processamento personalizado ou integração com outros sistemas. |
save_conf |
bool |
False |
Se True , inclui valores de confiança nos arquivos de texto salvos quando save_txt está habilitado, fornecendo uma saída mais detalhada para análise e filtragem. |
workers |
int |
8 |
Número de threads de trabalho para carregamento de dados. Valores mais altos podem acelerar o pré-processamento de dados, mas podem aumentar o uso da CPU. Definir como 0 usa o thread principal, o que pode ser mais estável em alguns ambientes. |
augment |
bool |
False |
Ativa a aumentação em tempo de teste (TTA) durante a validação, potencialmente melhorando a precisão da detecção ao custo da velocidade de inferência, executando a inferência em versões transformadas da entrada. |
agnostic_nms |
bool |
False |
Ativa a Supressão Não Máxima agnóstica à classe, que mescla caixas sobrepostas, independentemente de sua classe prevista. Útil para aplicações focadas em instâncias. |
single_cls |
bool |
False |
Trata todas as classes como uma única classe durante a validação. Útil para avaliar o desempenho do modelo em tarefas de deteção binária ou quando as distinções de classe não são importantes. |
Ajustes e experimentações cuidadosas são cruciais para garantir o desempenho ideal e para detectar e prevenir overfitting.
Configurações de Exportação
As configurações de exportação para modelos YOLO incluem configurações para salvar ou exportar o modelo para uso em diferentes ambientes. Essas configurações afetam o desempenho, o tamanho e a compatibilidade. As principais configurações incluem o formato de arquivo exportado (por exemplo, ONNX, TensorFlow SavedModel), o dispositivo de destino (por exemplo, CPU, GPU) e recursos como máscaras. A tarefa do modelo e as restrições do ambiente de destino também afetam o processo de exportação.
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
format |
str |
'torchscript' |
Formato de destino para o modelo exportado, como 'onnx' , 'torchscript' , 'engine' (TensorRT), ou outros. Cada formato permite compatibilidade com diferentes ambientes de implantação. |
imgsz |
int ou tuple |
640 |
Tamanho de imagem desejado para a entrada do modelo. Pode ser um inteiro para imagens quadradas (por exemplo, 640 para 640×640) ou uma tupla (height, width) para dimensões específicas. |
keras |
bool |
False |
Permite a exportação para o formato Keras para TensorFlow SavedModel, proporcionando compatibilidade com o serviço e as APIs do TensorFlow. |
optimize |
bool |
False |
Aplica otimização para dispositivos móveis ao exportar para TorchScript, potencialmente reduzindo o tamanho do modelo e melhorando o desempenho de inferência. Não é compatível com o formato NCNN ou dispositivos CUDA. |
half |
bool |
False |
Ativa a quantização FP16 (meia precisão), reduzindo o tamanho do modelo e potencialmente acelerando a inferência em hardware suportado. Não é compatível com a quantização INT8 ou exportações somente para CPU para ONNX. |
int8 |
bool |
False |
Ativa a quantização INT8, comprimindo ainda mais o modelo e acelerando a inferência com perda mínima de precisão, principalmente para dispositivos de borda. Quando usado com TensorRT, realiza a quantização pós-treinamento (PTQ). |
dynamic |
bool |
False |
Permite tamanhos de entrada dinâmicos para exportações ONNX, TensorRT e OpenVINO, aumentando a flexibilidade no manuseio de diferentes dimensões de imagem. Automaticamente definido para True ao usar TensorRT com INT8. |
simplify |
bool |
True |
Simplifica o grafo do modelo para exportações ONNX com onnxslim , potencialmente melhorando o desempenho e a compatibilidade com os mecanismos de inferência. |
opset |
int |
None |
Especifica a versão do ONNX opset para compatibilidade com diferentes analisadores e tempos de execução ONNX. Se não for definido, usa a versão mais recente suportada. |
workspace |
float ou None |
None |
Define o tamanho máximo do espaço de trabalho em GiB para TensorRT otimizações, equilibrando o uso de memória e o desempenho. Use None para alocação automática pelo TensorRT até ao máximo do dispositivo. |
nms |
bool |
False |
Adiciona a Supressão Não Máxima (NMS) ao modelo exportado quando suportado (ver Formatos de Exportação), melhorando a eficiência do pós-processamento de detecção. Não disponível para modelos end2end. |
batch |
int |
1 |
Especifica o tamanho do lote de inferência do modelo de exportação ou o número máximo de imagens que o modelo exportado processará simultaneamente em predict modo. Para exportações Edge TPU, isso é automaticamente definido como 1. |
device |
str |
None |
Especifica o dispositivo para exportação: GPU (device=0 CPU (device=cpu ), MPS para Apple silicon (device=mps ) ou DLA para NVIDIA Jetson (device=dla:0 ou device=dla:1 ). As exportações do TensorRT usam GPU automaticamente. |
data |
str |
'coco8.yaml' |
Caminho para o conjunto de dados arquivo de configuração (padrão: coco8.yaml ), essencial para a calibração da quantização INT8. Se não for especificado com o INT8 habilitado, um conjunto de dados padrão será atribuído. |
fraction |
float |
1.0 |
Especifica a fração do conjunto de dados a ser usada para a calibração da quantização INT8. Permite calibrar em um subconjunto do conjunto de dados completo, útil para experimentos ou quando os recursos são limitados. Se não for especificado com INT8 habilitado, o conjunto de dados completo será usado. |
Uma configuração bem pensada garante que o modelo exportado seja otimizado para seu caso de uso e funcione efetivamente no ambiente de destino.
Configurações de Soluções
As configurações de configuração das Soluções Ultralytics oferecem flexibilidade para personalizar modelos para tarefas como contagem de objetos, criação de mapas de calor, rastreamento de exercícios, análise de dados, rastreamento de zona, gerenciamento de filas e contagem baseada em região. Essas opções permitem ajustes fáceis para resultados precisos e úteis, adaptados a necessidades específicas.
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
model |
str |
None |
Caminho para o arquivo do modelo Ultralytics YOLO. |
region |
list |
'[(20, 400), (1260, 400)]' |
Lista de pontos que definem a região de contagem. |
show_in |
bool |
True |
Flag para controlar se exibe as contagens de entrada no fluxo de vídeo. |
show_out |
bool |
True |
Flag para controlar se exibe as contagens de saída no fluxo de vídeo. |
analytics_type |
str |
line |
Tipo de gráfico, ou seja, line , bar , area , ou pie . |
colormap |
int |
cv2.COLORMAP_JET |
Mapa de cores a ser usado para o mapa de calor. |
json_file |
str |
None |
Caminho para o arquivo JSON que contém todos os dados de coordenadas de estacionamento. |
up_angle |
float |
145.0 |
Limite de ângulo para a pose 'para cima'. |
kpts |
list[int, int, int] |
'[6, 8, 10]' |
Lista de pontos-chave usados para monitorar exercícios. Esses pontos-chave correspondem a articulações ou partes do corpo, como ombros, cotovelos e pulsos, para exercícios como flexões, barras, agachamentos e exercícios abdominais. |
down_angle |
float |
90.0 |
Limite de ângulo para a pose 'para baixo'. |
blur_ratio |
float |
0.5 |
Ajusta a porcentagem da intensidade do desfoque, com valores no intervalo 0.1 - 1.0 . |
crop_dir |
str |
'cropped-detections' |
Nome do diretório para armazenar detecções recortadas. |
records |
int |
5 |
Contagem total de detecções para acionar um e-mail com o sistema de alarme de segurança. |
vision_point |
tuple[int, int] |
(20, 20) |
O ponto onde a visão rastreará objetos e desenhará caminhos usando a Solução VisionEye. |
source |
str |
None |
Caminho para a fonte de entrada (vídeo, RTSP, etc.). Só utilizável com a interface de linha de comandos (CLI) Solutions. |
figsize |
tuple[int, int] |
(12.8, 7.2) |
Tamanho da figura para gráficos analíticos, como mapas de calor ou gráficos. |
fps |
float |
30.0 |
Frames por segundo usados para cálculos de velocidade. |
max_hist |
int |
5 |
Número máximo de pontos históricos para rastrear por objeto para cálculos de velocidade/direção. |
meter_per_pixel |
float |
0.05 |
Fator de escala usado para converter a distância em pixels para unidades do mundo real. |
max_speed |
int |
120 |
Limite máximo de velocidade em sobreposições visuais (usado em alertas). |
data |
str |
'images' |
Caminho para o diretório de imagens utilizado para a pesquisa de similaridade. |
Configurações de Aumento
As técnicas de aumento de dados são essenciais para melhorar a robustez e o desempenho do modelo YOLO, introduzindo variabilidade nos dados de treinamento, ajudando o modelo a generalizar melhor para dados não vistos. A tabela a seguir descreve o propósito e o efeito de cada argumento de aumento:
Argumento | Tipo | Padrão | Intervalo | Descrição |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
Ajusta a tonalidade da imagem por uma fração da roda de cores, introduzindo variabilidade de cor. Ajuda o modelo a generalizar em diferentes condições de iluminação. |
hsv_s |
float |
0.7 |
0.0 - 1.0 |
Altera a saturação da imagem por uma fração, afetando a intensidade das cores. Útil para simular diferentes condições ambientais. |
hsv_v |
float |
0.4 |
0.0 - 1.0 |
Modifica o valor (brilho) da imagem por uma fração, ajudando o modelo a ter um bom desempenho em várias condições de iluminação. |
degrees |
float |
0.0 |
0.0 - 180 |
Gira a imagem aleatoriamente dentro do intervalo de graus especificado, melhorando a capacidade do modelo de reconhecer objetos em várias orientações. |
translate |
float |
0.1 |
0.0 - 1.0 |
Translação da imagem horizontal e verticalmente por uma fração do tamanho da imagem, auxiliando no aprendizado para detectar objetos parcialmente visíveis. |
scale |
float |
0.5 |
>=0.0 |
Dimensiona a imagem por um fator de ganho, simulando objetos a diferentes distâncias da câmera. |
shear |
float |
0.0 |
-180 - +180 |
Cisalha a imagem por um grau especificado, imitando o efeito de objetos sendo visualizados de diferentes ângulos. |
perspective |
float |
0.0 |
0.0 - 0.001 |
Aplica uma transformação de perspectiva aleatória à imagem, aprimorando a capacidade do modelo de entender objetos no espaço 3D. |
flipud |
float |
0.0 |
0.0 - 1.0 |
Inverte a imagem de cabeça para baixo com a probabilidade especificada, aumentando a variabilidade dos dados sem afetar as características do objeto. |
fliplr |
float |
0.5 |
0.0 - 1.0 |
Inverte a imagem da esquerda para a direita com a probabilidade especificada, útil para aprender objetos simétricos e aumentar a diversidade do conjunto de dados. |
bgr |
float |
0.0 |
0.0 - 1.0 |
Inverte os canais de imagem de RGB para BGR com a probabilidade especificada, útil para aumentar a robustez a ordenação incorreta de canais. |
mosaic |
float |
1.0 |
0.0 - 1.0 |
Combina quatro imagens de treino em uma, simulando diferentes composições de cena e interações de objetos. Altamente eficaz para a compreensão de cenas complexas. |
mixup |
float |
0.0 |
0.0 - 1.0 |
Mistura duas imagens e seus rótulos, criando uma imagem composta. Melhora a capacidade do modelo de generalizar, introduzindo ruído de rótulo e variabilidade visual. |
cutmix |
float |
0.0 |
0.0 - 1.0 |
Combina porções de duas imagens, criando uma mistura parcial enquanto mantém regiões distintas. Melhora a robustez do modelo, criando cenários de oclusão. |
copy_paste |
float |
0.0 |
0.0 - 1.0 |
Apenas Segmentação. Copia e cola objetos entre imagens para aumentar as instâncias de objetos. |
copy_paste_mode |
str |
flip |
- | Apenas segmentação. Especifica o copy-paste estratégia a ser usada. As opções incluem 'flip' e 'mixup' . |
auto_augment |
str |
randaugment |
- | Apenas classificação. Aplica uma política de aumento predefinida ('randaugment' , 'autoaugment' , ou 'augmix' ) para melhorar o desempenho do modelo através da diversidade visual. |
erasing |
float |
0.4 |
0.0 - 0.9 |
Apenas Classificação. Apaga aleatoriamente regiões da imagem durante o treinamento para incentivar o modelo a se concentrar em recursos menos óbvios. |
Ajuste estas configurações para atender aos requisitos do conjunto de dados e da tarefa. Experimentar com diferentes valores pode ajudar a encontrar a estratégia de aumento ideal para o melhor desempenho do modelo.
Configurações de Registro, Checkpoints e Plotagem
O registro, os checkpoints, o plot e o gerenciamento de arquivos são importantes ao treinar um modelo YOLO:
- Registo: Acompanhe o progresso do modelo e diagnostique problemas usando bibliotecas como o TensorBoard ou escrevendo para um ficheiro.
- Checkpoints: Salve o modelo em intervalos regulares para retomar o treinamento ou experimentar diferentes configurações.
- Plotagem: Visualize o desempenho e o progresso do treinamento usando bibliotecas como matplotlib ou TensorBoard.
- Gerenciamento de arquivos: Organize os arquivos gerados durante o treinamento, como checkpoints, arquivos de log e gráficos, para facilitar o acesso e a análise.
A gestão eficaz destes aspetos ajuda a acompanhar o progresso e facilita a depuração e a otimização.
Argumento | Padrão | Descrição |
---|---|---|
project |
'runs' |
Especifica o diretório raiz para salvar as execuções de treinamento. Cada execução é salva em um subdiretório separado. |
name |
'exp' |
Define o nome da experiência. Se não especificado, o YOLO incrementa este nome para cada execução (por exemplo, exp , exp2 ) para evitar sobrescrever. |
exist_ok |
False |
Determina se deve sobrescrever um diretório de experimento existente. True permite sobrescrever; False impede isso. |
plots |
False |
Controla a geração e o salvamento de gráficos de treinamento e validação. Definir para True para criar gráficos como curvas de perda, precisão-recall curvas e previsões de amostra para rastreamento visual do desempenho. |
save |
False |
Ativa o salvamento de checkpoints de treinamento e pesos finais do modelo. Defina como True para salvar os estados do modelo periodicamente, permitindo a retomada do treinamento ou a implantação do modelo. |
FAQ
Como posso melhorar o desempenho do meu modelo YOLO durante o treinamento?
Melhore o desempenho ajustando hiperparâmetros como tamanho do lote, taxa de aprendizado, momentum e decaimento de peso. Ajuste as configurações de aumento de dados, selecione o otimizador correto e use técnicas como parada antecipada ou precisão mista. Para mais detalhes, consulte o Guia de Treinamento.
Quais são os principais hiperparâmetros para a precisão do modelo YOLO?
Os principais hiperparâmetros que afetam a precisão incluem:
- Tamanho do Lote (
batch
): Tamanhos maiores podem estabilizar o treinamento, mas precisam de mais memória. - Taxa de Aprendizado (
lr0
): Taxas menores oferecem ajustes finos, mas uma convergência mais lenta. - Momentum (
momentum
): Acelera vetores gradientes, amortecendo oscilações. - Tamanho da Imagem (
imgsz
): Tamanhos maiores melhoram a precisão, mas aumentam a carga computacional.
Ajuste estes com base no seu conjunto de dados e hardware. Saiba mais em Configurações de Treino.
Como defino a taxa de aprendizado para treinar um modelo YOLO?
A taxa de aprendizado (lr0
) é crucial; comece com 0.01
para SGD ou 0.001
para Otimizador Adam. Monitore as métricas e ajuste conforme necessário. Use schedulers de taxa de aprendizado de cosseno (cos_lr
) ou warmup (warmup_epochs
, warmup_momentum
). Detalhes estão no Guia de Treinamento.
Quais são as configurações de inferência padrão para modelos YOLO?
As configurações padrão incluem:
- Limite de Confiança (
conf=0.25
): Confiança mínima para detecções. - Limite de IoU (
iou=0.7
): Para Supressão Não Máxima (NMS). - Tamanho da Imagem (
imgsz=640
): Redimensiona as imagens de entrada. - Dispositivo (
device=None
): Seleciona CPU ou GPU.
Para uma visão geral completa, consulte as Definições de Previsão e o Guia de Previsão.
Por que usar treinamento de precisão mista com modelos YOLO?
Precisão mista treino (amp=True
) reduz o uso de memória e acelera o treinamento usando FP16 e FP32. É benéfico para GPUs modernas, permitindo modelos maiores e cálculos mais rápidos sem perda significativa de precisão. Saiba mais no Guia de Treinamento.