Saltar para o conteúdo

Configuração

As definições YOLO e os hiperparâmetros desempenham um papel crítico no desempenho, velocidade e precisão do modelo. Estas definições podem afetar o comportamento do modelo em várias fases, incluindo formação, validação e previsão.

Ver: Dominar a Ultralytics YOLO: Configuração



Ver: Mastering Ultralytics YOLO : Configuração

Ultralytics utilizam 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:

Predefinição ARG Os valores são definidos nesta página e provêm do cfg/defaults.yaml ficheiro.

Tarefas

Os modelos Ultralytics YOLO podem executar uma variedade de tarefas de visão computacional, incluindo:

Argumento Predefinição Descrição
task 'detect' Especifica a tarefa YOLO : detect para deteção de objectos, segment para segmentação, classify para classificação, pose para a estimativa da pose, e obb para caixas delimitadoras orientadas. Cada tarefa é adaptada a resultados e problemas específicos na análise de imagens e vídeos.

Guia de tarefas

Modos

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

  • Treinar: Treinar um modelo YOLO num conjunto de dados personalizado.
  • Val: Validar um modelo YOLO treinado.
  • Prever: Utilizar um modelo YOLO treinado para fazer previsões sobre novas imagens ou vídeos.
  • Exportar: Exportar um modelo YOLO para implantação.
  • Seguir: Localizar objectos em tempo real utilizando um modelo YOLO .
  • Referência: Avaliar a velocidade e a precisão das exportações YOLO ONNX, TensorRT, etc.).
Argumento Predefinição Descrição
mode 'train' Especifica o modo de funcionamento do modelo YOLO : train para o treino do modelo, val para validação, predict para inferência, export para converter para formatos de implantação, track para o seguimento de objectos, e benchmark para avaliação do desempenho. Cada modo suporta diferentes fases, desde o desenvolvimento até à implementação.

Guia de modos

Definições do comboio

As definições de treino para os modelos YOLO incluem hiperparâmetros e configurações que afectam o desempenho, a velocidade e a precisão do modelo. As principais definições incluem o tamanho do lote, a taxa de aprendizagem, o momento e a diminuição do peso. A escolha do optimizador, a função de perda e a composição do conjunto de dados também têm impacto no treino. O ajuste e a experimentação são cruciais para um desempenho ótimo. Para obter mais detalhes, consulte a função de ponto de entradaUltralytics .

