Configuração
YOLO As definições e os hiperparâmetros desempenham um papel fundamental no desempenho, velocidade e precisão do modelo. Estas definições e hiperparâmetros podem afetar o comportamento do modelo em várias fases do processo de desenvolvimento do modelo, incluindo formação, validação e previsão.
Ver: Mastering Ultralytics YOLO : Configuração
Ultralytics utilizam a seguinte sintaxe:
Exemplo
Onde:
TASK
(opcional) é um dos (detetar, segmento, classificar, pose, obb)MODE
(obrigatório) é um dos (comboio, val, prever, exportação, pista, referência)ARGS
(opcional) sãoarg=value
pares comoimgsz=640
que se sobrepõem às predefinições.
Predefinição ARG
são definidos nesta página a partir do cfg/defaults.yaml
ficheiro.
Tarefas
YOLO podem ser utilizados para uma variedade de tarefas, incluindo deteção, segmentação, classificação e pose. Estas tarefas diferem no tipo de resultados que produzem e no problema específico que foram concebidos para resolver.
- Detetar: Para identificar e localizar objectos ou regiões de interesse numa imagem ou vídeo.
- Segmento: Para dividir uma imagem ou vídeo em regiões ou pixels que correspondem a diferentes objectos ou classes.
- Classificar: Para prever a etiqueta de classe de uma imagem de entrada.
- Pose: Para identificar objectos e estimar os seus pontos-chave numa imagem ou vídeo.
- OBB: Caixas delimitadoras orientadas (ou seja, rodadas) adequadas para imagens médicas ou de satélite.
Argumento | Predefinição | Descrição |
---|---|---|
task |
'detect' |
Especifica a tarefa YOLO a ser executada. As opções incluem 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 tipos específicos de resultados e problemas no âmbito da análise de imagens e vídeos. |
Modos
YOLO Os modelos podem ser utilizados em diferentes modos, dependendo do problema específico que está a tentar resolver. Estes modos incluem:
- Treinar: Para treinar um modelo YOLO11 num conjunto de dados personalizado.
- Val: Para validar um modelo YOLO11 depois de ter sido treinado.
- Prever: Para efetuar previsões utilizando um modelo YOLO11 treinado em novas imagens ou vídeos.
- Exportar: Para exportar um modelo YOLO11 para um formato que pode ser usado para implantação.
- Seguir: Para seguir objectos em tempo real utilizando um modelo YOLO11 .
- Referência: Para aferir a velocidade e a exatidão das exportações YOLO11 (ONNX, TensorRT, etc.).
Argumento | Predefinição | Descrição |
---|---|---|
mode |
'train' |
Especifica o modo em que o modelo YOLO funciona. As opções são train para o treino do modelo, val para validação, predict para inferência em novos dados, export para a conversão de modelos em formatos de implantação, track para o seguimento de objectos, e benchmark para avaliação do desempenho. Cada modo foi concebido para diferentes fases do ciclo de vida do modelo, desde o desenvolvimento até à implementação. |
Definições do comboio
As definições de treino para os modelos YOLO englobam vários hiperparâmetros e configurações utilizados durante o processo de treino. Estas definições influenciam o desempenho, a velocidade e a precisão do modelo. As principais definições de treino incluem o tamanho do lote, a taxa de aprendizagem, o momento e a diminuição do peso. Além disso, a escolha do optimizador, a função de perda e a composição do conjunto de dados de treino podem ter impacto no processo de treino. O ajuste cuidadoso e a experimentação com estas definições são cruciais para otimizar o desempenho.
Argumento | Predefinição | Descrição |
---|---|---|
model |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
-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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
'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 |
0 |
Define a semente aleatória para o treino, garantindo a reprodutibilidade dos resultados entre execuções com as mesmas configurações. |
deterministic |
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 |
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. |
rect |
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. |
cos_lr |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
0.0005 |
Termo de regularização L2, que penaliza os pesos grandes para evitar o sobreajuste. |
warmup_epochs |
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 |
0.8 |
Momento inicial para a fase de aquecimento, ajustando-se gradualmente ao momento definido durante o período de aquecimento. |
warmup_bias_lr |
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 |
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 |
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 |
1.5 |
Peso da perda focal da distribuição, utilizado em determinadas versões de YOLO para uma classificação fina. |
pose |
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 |
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. |
label_smoothing |
0.0 |
Aplica a suavização de rótulos, suavizando rótulos rígidos para uma mistura do rótulo alvo e uma distribuição uniforme sobre rótulos, pode melhorar a generalização. |
nbs |
64 |
Tamanho nominal do lote para normalização da perda. |
overlap_mask |
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 |
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 |
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 |
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 |
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 pode ser configurado de três formas:
- Tamanho fixo do lote: Definir um valor inteiro (por exemplo,
batch=16
), especificando diretamente o número de imagens por lote. - Modo automático (60% GPU Memória): Utilizar
batch=-1
para ajustar automaticamente o tamanho do lote para aproximadamente 60% de utilização da memória CUDA . - Modo automático com fração de utilização: Definir um valor de fração (por exemplo,
batch=0.70
) para ajustar o tamanho do lote com base na fração especificada da utilização da memória GPU .
Prever definições
As definições de previsão dos modelos YOLO abrangem uma série de hiperparâmetros e configurações que influenciam o desempenho, a velocidade e a exatidão do modelo durante a inferência de novos dados. O ajuste cuidadoso e a experimentação com estas definições são essenciais para obter um desempenho ótimo para uma tarefa específica. 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 consideradas. Outros factores que afectam o processo de previsão são o tamanho e o formato dos dados de entrada, a presença de caraterísticas suplementares, como máscaras ou etiquetas múltiplas por caixa, e a tarefa específica para a qual o modelo é utilizado.
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 or 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. |
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 False Se `Verdadeiro', quadros antigos são descartados para acomodar novos quadros (otimizado para aplicações em tempo real). Se `Verdadeiro', enfileira novos quadros em um buffer, garantindo que nenhum quadro seja pulado, mas causará latência se o FPS da inferência for menor que o 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. |
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 feedback visual imediato durante o desenvolvimento ou teste. |
save |
bool |
False ou 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 ou int |
None |
Especifica a largura da linha das caixas delimitadoras. Se None A largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza. |
Definições de validação
As definições de val (validação) para os modelos YOLO envolvem vários hiperparâmetros e configurações utilizados para avaliar o desempenho do modelo num conjunto de dados de validação. Essas configurações influenciam o desempenho, a velocidade e a precisão do modelo. As definições de validação comuns do YOLO incluem o tamanho do lote, a frequência de validação durante a formação e as métricas de avaliação do desempenho. Outros factores que afectam o processo de validação incluem o tamanho e a composição do conjunto de dados de validação, bem como a tarefa específica para a qual o modelo é utilizado.
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. |
batch |
int |
16 |
Define o número de imagens por lote. Utilizar -1 para AutoBatch, que se ajusta automaticamente com base na disponibilidade da memória GPU . |
save_json |
bool |
False |
Se True guarda os resultados num ficheiro JSON para análise posterior ou integração com outras ferramentas. |
save_hybrid |
bool |
False |
Se True O modelo de etiquetas, que é uma versão híbrida das etiquetas, combina anotações originais com previsões adicionais do modelo. |
conf |
float |
0.001 |
Define o limite mínimo de confiança para as detecções. As detecções com confiança inferior a este limiar são rejeitadas. |
iou |
float |
0.6 |
Define o limiar de Intersecção sobre União (IoU) para Supressão Não Máxima (NMS). Ajuda a reduzir as detecções duplicadas. |
max_det |
int |
300 |
Limita o número máximo de detecções por imagem. Útil em cenas densas para evitar detecções excessivas. |
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.). Permite flexibilidade na utilização dos recursos CPU ou GPU . |
dnn |
bool |
False |
Se True utiliza 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 True gera e guarda gráficos de previsões versus verdade terrestre para avaliação visual do desempenho do modelo. |
rect |
bool |
True |
Se True utiliza a inferência retangular para a formação de lotes, reduzindo o preenchimento e aumentando potencialmente a velocidade e a eficiência. |
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. |
name |
str |
None |
Nome da execução de validação. Utilizado para criar um subdiretório dentro da pasta do projeto, onde são armazenados os logs e outputs da validação. |
O ajuste cuidadoso e a experimentação com estas definições são cruciais para garantir um desempenho ótimo no conjunto de dados de validação e detetar e evitar o sobreajuste.
Definições de exportação
As definições de exportação para modelos YOLO abrangem configurações e opções relacionadas com a gravação ou exportação do modelo para utilização em diferentes ambientes ou plataformas. Essas configurações podem afetar o desempenho, o tamanho e a compatibilidade do modelo com vários sistemas. As principais configurações de exportação incluem o formato de arquivo do modelo exportado (por exemplo, ONNX, TensorFlow SavedModel ), o dispositivo de destino (por exemplo, CPU, GPU) e recursos adicionais, como máscaras ou vários rótulos por caixa. O processo de exportação pode também ser afetado pela tarefa específica do modelo e pelos requisitos ou restrições do ambiente ou plataforma de destino.
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
format |
str |
'torchscript' |
Formato de destino para o modelo exportado, tal como 'onnx' , 'torchscript' , 'tensorflow' ou outros, definindo a compatibilidade com vários 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 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 a otimização para dispositivos móveis ao exportar para TorchScript, reduzindo potencialmente o tamanho do modelo e melhorando o desempenho. |
half |
bool |
False |
Permite a quantização FP16 (meia-precisão), reduzindo o tamanho do modelo e potencialmente acelerando a inferência no hardware suportado. |
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. |
dynamic |
bool |
False |
Permite tamanhos de entrada dinâmicos para as exportações ONNX, TensorRT e OpenVINO , aumentando a flexibilidade no tratamento de dimensões de imagem variáveis. |
simplify |
bool |
True |
Simplifica o gráfico do modelo para ONNX exportações com onnxslim , melhorando potencialmente o desempenho e a compatibilidade. |
opset |
int |
None |
Especifica a versão do ONNX opset para compatibilidade com diferentes analisadores e tempos de execução do ONNX . Se não for definido, utiliza a última versão suportada. |
workspace |
float |
4.0 |
Define o tamanho máximo do espaço de trabalho em GiB para as optimizações do TensorRT , equilibrando a utilização da memória e o desempenho. |
nms |
bool |
False |
Adiciona Supressão Não Máxima (NMS) à exportação CoreML , essencial para um pós-processamento de deteção preciso e eficiente. |
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 irá processar em simultâneo em predict modo. |
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 ). |
É crucial configurar cuidadosamente estas definições para garantir que o modelo exportado é optimizado para o caso de utilização pretendido e funciona eficazmente no ambiente de destino.
Definições de aumento
As técnicas de aumento são essenciais para melhorar a robustez e o desempenho dos modelos 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:
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 objectos de uma imagem e cola-os noutra, útil para aumentar as instâncias de objectos e aprender a oclusão de objectos. |
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. |
Estas definições podem ser ajustadas para satisfazer os requisitos específicos do conjunto de dados e da tarefa em causa. A experimentação de valores diferentes pode ajudar a encontrar a estratégia de aumento ideal que conduz ao 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 considerações importantes quando se treina um modelo YOLO .
- Registo: É muitas vezes útil registar várias métricas e estatísticas durante o treino para acompanhar o progresso do modelo e diagnosticar quaisquer problemas que possam surgir. Isto pode ser feito utilizando uma biblioteca de registo como o TensorBoard ou escrevendo mensagens de registo num ficheiro.
- Pontos de controlo: É uma boa prática guardar os pontos de controlo do modelo em intervalos regulares durante a formação. Isto permite-lhe retomar a formação a partir de um ponto anterior se o processo de formação for interrompido ou se quiser experimentar diferentes configurações de formação.
- Plotagem: A visualização do desempenho do modelo e do progresso do treinamento pode ser útil para entender como o modelo está se comportando e identificar possíveis problemas. Isso pode ser feito usando uma biblioteca de plotagem, como matplotlib, ou gerando gráficos usando uma biblioteca de registro, como TensorBoard.
- Gestão de ficheiros: A gestão dos vários ficheiros gerados durante o processo de formação, tais como pontos de controlo do modelo, ficheiros de registo e gráficos, pode ser um desafio. É importante ter uma estrutura de ficheiros clara e organizada para manter o controlo destes ficheiros e facilitar o acesso e a análise dos mesmos, conforme necessário.
O registo eficaz, os pontos de controlo, a plotagem e a gestão de ficheiros podem ajudá-lo a acompanhar o progresso do modelo e facilitar a depuração e otimização do processo de formação.
Argumento | Predefinição | Descrição |
---|---|---|
project |
'runs' |
Especifica o diretório raiz para guardar as execuções de treino. Cada execução será guardada num subdiretório separado dentro deste diretório. |
name |
'exp' |
Define o nome da experiência. Se não for especificado, YOLO incrementa automaticamente este nome para cada execução, por exemplo, exp , exp2 , etc., para evitar a substituição de experiências anteriores. |
exist_ok |
False |
Determina se deve substituir um diretório de experiências existente se já existir um com o mesmo nome. Definindo isto para True permite a substituição, enquanto que 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, tais como curvas de perda, precisão-recolha curvas e previsões de amostras. Útil para acompanhar visualmente o desempenho do modelo ao longo do tempo. |
save |
False |
Permite guardar os pontos de controlo de treino e os pesos finais do modelo. Definido para True para guardar periodicamente os estados dos modelos, permitindo que o treino seja retomado a partir destes pontos de controlo ou que os modelos sejam implementados. |
FAQ
Como é que posso melhorar o desempenho do meu modelo YOLO durante o treino?
A melhoria do desempenho do modelo YOLO envolve a afinação de hiperparâmetros como o tamanho do lote, a taxa de aprendizagem, o momento e a diminuição do peso. O ajuste das definições de aumento, a seleção do optimizador correto e a utilização de técnicas como a paragem antecipada ou a precisão mista também podem ajudar. Para obter orientações detalhadas sobre as configurações de treinamento, consulte o Guia de treinamento.
Quais são os principais hiperparâmetros a considerar para YOLO a exatidão do modelo?
Os principais hiperparâmetros que afectam a precisão do modelo YOLO incluem:
- Tamanho do lote (
batch
): Tamanhos de lote maiores podem estabilizar a formação, mas podem exigir mais memória. - Taxa de aprendizagem (
lr0
): Controla o tamanho do passo para actualizações de peso; taxas mais pequenas oferecem ajustes finos mas convergência lenta. - Momentum (
momentum
): Ajuda a acelerar os vectores de gradiente nas direcções certas, amortecendo as oscilações. - Tamanho da imagem (
imgsz
): Imagens de maiores dimensões podem melhorar a exatidão mas aumentam a carga computacional.
Ajuste estes valores com base no seu conjunto de dados e capacidades de hardware. Para mais informações, consulte a secção Definições do comboio.
Como é que defino a taxa de aprendizagem para treinar um modelo YOLO ?
A taxa de aprendizagem (lr0
) é crucial para a otimização. Um ponto de partida comum é 0.01
para SGD ou 0.001
para o Adam. É essencial monitorizar as métricas de formação e ajustá-las, se necessário. Utilize programadores de taxa de aprendizagem de cosseno (cos_lr
) ou técnicas de aquecimento (warmup_epochs
, warmup_momentum
) para modificar dinamicamente a taxa durante o treino. Para mais informações, consulte a secção Guia do comboio.
Quais são as definições de inferência predefinidas para os modelos YOLO ?
As definições de inferência predefinidas 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 antes da inferência. - Dispositivo (
device=None
): Seleciona CPU ou GPU para inferência. Para obter uma visão geral abrangente, visite a página Prever definições e a secção Guia de previsão.
Por que razão devo utilizar o treino de precisão misto com os modelos YOLO ?
Treino de precisão misto, ativado com amp=True
O FP16, que ajuda a reduzir a utilização de memória, pode acelerar a formação utilizando as vantagens do FP16 e do FP32. Isso é benéfico para as GPUs modernas, que suportam precisão mista nativamente, permitindo que mais modelos caibam na memória e possibilitem cálculos mais rápidos sem perda significativa de precisão. Saiba mais sobre este assunto na secção Guia do comboio.