PSI5790: Aprendizado Profundo para Visão Computacional (2025)


Alunos(as) de PSI5790:
1) Se você quiser cursar este curso mas não está oficialmente matriculado, avise-me que colocarei o seu nome na lista de edisciplinas.
2) Há uma intersecção grande entre este curso e os cursos de graduação PSI3471 eu PSI3472. Quem cursou PSI3471/PSI3472 comigo na graduação, não estão proibidos de cursarem esta disciplina, mas estejam cientes que os conteúdos são muito semelhantes.

Outras informações estão em:
1) https://edisciplinas.usp.br/course/view.php?id=129409
2) ../apostila/index.html




Alunos(as) do primeiro período de 2025:

Este curso será presencial na sala GD-06 do prédio da engenharia elétrica.
O conteúdo das aulas está nas apostilas. A apostila pode ser alterada até o início da aula.

Avaliações:

A avaliação será baseada somente em exercícios, isto é, não haverá prova.

1) “Lições de casa”:

No horário final da aula ou após a aula, vocês deverão fazer uma ou duas “lições de casa”, normalmente exercícios computacionais. Os exercícios são individuais. Após resolverem as “lições de casa”, vocês devem gravar um vídeo de no máximo 60 segundos (por aula, isto é, se uma aula tem 2 exercícios, a explicação de cada exercício deve durar aproximadamente 30s), mostrando que fizeram os exercícios. Não podem enviar vídeo com mais de 60s - pode ter desconto na nota se enviar vídeo extenso. Através do vídeo, vocês devem me convencer de que fizeram os exercícios solicitados e que eles estão funcionando corretamente. Para isso, o vídeo deve mostrar as entradas/saídas do programa e o código. Se vocês não mostram entradas/saídas ou ficam explicando teorias, não consigo avaliar se o programa funciona. É necessário que o vídeo contenha áudio, pois é muito difícil entender um vídeo sem a explicação falada. O vídeo não pode ter sido acelerado para diminuir a duração, pois dificulta entender a fala.

Podem gravar a tela do computador usando celular ou usando algum programa de captura de tela (por exemplo Zoom, Google Meet ou OBS Studio). Em algum momento, deve aparecer no vídeo o seu rosto e algum documento seu (como a carteira USP, RG, CNH, etc). Podem enviar o vídeo em si (.mkv, .mp4, .avi, etc.) ou um link para o vídeo (youtube, google drive, etc). No segundo caso, devem assegurar que eu (hae.kim@usp.br) tenha acesso ao seu vídeo e que o link do vídeo continue funcionando corretamente até o cadastro final das notas no sistema Janus. Após a correção, não serão aceitas novas entregas. A entrega deve ser feita em edisciplinas.

A correção será feita em princípio baseado somente nesse vídeo. Quando eu ficar com alguma dúvida, poderei olhar também os códigos-fontes. Assim, entreguem também os códigos-fontes (.cpp ou .py ou .ipynb ou link para Google Colab) das lições. Devem fazer a entrega em edisciplinas até a segunda-feira seguinte à aula. Exercícios entregues com atraso terão desconto de 1 ponto por dia de atraso.

2) Além das lições de casa, haverá um exercício-programa para fazer. As instruções deste exercício programa estarão no seu enunciado.

3) Cálculo da média final:

MF = (ML + EP) / 2

onde MF é média final, ML é a média das lições de casa e EP é a nota do exercício-programa.

Nota A: 8<=MF<=10
Nota B: 6<=MF<8
Nota C: 4<=MF<6
Nota R: MF<4

4) Como qualquer curso de pós-graduação da USP, o aluno precisa ter pelo menos 75% de frequência para ser aprovado.

  

Apostilas

Software





Aulas planejadas (pode mudar ao longo do quadrimestre)
Linguagem
Entrega lição (sem desconto - com desconto)
11/03 aula 01
Introdução. Conceitos básicos de processamento de imagens. Componentes conexos, crescimento de semente, fila, pilha.
C++/OpenCV
18/03 - 24/03

18/03 aula 02
Filtros e convolução. Casamento de modelo. C++/OpenCV 24/03 - 31/03
25/03 aula 03
Transformações geométricas. Introdução ao aprendizado de máquina. C++/OpenCV 31/03 - 07/04
01/04 aula 04 Projeto de filtros por aprendizado. Aprendizado clássico para classificar MNIST. C++/OpenCV 07/04 - 14/04
08/04 aula 05 Introdução ao aprendizado profundo. Tensorflow/Keras. Google Colab. Rede neural densa para classificar MNIST. Python/Keras 21/04 - 28/04
15/04
Semana Santa


22/04 aula 06
Rede neural convolucional "tipo LeNet". Modelos pré-treinados para ImageNet. Cifar10. Python/Keras 28/04 - 05/05
29/04 aula 07
Redes avançadas. Data augmentation.
Python/Keras 05/05 - 12/05
06/05 aula 08
Transfer learning. Python/Keras
12/05 - 19/05
13/05 aula 09
Diferenciação automática. Python/Keras
19/05 - 26/05
20/05 aula 10
Segmentação semântica. Detecção de objetos. Python/Keras
26/05 - 02/06
27/05 aula 11 One-shot learning, reconhecimento facial. Class Activation Map e Grad-CAM. Python/Keras 02/06 - 09/06
03/06 aula 12
???
Generative Adversarial Network (GAN). Introdução à processamento de linguagem natural. Classificação de séries temporais por CNN.
Python/Keras




Exercício-programa 2025

Exercícios programas de anos anteriores:
Exercícios-programas 2020

Exercícios-programas 2019


Exercícios-programas 2018

Exercícios-programas 2017

Exercícios-programas 2016

Exercícios-programas 2015

Exercícios-programas 2014

Exercícios-programas 2013

Exercícios-programas 2012

Exercícios-programas 2011

Exercícios-programas 2010

Exercícios-programas 2009

Exercícios-programas 2008

Exercícios-programas 2007

Exercícios-programas 2006
Exercícios-programas 2005