Argumento Tipo Predefinição Descrição
model str None Especifica o ficheiro de modelo para treino. Aceita um caminho para um arquivo .pt modelo pré-treinado ou um .yaml ficheiro de configuração. Essencial para definir a estrutura do modelo ou inicializar os pesos.
data str None Caminho para o ficheiro de configuração do conjunto de dados (por exemplo, coco8.yaml). Este ficheiro contém parâmetros específicos do conjunto de dados, incluindo caminhos para o treino e dados de validação, nomes de classes e número de classes.
epochs int 100 Número total de épocas de treino. Cada época representa uma passagem completa por todo o conjunto de dados. O ajuste deste valor pode afetar a duração do treino e o desempenho do modelo.
time float None Tempo máximo de formação em horas. Se definido, este valor substitui o epochs permitindo que a formação pare automaticamente após a duração especificada. Útil para cenários de formação 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 atinge um patamar.
batch int 16 Tamanho do lote, com três modos: definido como um número inteiro (por exemplo, batch=16), modo automático para 60% de utilização da memória GPU (batch=-1), ou modo automático com fração de utilização especificada (batch=0.70).
imgsz int ou list 640 Tamanho da imagem alvo para treino. Todas as imagens são redimensionadas para esta dimensão antes de serem introduzidas no modelo. Afecta a precisão do modelo e a complexidade computacional.
save bool True Permite guardar os pontos de controlo de formação e os pesos finais do modelo. Útil para retomar o treino ou a implementação do modelo.
save_period int -1 Frequência de gravação dos pontos de controlo do modelo, especificada em épocas. Um valor de -1 desactiva esta funcionalidade. Útil para guardar modelos provisórios durante longas sessões de treino.
cache bool False Ativa a colocação em cache de imagens de conjuntos de dados na memória (True/ram), no disco (disk), ou desactiva-o (False). Melhora a velocidade de formação reduzindo as E/S do disco à custa de uma maior utilização da memória.
device int ou str ou list None Especifica o(s) dispositivo(s) computacional(ais) para a formação: um único GPU (device=0), várias GPUs (device=0,1), CPU (device=cpu), ou MPS para silício Apple (device=mps).
workers int 8 Número de threads de trabalho para carregamento de dados (por RANK se Multi-GPU training). Influencia a velocidade de pré-processamento dos dados e de alimentação do modelo, especialmente útil em configurações multiGPU .
project str None Nome do diretório do projeto onde são guardados os resultados da formação. Permite o armazenamento organizado de diferentes experiências.
name str None Nome da ação de formação. Utilizado para criar uma subdiretoria na pasta do projeto, onde são armazenados os registos e resultados da formação.
exist_ok bool False Se Verdadeiro, permite a substituição de 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 treino deve ser iniciado a partir de um modelo pré-treinado. Pode ser um valor booleano ou um caminho de cadeia de caracteres para um modelo específico a partir do qual carregar pesos. Melhora a eficiência do treinamento e o desempenho do modelo.
optimizer str 'auto' Escolha do optimizador para a formação. 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. Afecta a velocidade de convergência e a estabilidade.
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 Obriga à utilização de algoritmos determinísticos, 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 multi-classe como uma única classe durante o treino. Útil para tarefas de classificação binária ou quando se concentra na presença de objectos em vez de na classificação.
classes list[int] None Especifica uma lista de IDs de classe para treinar. Útil para filtrar e concentrar-se apenas em determinadas classes durante o treino.
rect bool False Permite a formação retangular, optimizando a composição do lote para um preenchimento mínimo. Pode melhorar a eficiência e a velocidade, mas pode afetar a precisão do modelo.
multi_scale bool False Permite a formação em várias escalas através do aumento/diminuição imgsz até um fator de 0.5 durante o treino. Treina o modelo para ser mais exato com múltiplos imgsz durante a inferência.
cos_lr bool False Utiliza um programador de taxa de aprendizagem cosseno, ajustando a taxa de aprendizagem seguindo uma curva cosseno ao longo de épocas. Ajuda a gerir a taxa de aprendizagem para uma melhor convergência.
close_mosaic int 10 Desactiva o aumento dos dados do mosaico nas últimas N épocas para estabilizar a formação antes da conclusão. Definir como 0 desactiva esta funcionalidade.
resume bool False Retoma o treino a partir do último ponto de controlo guardado. Carrega automaticamente os pesos do modelo, o estado do optimizador e a contagem de épocas, continuando o treino sem problemas.
amp bool True Permite a formação automática de precisão mista (AMP), reduzindo a utilização de memória e possivelmente acelerando a formação com um impacto mínimo na exatidão.
fraction float 1.0 Especifica a fração do conjunto de dados a utilizar para treino. Permite o treino num subconjunto do conjunto de dados completo, útil para experiências ou quando os recursos são limitados.
profile bool False Permite a criação de perfis de ONNX e TensorRT velocidades durante a formação, útil para otimizar a implementação do modelo.
freeze int ou list None Congela as primeiras N camadas do modelo ou camadas especificadas por índice, reduzindo o número de parâmetros treináveis. Útil para ajuste fino ou aprendizagem por transferência.
lr0 float 0.01 Taxa de aprendizagem inicial (i.e. SGD=1E-2, Adam=1E-3). O ajuste deste valor é crucial para o processo de otimização, influenciando a rapidez com que os pesos do modelo são actualizados.
lrf float 0.01 Taxa de aprendizagem final como fração da taxa inicial = (lr0 * lrf), utilizado em conjunto com programadores para ajustar a taxa de aprendizagem ao longo do tempo.
momentum float 0.937 Fator de momento para SGD ou beta1 para optimizadores Adam, que influencia a incorporação de gradientes anteriores na atualização atual.
weight_decay float 0.0005 Termo de regularização L2, que penaliza os pesos grandes para evitar o sobreajuste.
warmup_epochs float 3.0 Número de épocas para aquecimento da taxa de aprendizagem, aumentando gradualmente a taxa de aprendizagem de um valor baixo para a taxa de aprendizagem inicial para estabilizar a formação numa fase inicial.
warmup_momentum float 0.8 Momento inicial para a fase de aquecimento, ajustando-se gradualmente ao momento definido durante o período de aquecimento.
warmup_bias_lr float 0.1 Taxa de aprendizagem para parâmetros de polarização durante a fase de aquecimento, ajudando a estabilizar o treinamento do modelo nas épocas iniciais.
box float 7.5 Peso do componente de perda de caixa na função de perda, influenciando o grau de ênfase colocado na previsão exacta das coordenadas da caixa delimitadora.
cls float 0.5 Peso da perda de classificação na função de perda total, afectando a importância da previsão correta da classe em relação a outros componentes.
dfl float 1.5 Peso da perda focal da distribuição, utilizado em determinadas versões de YOLO para uma classificação fina.
pose float 12.0 Peso da perda de pose nos modelos treinados para a estimativa de pose, influenciando a ênfase na previsão exacta dos pontos-chave da pose.
kobj float 2.0 Peso da perda de objetividade do ponto-chave nos modelos de estimativa da pose, equilibrando a confiança na deteçã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 fundidas numa única máscara para treino ou mantidas separadas para cada objeto. Em caso de sobreposição, a máscara mais pequena é sobreposta à máscara maior durante a fusão.
mask_ratio int 4 Rácio de redução da amostra para máscaras de segmentação, que afecta a resolução das máscaras utilizadas durante a formação.
dropout float 0.0 Taxa de desistência para regularização em tarefas de classificação, evitando o sobreajuste através da omissão aleatória de unidades durante o treino.
val bool True Permite a validação durante a formação, permitindo a avaliação periódica do desempenho do modelo num conjunto de dados separado.
plots bool False Gera e guarda gráficos de métricas de treino e validação, bem como exemplos de previsão, fornecendo informações visuais sobre o desempenho do modelo e a progressão da aprendizagem.

