Deteccao de Objetos do Zero: Parte 3 - Treinando o Detector

15 de maio de 202625 min de leituraNew

Parte 3 detalha o treinamento do detector: transfer learning, augmentations, AdamW, cosine decay, early stopping, treino local e experimentos em GPU na cloud.

Deteccao de Objetos do Zero: Parte 3 - Treinando o Detector
React to this article

Scripts de treino parecem pequenos demais para a quantidade de decisoes que carregam. Este projeto mostra bem isso.

Por trás de poucos parametros existe uma cadeia inteira de escolhas sobre arquitetura, hardware, regularizacao e custo.

Transfer Learning Primeiro

O ponto de partida e simples:

from ultralytics import YOLO
 
model = YOLO("yolo11n.pt")

Esse carregamento de pesos pretreinados e o que torna o projeto viavel com um dataset customizado relativamente pequeno. Em vez de aprender visao do zero, o modelo adapta features ja aprendidas no COCO para as regioes das cartas.

Por Que YOLOv11n?

O repositorio toma uma decisao madura: comecar pequeno e validar o teto antes de escalar.

Faz sentido porque:

  • o numero de classes e baixo
  • o dataset e limitado
  • velocidade de iteracao vale muito

Os experimentos de cloud confirmam isso. Modelos maiores e resolucoes maiores nao ganharam de forma consistente.

As Augmentations Têm Intencao

O documento training-strategies.md e um dos pontos mais fortes do projeto porque conecta teoria e pratica.

Visao geral da estrategia de augmentation
O conjunto de augmentations nao existe para enfeitar o treino. Cada transformacao corresponde a um modo de falha real da webcam ou das anotacoes.

Mosaic

Ajuda a ampliar diversidade de contexto e a enriquecer casos de objetos pequenos.

Referencia principal: YOLOv4.

Batch de treino com mosaic
Um batch real com mosaic mostra por que essa augmentation importa: varias cartas, escalas e contextos sao combinados em um sinal de treino mais denso.

Mixup

Ajuda a reduzir overconfidence e correlacoes ruins com fundo.

Referencia principal: Zhang et al.

Multi-scale

Simula a variacao real de distancia e enquadramento da webcam.

Rotacao, perspectiva, shear, HSV e erasing

Todas essas transformacoes fazem sentido neste caso porque cartas reais aparecem inclinadas, com iluminacao variavel, parcialmente cobertas e em escalas diferentes.

Otimizacao e Estabilidade

O projeto usa AdamW, cosine LR e early stopping. O combo e coerente para fine-tuning:

  • AdamW ajuda em datasets menores
  • cosine decay suaviza o refinamento
  • early stopping evita insistir apos o plateau

Outro ponto importante: treino local em CPU por questoes de estabilidade no stack usado com Apple Silicon. Isso e engenharia pragmatica.

Cloud Nao e Magia

Os experimentos em RunPod sao valiosos porque mostram o que muita gente prefere ignorar: mais GPU, mais resolucao e mais parametros nem sempre resolvem o problema certo.

Se annotation quality e o teto, um modelo maior pode apenas memorizar melhor esse ruido.

Conclusao

O treinamento deste detector funciona porque as escolhas combinam entre si. Nao ha fetiche por complexidade. Ha alinhamento entre dados, objetivo, hardware e avaliacao.

Batch final de treino
A visao final do batch mostra a diversidade de exemplos de que o modelo realmente aprendeu depois de augmentation, variacao de escala e geometria das cartas.

Na proxima parte, vamos ler as metricas como engenheiros, nao como espectadores de benchmark.

Further Reading

Arthur CostaA

Arthur Costa

Senior Full-Stack Engineer & Tech Lead

Senior Full-Stack Engineer with 8+ years in React, TypeScript, and Node.js. Expert in performance optimization and leading engineering teams.

View all articles →