Redes Neurais Convolucionais (CNNs) revolucionaram o campo de visão computacional. Vamos explorar como funcionam e por que são tão eficazes.
Uma convolução é uma operação matemática que aplica um filtro a uma imagem. O filtro desliza sobre a imagem, computando a soma ponderada de pixels.
Este processo extrai features locais da imagem, como bordas, texturas e padrões.
Primeira CNN bem-sucedida, usada para reconhecimento de dígitos manuscritos. Arquitetura simples:
Apesar de simples, demonstrou o potencial das CNNs.
Ganhou ImageNet com grande margem, iniciando a era do deep learning. Inovações:
Demonstrou que profundidade é importante. Arquitetura simples mas poderosa:
Apesar de simples, VGG é ainda muito usada como backbone.
Introduziu conexões residuais (skip connections), permitindo treinar redes muito profundas:
ResNet revolucionou o campo ao mostrar que redes muito profundas são viáveis.
Aplica mecanismo de atenção a patches de imagem, rivalizando com CNNs:
Determinar a categoria de uma imagem (gato, cachorro, carro, etc.)
Localizar e classificar múltiplos objetos em uma imagem (YOLO, Faster R-CNN)
Classificar cada pixel da imagem (U-Net, DeepLab)
Identificar pessoas em imagens (FaceNet, ArcFace)
Diagnosticar doenças em radiografias e ressonâncias (CheXNet)
Modelos pré-treinados em ImageNet são excelentes pontos de partida:
from torchvision import models
# Carregar ResNet50 pré-treinado
model = models.resnet50(pretrained=True)
# Congelar pesos
for param in model.parameters():
param.requires_grad = False
# Substituir camada final
model.fc = torch.nn.Linear(2048, num_classes)
# Treinar apenas a última camada
from torchvision import models
# Carregar ResNet50 pré-treinado
model = models.resnet50(pretrained=True)
# Congelar pesos
for param in model.parameters():
param.requires_grad = False
# Substituir camada final
model.fc = torch.nn.Linear(2048, num_classes)
# Treinar apenas a última camada
Aumentar dataset com transformações:
Evitar overfitting:
CNNs revolucionaram visão computacional e continuam sendo fundamentais. Compreender sua arquitetura é essencial para qualquer profissional de Deep Learning.
Próximo passo: explore implementações com PyTorch ou TensorFlow e experimente com seus próprios datasets!