Nota sobre as definições de tamanho de lote

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

  • Tamanho fixo do lote: Especificar o número de imagens por lote com um número inteiro (por exemplo, batch=16).
  • Modo automático (60% GPU Memória): Utilizar 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: Definir uma fração (por exemplo, batch=0.70) para ajustar com base numa utilização de memória GPU especificada.

Guia do comboio

Prever definições

As definições de previsão para os 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 dos dados de entrada, o formato e as caraterísticas suplementares, como as máscaras, também afectam as previsões. O ajuste destas definições é essencial para um desempenho ótimo.

Argumentos de inferência:

Argumento Tipo Predefinição Descrição
source str 'ultralytics/assets' Especifica a fonte de dados para inferência. Pode ser um caminho de imagem, ficheiro de vídeo, diretório, URL ou ID de dispositivo para feeds em direto. 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 detecções. Os objectos detectados com confiança inferior a este limite serão ignorados. O ajuste deste valor pode ajudar a reduzir os falsos positivos.
iou float 0.7 Limiar de Intersecção sobre União (IoU) para Supressão Não Máxima (NMS). Valores mais baixos resultam em menos detecções através da eliminação de caixas sobrepostas, útil para reduzir duplicados.
imgsz int ou tuple 640 Define o tamanho da imagem para inferência. Pode ser um único número inteiro 640 para redimensionamento quadrado ou uma tupla (altura, largura). O dimensionamento correto pode melhorar a deteção exatidão e velocidade de processamento.
half bool False Permite a inferência de meia-precisão (FP16), que pode acelerar a inferência de modelos em GPUs compatíveis com um impacto mínimo na precisão.
device str None Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite aos utilizadores selecionar entre CPU, um GPU específico, 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, ficheiro de vídeo ou .txt ficheiro). Uma maior dimensão do lote pode proporcionar um maior rendimento, reduzindo 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 objectos que o modelo pode detetar numa única inferência, evitando resultados excessivos em cenas densas.
vid_stride int 1 Passagem de fotogramas para entradas de vídeo. Permite saltar fotogramas em vídeos para acelerar o processamento à custa da resolução temporal. Um valor de 1 processa todos os fotogramas, valores mais elevados saltam fotogramas.
stream_buffer bool False Determina se os quadros de entrada devem ser colocados em fila de espera para fluxos de vídeo. Se FalseSe a transmissão de quadros antigos for interrompida para acomodar quadros novos (optimizados para aplicações em tempo real). Se TrueO sistema de inferência, que coloca novos fotogramas em fila de espera numa memória intermédia, garante que nenhum fotograma é ignorado, mas causará latência se o FPS da inferência for inferior ao FPS do fluxo.
visualize bool False Ativa a visualização das caraterísticas do modelo durante a inferência, fornecendo informações sobre o que o modelo está a "ver". Útil para depuração e interpretação de modelos.
augment bool False Permite o aumento do tempo de teste (TTA) para previsões, melhorando potencialmente a robustez da deteção à custa da velocidade de inferência.
agnostic_nms bool False Permite a Supressão Não Máxima (NMS) independente da classe, que funde caixas sobrepostas de classes diferentes. Útil em cenários de deteçã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 se concentrar em objectos relevantes em tarefas de deteção multi-classe.
retina_masks bool False Devolve máscaras de segmentação de alta resolução. As máscaras devolvidas (masks.data) corresponderão ao tamanho da imagem original se estiverem activados. Se estiverem desactivados, terão o tamanho de imagem utilizado durante a inferência.
embed list[int] None Especifica as camadas a partir das quais se devem extrair vectores de caraterísticas ou embeddings. Útil para tarefas a jusante como o agrupamento ou a pesquisa de semelhanças.
project str None Nome do diretório do projeto onde são guardados os resultados da previsão, se save está ativado.
name str None Nome da execução da previsão. Utilizado para criar um subdiretório dentro da pasta do projeto, onde os resultados da previsão são armazenados se save está ativado.
stream bool False Permite um processamento eficiente em termos de memória para vídeos longos ou numerosas imagens, devolvendo um gerador de objectos de resultados em vez de carregar todos os fotogramas na memória de uma só vez.
verbose bool True Controla se devem ser apresentados registos de inferência detalhados no terminal, fornecendo feedback em tempo real sobre o processo de previsão.

