Visão Geral
O Curso PyTorch para Visão Computacional, oferece uma imersão prática nas técnicas de deep learning aplicadas ao campo da visão computacional. Os participantes aprenderão a construir e treinar modelos de visão computacional para tarefas como classificação de imagens, detecção de objetos, segmentação e processamento de vídeo. Utilizando a flexibilidade e o poder de PyTorch, o curso aborda desde redes neurais convolucionais (CNNs) básicas até arquiteturas mais avançadas como ResNet e UNet.
Conteúdo Programatico
Fundamentos de Visão Computacional
- Introdução à visão computacional e suas aplicações.
- Processamento básico de imagens: leitura, transformação e visualização.
- Manipulação de datasets de imagem com PyTorch.
- Projeto prático: Implementação de pipeline de processamento básico de imagem.
Redes Neurais Convolucionais (CNNs)
- Introdução às CNNs: Operações de convolução e pooling.
- Estrutura básica de uma CNN: Camadas convolucionais e fully connected.
- Treinamento de uma CNN para classificação de imagens.
- Projeto prático: Implementação de uma CNN para classificar imagens no dataset MNIST ou CIFAR-10.
Transfer Learning e Fine-tuning
- Introdução ao conceito de transfer learning.
- Utilização de modelos pré-treinados como ResNet, VGG e EfficientNet.
- Fine-tuning de modelos para tarefas específicas.
- Projeto prático: Aplicação de transfer learning com ResNet para classificação de imagens.
Data Augmentation e Preparação de Dados
- Técnicas de data augmentation: flip, rotate, crop, etc.
- Como aumentar a variabilidade dos dados para melhorar o desempenho do modelo.
- Implementação de pipelines de augmentação com PyTorch.
- Projeto prático: Aplicação de técnicas de augmentação em um dataset de imagens.
Detecção de Objetos
- Conceitos de detecção de objetos: bounding boxes, IoU e non-max suppression.
- Modelos para detecção de objetos: R-CNN, Fast R-CNN, Faster R-CNN, YOLO.
- Implementação de Faster R-CNN em PyTorch para detecção de objetos.
- Projeto prático: Treinamento de um modelo de detecção de objetos em um dataset customizado.
Segmentação de Imagens
- Introdução à segmentação de imagens: Segmentação semântica e segmentação de instância.
- Arquiteturas para segmentação: Fully Convolutional Networks (FCNs) e UNet.
- Implementação de UNet para segmentação de imagens médicas ou satélites.
- Projeto prático: Treinamento de um modelo UNet para segmentação de imagens.
Redes Neurais para Vídeo
- Processamento de sequências de vídeo com CNNs.
- Introdução a 3D CNNs para modelagem temporal de vídeos.
- Projeto prático: Construção de um classificador de vídeo utilizando redes convolucionais 3D.
Modelos Avançados: ResNet, DenseNet e Inception
- Entendendo a ResNet e a ideia de "skip connections".
- Introdução às arquiteturas DenseNet e Inception.
- Implementação de ResNet para classificação de imagens em PyTorch.
- Projeto prático: Treinamento de DenseNet para tarefas de visão computacional.
Visão Computacional com Redes Generativas Adversárias (GANs)
- Introdução às GANs: Arquitetura e funcionamento.
- Aplicações de GANs em visão computacional: Geração de imagens e super-resolução.
- Implementação de GANs para geração de imagens realistas.
- Projeto prático: Treinamento de uma GAN para gerar novas imagens a partir de um dataset.
Paralelização e Otimização de Modelos
- Uso de GPUs para acelerar o treinamento de modelos em PyTorch.
- Paralelização de modelos com DataParallel e DistributedDataParallel.
- Técnicas de compressão de modelos: pruning e quantização.
- Projeto prático: Treinamento de um modelo paralelo para segmentação de imagens.
Deploy de Modelos de Visão Computacional
- Exportação de modelos PyTorch para TorchScript.
- Implementação de APIs para deploy de modelos em tempo real.
- Integração com Flask, FastAPI ou Django para deploy.
- Projeto prático: Deploy de um modelo de visão computacional para inferência de imagens em tempo real.
Projeto Final
- Desenvolvimento de um projeto completo em visão computacional.
- Definição do problema, escolha do modelo e preparação do dataset.
- Treinamento, otimização e deploy do modelo.
- Apresentação e documentação do projeto.