Este artigo é compilado a partir do https://github.com/ultralytics/yolov5/wiki/Tips-for-Best-Training-Results original em inglês , o artigo explica como melhorar o mAP e o efeito de treinamento do Yolov5.
Na maioria das vezes, sem alterar o modelo ou a configuração de treinamento, se você puder fornecer conjuntos de dados suficientes e bons rótulos , poderá obter bons resultados. Se os resultados obtidos não forem satisfatórios quando você começar a treinar, então você vai querer tomar medidas para melhorar. Antes de tomar medidas, ainda recomendamos que você use as configurações padrão. Isso ajuda a estabelecer uma linha de base para melhoria, bem como identificar áreas para melhoria.
A seguir, um guia completo fornecido pelo oficial - como obter bons resultados no treinamento YOLOv5.
conjunto de dados
imagens para cada categoria
≥1500 imagens são recomendadas.
Instâncias de cada classe
Recomenda-se ≥10.000 instâncias por categoria.
variedade de imagens
Sugere-se que as imagens venham de diferentes períodos de tempo, diferentes estações, diferentes climas, diferentes iluminações, diferentes ângulos, diferentes
fonte (coleção online, coleção local, câmeras diferentes), etc.
Consistência de rotulagem
Todas as instâncias de todas as classes em todas as imagens devem ser rotuladas.
Precisão da rotulagem
As dimensões devem se encaixar perfeitamente ao redor do objeto. Não deve haver nenhum espaço entre o objeto e sua caixa delimitadora. Nenhum objeto pode carecer de um texto explicativo.
Verificação de marcação
Veja as imagens train_batch e val_batch na pasta train/exp.
imagem de fundo
Essas imagens que não contêm objetos são adicionadas ao conjunto de dados como imagens de fundo para reduzir os falsos positivos (FP). Uma imagem de fundo de 0-10% é recomendada para ajudar a reduzir os FPs. As imagens de fundo não precisam ser rotuladas.
seleção de modelo
Modelos maiores como YOLOv5 e YOLOv5x6 podem produzir melhores resultados em quase todos os casos, mas como também têm mais parâmetros, requerem mais memória CUDA para treinamento e são mais lentos para treinar. Para implantação móvel, YOLOv5s/m é recomendado; para implantação em nuvem, YOLOv5l/x é recomendado.
Comece com pesos pré-treinados
Adequado para conjuntos de dados de média e pequena escala (VOC, VisDrone, GlobalWheat). Passe o nome do modelo para o parâmetro --weight.
python train.py --data custom.yaml --weights yolov5s.pt
Começar do zero
Adequado para grandes conjuntos de dados (COCO, Objects365, Olv6). Passe a arquitetura do modelo de interesse, seguida por um parâmetro --weights vazio:
python train.py --data custom.yaml --weights '' --cfg yolov5s.yaml
configurações de treinamento
Antes de modificar qualquer coisa, as configurações padrão são usadas para o primeiro treinamento para estabelecer uma linha de base de desempenho. A lista completa de configurações pode ser encontrada em train.py.
Tempos de treinamento de épocas
O padrão é 300. Se o overfitting ocorrer prematuramente, as épocas podem ser reduzidas apropriadamente. Se não houver overfitting, você pode definir 600, 1200.
Tamanho da imagem Tamanho da imagem
--img tem como padrão 640, se o conjunto de dados contiver muitos objetos pequenos, é recomendável usar --img 1280. Se a configuração de treinamento --img for 1280, o teste e a detecção também devem ser definidos como 1280.
Tamanho do lote Tamanho do lote
Recomenda-se usar o valor máximo permitido pelo hardware. Tamanhos de lote pequenos levam a estatísticas de valor de lote ruins.
Hiperparâmetros Hiperparâmetros
O hiperparâmetro padrão é hyp.scratch-low.yaml. Recomenda-se usar os valores padrão para treinar pela primeira vez.