Argumentos de visualização:

Argumento Tipo Predefinição Descrição
show bool False Se Trueapresenta as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
save bool False or True Permite guardar as imagens ou vídeos anotados num ficheiro. Útil para documentação, análise posterior ou partilha de resultados. A predefinição é True quando se utiliza CLI e False quando se utiliza Python.
save_frames bool False Ao processar vídeos, guarda fotogramas individuais como imagens. Útil para extrair fotogramas específicos ou para uma análise detalhada fotograma a fotograma.
save_txt bool False Guarda os resultados da deteção num ficheiro de texto, seguindo o formato [class] [x_center] [y_center] [width] [height] [confidence]. Útil para integração com outras ferramentas de análise.
save_conf bool False Inclui pontuações de confiança nos ficheiros de texto guardados. Aumenta o detalhe disponível para pós-processamento e análise.
save_crop bool False Guarda imagens recortadas de detecções. Útil para aumentar o conjunto de dados, analisar ou criar conjuntos de dados específicos para objectos específicos.
show_labels bool True Apresenta etiquetas para cada deteção na saída visual. Proporciona uma compreensão imediata dos objectos detectados.
show_conf bool True Apresenta a pontuação de confiança para cada deteção ao lado da etiqueta. Dá uma ideia do grau de certeza do modelo para cada deteção.
show_boxes bool True Desenha caixas delimitadoras em torno dos objectos detectados. Essencial para a identificação visual e localização de objectos em imagens ou fotogramas de vídeo.
line_width None or int None Especifica a largura da linha das caixas delimitadoras. Se NoneA largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza.
font_size float None Tamanho do tipo de letra do texto para anotações. Escala automaticamente com o tamanho da imagem se definido para None.
font str 'Arial.ttf' Nome da fonte ou caminho para anotações de texto na visualização.
pil bool False Devolve a imagem como um objeto PIL Image em vez de uma matriz numpy.
kpt_radius int 5 Raio dos pontos-chave quando se visualizam os resultados da estimativa da pose.
kpt_line bool True Ligue os pontos-chave com linhas ao visualizar a estimativa da pose.
masks bool True Exibir máscaras de segmentação na saída da visualização.
probs bool True Incluir probabilidades de classificação na visualização.
filename str None Caminho e nome do ficheiro para guardar a imagem anotada quando save=True.
color_mode str 'class' Especifica o modo de coloração para visualizações, por exemplo, "instância" ou "classe".
txt_color tuple[int, int, int] (255, 255, 255) Cor de texto RGB para anotações de tarefas de classificação.

Guia de previsão

Definições de validação

As definições de validação dos modelos YOLO envolvem hiperparâmetros e configurações para avaliar o desempenho num conjunto de dados de validação. Estas definições influenciam o desempenho, a velocidade e a precisão. As definições comuns incluem o tamanho do lote, a frequência de validação e as métricas de desempenho. O tamanho e a composição do conjunto de dados de validação, juntamente com a tarefa específica, também afectam o processo.

Argumento Tipo Predefinição Descrição
data str None Especifica o caminho para o ficheiro de configuração do conjunto de dados (por exemplo, coco8.yaml). Este ficheiro inclui caminhos para dados de validaçã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 objectos pequenos, mas aumentam o tempo de computação.
batch int 16 Define o número de imagens por lote. Valores mais altos utilizam a memória GPU de forma mais eficiente, mas exigem mais VRAM. Ajuste com base nos recursos de hardware disponíveis.
save_json bool False Se Trueguarda os resultados num ficheiro JSON para análise posterior, integração com outras ferramentas ou envio para servidores de avaliação como o COCO.
save_hybrid bool False Se TrueO modelo de etiquetas, guarda uma versão híbrida de etiquetas que combina anotações originais com previsões adicionais do modelo. Útil para aprendizagem semi-supervisionada e melhoramento de conjuntos de dados.
conf float 0.001 Define o limite mínimo de confiança para as detecções. Valores mais baixos aumentam a recuperação, mas podem introduzir mais falsos positivos. Utilizado durante a validação para calcular as curvas de precisão-recuperação.
iou float 0.6 Define o limiar de Intersecção sobre União para Supressão Não Máxima. Controla a eliminação da deteçã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 gerir os recursos computacionais.
half bool True Permite o cálculo de meia-precisão (FP16), reduzindo a utilização de memória e aumentando potencialmente a velocidade com um impacto mínimo na precisão.
device str None Especifica o dispositivo para validação (cpu, cuda:0, etc.). Quando Noneseleciona automaticamente o melhor dispositivo disponível. Podem ser especificados vários dispositivos CUDA com separação por vírgula.
dnn bool False Se Trueutiliza o OpenCV Módulo DNN para ONNX inferência de modelos, oferecendo uma alternativa ao PyTorch métodos de inferência.
plots bool False Quando definido para Truegera e guarda gráficos de previsões versus verdade terrestre, matrizes de confusão e curvas PR para avaliação visual do desempenho do modelo.
rect bool True Se Trueutiliza a inferência retangular para a formação de lotes, reduzindo o preenchimento e aumentando potencialmente a velocidade e a eficiência através do processamento de imagens no seu rácio de aspeto original.
split str 'val' Determina a divisão do conjunto de dados a utilizar para a validação (val, test, ou train). Permite flexibilidade na escolha do segmento de dados para avaliação do desempenho.
project str None Nome do diretório do projeto onde são guardados os resultados da validação. 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 logs de validação e as saídas são armazenados.
verbose bool False Se Trueexibe informações detalhadas durante o processo de validação, incluindo métricas por classe, progresso do lote e informações adicionais de depuração.
save_txt bool False Se TrueO sistema de deteção de imagens, guarda os resultados da deteção em ficheiros de texto, com um ficheiro por imagem, útil para análise posterior, pós-processamento personalizado ou integração com outros sistemas.
save_conf bool False Se Trueinclui valores de confiança nos ficheiros de texto guardados quando save_txt está ativado, fornecendo resultados mais detalhados para análise e filtragem.
save_crop bool False Se TrueO software de deteção de objectos, guarda imagens recortadas de objectos detectados, que podem ser úteis para a criação de conjuntos de dados específicos, verificação visual ou análise adicional de detecções individuais.
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 CPU . Definir como 0 usa o thread principal, que pode ser mais estável em alguns ambientes.
augment bool False Permite o aumento do tempo de teste (TTA) durante a validação, melhorando potencialmente a precisão da deteção à custa da velocidade de inferência, executando a inferência em versões transformadas da entrada.
agnostic_nms bool False Permite a supressão não máxima independente de 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.

O ajuste e a experimentação cuidadosos são cruciais para garantir um desempenho ótimo e para detetar e evitar o sobreajuste.

Guia Val

Definições de exportação

As definições de exportação para os modelos YOLO incluem configurações para guardar ou exportar o modelo para utilização 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 Predefinição Descrição
format str 'torchscript' Formato de destino para o modelo exportado, tal como 'onnx', 'torchscript', 'engine' TensorRT), ou outros. Cada formato permite a compatibilidade com diferentes ambientes de implantação.
imgsz int ou tuple 640 Tamanho de imagem pretendido para a entrada do modelo. Pode ser um número inteiro para imagens quadradas (por exemplo, 640 para 640×640) ou uma tupla (height, width) para dimensões específicas.
keras bool False Permite a exportação para o formato Keras para TensorFlow SavedModel proporcionando compatibilidade com TensorFlow servindo e APIs.
optimize bool False Aplica otimização para dispositivos móveis ao exportar para o TorchScript, reduzindo potencialmente o tamanho do modelo e melhorando o desempenho da inferência. Não é compatível com o formato NCNN ou dispositivos CUDA .
half bool False Permite 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 CPU para CPU para ONNX.
int8 bool False Ativa a quantização INT8, comprimindo ainda mais o modelo e acelerando a inferência com uma perda mínima de precisão, principalmente para dispositivos de borda. Quando utilizado com o TensorRT, efectua a quantização pós-treino (PTQ).
dynamic bool False Permite tamanhos de entrada dinâmicos para exportações ONNX, TensorRT e OpenVINO , aumentando a flexibilidade no tratamento de dimensões de imagem variáveis. Definido automaticamente para True quando se utiliza o TensorRT com INT8.
simplify bool True Simplifica o gráfico do modelo para ONNX exportações com onnxslimmelhorando potencialmente o desempenho e a compatibilidade com os motores de inferência.
opset int None Especifica a versão do conjunto de operações ONNX para compatibilidade com diferentes ONNX e tempos de execução. Se não for definido, utiliza a última versão suportada.
workspace float ou None None Define o tamanho máximo do espaço de trabalho em GiB para TensorRT optimizações, equilibrando a utilização da memória e o desempenho. Utilizar None para atribuição automática por TensorRT até ao máximo do dispositivo.
nms bool False Adiciona Supressão Não Máxima (NMS) ao modelo exportado quando suportado (consulte Formatos de exportação), melhorando a eficiência do pós-processamento da deteção. Não disponível para modelos end2end.
batch int 1 Especifica o tamanho da inferência em lote do modelo de exportação ou o número máximo de imagens que o modelo exportado processará simultaneamente em predict mode. Para as exportações de TPU Edge, este valor é automaticamente definido como 1.
device str None Especifica o dispositivo para exportação: GPU (device=0), CPU (device=cpu), MPS para silício Apple (device=mps) ou DLA para NVIDIA Jetson (device=dla:0 ou device=dla:1). As exportações TensorRT utilizam automaticamente GPU.
data str 'coco8.yaml' Caminho para o conjunto de dados ficheiro de configuração (predefinição: coco8.yaml), essencial para a calibração da quantização da INT8. Se não for especificado com a INT8 activada, será atribuído um conjunto de dados por defeito.

Uma configuração cuidadosa garante que o modelo exportado é optimizado para o seu caso de utilização e funciona eficazmente no ambiente de destino.

Guia de exportação

Soluções Definições

As definições de configuração das soluções Ultralytics oferecem flexibilidade para personalizar modelos para tarefas como a contagem de objectos, a criação de mapas de calor, o acompanhamento de exercícios, a análise de dados, o acompanhamento de zonas, a gestão de filas e a contagem baseada em regiões. Estas opções permitem ajustes fáceis para obter resultados exactos e úteis adaptados a necessidades específicas.

Argumento Tipo Predefinição Descrição
model str None Caminho para o ficheiro do modelo Ultralytics YOLO .
region list [(20, 400), (1260, 400)] Lista de pontos que definem a região de contagem.
show_in bool True Sinalizador para controlar se as contagens de entrada devem ser apresentadas no fluxo de vídeo.
show_out bool True Sinalizador para controlar se as contagens de saída devem ser apresentadas 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 utilizar para o mapa de calor.
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 de ângulo para a pose "para cima".
kpts list[int, int, int] [6, 8, 10] Lista de pontos-chave utilizados para monitorizar os exercícios. Estes pontos-chave correspondem a articulações ou partes do corpo, como ombros, cotovelos e pulsos, para exercícios como flexões, flexões, agachamentos e exercícios abdominais.
down_angle float 90.0 Limiar de ângulo para a pose "para baixo".
blur_ratio float 0.5 Ajusta a percentagem da intensidade da desfocagem, com valores no intervalo 0.1 - 1.0.
crop_dir str "cropped-detections" Nome do diretório para armazenar as detecções cortadas.
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] (50, 50) O ponto em que a visão irá rastrear objectos e desenhar caminhos utilizando a solução VisionEye.
tracker str 'botsort.yaml' Especifica o algoritmo de seguimento a utilizar, por exemplo, bytetrack.yaml ou botsort.yaml.
conf float 0.3 Define o limiar de confiança para as detecções; valores mais baixos permitem o seguimento de mais objectos, mas podem incluir falsos positivos.
iou float 0.5 Define o limiar de Intersecção sobre União (IoU) para filtrar detecções sobrepostas.
classes list None Filtra os resultados por índice de classe. Por exemplo, classes=[0, 2, 3] só rastreia as classes especificadas.
verbose bool True Controla a apresentação dos resultados do seguimento, fornecendo uma saída visual dos objectos seguidos.
device str None Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite aos utilizadores selecionar entre CPU, um GPU específico, ou outros dispositivos de computação para a execução do modelo.
show bool False Se Trueapresenta as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
line_width None or int None Especifica a largura da linha das caixas delimitadoras. Se NoneA largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza.

Guia de soluções

Definiçõ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 treino, ajudando o modelo a generalizar melhor para dados não vistos. A tabela seguinte descreve o objetivo e o efeito de cada argumento de aumento de dados:

Argumento Tipo Predefinição Gama 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, afectando 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 -180 - +180 Roda a imagem aleatoriamente dentro do intervalo de graus especificado, melhorando a capacidade do modelo para reconhecer objectos em várias orientações.
translate float 0.1 0.0 - 1.0 Traduz a imagem horizontal e verticalmente por uma fração do tamanho da imagem, ajudando a aprender a detetar objectos parcialmente visíveis.
scale float 0.5 >=0.0 Dimensiona a imagem através de um fator de ganho, simulando objectos a diferentes distâncias da câmara.
shear float 0.0 -180 - +180 Corta a imagem num grau especificado, imitando o efeito de objectos vistos de diferentes ângulos.
perspective float 0.0 0.0 - 0.001 Aplica uma transformação de perspetiva aleatória à imagem, melhorando a capacidade do modelo para compreender objectos no espaço 3D.
flipud float 0.0 0.0 - 1.0 Vira a imagem ao contrário com a probabilidade especificada, aumentando a variabilidade dos dados sem afetar as caraterí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 objectos 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, o que é útil para aumentar a robustez da ordenação incorrecta dos canais.
mosaic float 1.0 0.0 - 1.0 Combina quatro imagens de treino numa só, simulando diferentes composições de cenas e interações de objectos. 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. Aumenta a capacidade de generalização do modelo, introduzindo ruído de etiqueta e variabilidade visual.
copy_paste float 0.0 0.0 - 1.0 Copia e cola objectos entre imagens, útil para aumentar as instâncias de objectos e aprender a oclusão de objectos. Requer rótulos de segmentação.
copy_paste_mode str 'flip' - Seleção do método de aumento Copiar-Colar entre as opções de ("flip", "mixup").
auto_augment str 'randaugment' - Aplica automaticamente uma política de aumento predefinida (randaugment, autoaugment, augmix), optimizando as tarefas de classificação através da diversificação das caraterísticas visuais.
erasing float 0.4 0.0 - 0.9 Apaga aleatoriamente uma parte da imagem durante o treino de classificação, encorajando o modelo a concentrar-se em caraterísticas menos óbvias para o reconhecimento.
crop_fraction float 1.0 0.1 - 1.0 Corta a imagem de classificação para uma fração do seu tamanho para realçar as caraterísticas centrais e adaptar-se às escalas dos objectos, reduzindo as distracções de fundo.

Ajuste estas definições para satisfazer os requisitos do conjunto de dados e da tarefa. A experimentação de valores diferentes pode ajudar a encontrar a estratégia de aumento ideal para o melhor desempenho do modelo.

Definições de registo, pontos de controlo e plotagem

O registo, os pontos de controlo, a plotagem e a gestão de ficheiros são importantes quando se treina um modelo YOLO :

  • Registo: Acompanhar o progresso do modelo e diagnosticar problemas utilizando bibliotecas como o TensorBoard ou escrevendo para um ficheiro.
  • Pontos de controlo: Guardar o modelo em intervalos regulares para retomar a formação ou experimentar diferentes configurações.
  • Plotagem: Visualize o desempenho e o progresso do treino utilizando bibliotecas como matplotlib ou TensorBoard.
  • Gestão de ficheiros: Organize os ficheiros gerados durante o treino, tais como pontos de controlo, ficheiros de registo e gráficos, para facilitar o acesso e a análise.

A gestão eficaz destes aspectos ajuda a acompanhar o progresso e facilita a depuração e a otimização.

Argumento Predefinição Descrição
project 'runs' Especifica o diretório raiz para guardar as execuções de treino. Cada execução é guardada num subdiretório separado.
name 'exp' Define o nome da experiência. Se não for especificado, YOLO incrementa este nome para cada execução (por exemplo, exp, exp2) para evitar a substituição.
exist_ok False Determina se deve substituir um diretório de experiências existente. True permite a substituição; False impede-o.
plots False Controla a criação e a gravação de gráficos de treino e validação. Definido para True para criar gráficos como curvas de perda, precisão-recolha curvas e previsões de amostras para acompanhamento visual do desempenho.
save False Permite guardar os pontos de controlo da formação e os pesos finais do modelo. Definido para True para guardar periodicamente os estados do modelo, permitindo a retoma da formação ou a implantação do modelo.

FAQ

Como é que posso melhorar o desempenho do meu modelo YOLO durante o treino?

Melhore o desempenho afinando os hiperparâmetros, como o tamanho do lote, a taxa de aprendizagem, a dinâmica e a diminuição do peso. Ajuste as definições de aumento de dados, selecione o optimizador correto e utilize técnicas como a paragem antecipada ou a precisão mista. Para obter detalhes, consulte o Guia de treinamento.

Quais são os principais hiperparâmetros para a precisão do modelo YOLO ?

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

  • Tamanho do lote (batch): Os tamanhos maiores podem estabilizar a formação, mas necessitam de mais memória.
  • Taxa de aprendizagem (lr0): As taxas mais pequenas permitem ajustes finos mas uma convergência mais lenta.
  • Momentum (momentum): Acelera os vectores de gradiente, amortecendo as oscilações.
  • Tamanho da imagem (imgsz): Tamanhos maiores melhoram a exatidão mas aumentam a carga computacional.

Ajuste-os com base no seu conjunto de dados e hardware. Saiba mais em Configurações do trem.

Como é que defino a taxa de aprendizagem para treinar um modelo YOLO ?

A taxa de aprendizagem (lr0) é crucial; comece com 0.01 para SGD ou 0.001 para Optimizador Adam. Monitorizar as métricas e ajustar conforme necessário. Utilizar programadores de taxa de aprendizagem coseno (cos_lr) ou aquecimento (warmup_epochs, warmup_momentum). Os pormenores encontram-se no Guia do comboio.

Quais são as definições de inferência predefinidas para os modelos YOLO ?

As predefinições incluem:

  • Limiar de confiança (conf=0.25): Confiança mínima para as detecções.
  • Limiar 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 obter uma visão geral completa, consulte Prever configurações e o Guia de Previsão.

Porquê utilizar a formação de precisão mista com modelos YOLO ?

Precisão mista formação (amp=True) reduz a utilização de memória e acelera o treino utilizando FP16 e FP32. É benéfico para as GPUs modernas, permitindo modelos maiores e cálculos mais rápidos sem perda significativa de precisão. Saiba mais na secção Guia do comboio.

📅C riado há 1 ano ✏️ Atualizado há 6 dias

Comentários