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


Alunos(as) de PSI5790:
1) Se você quiser cursar a disciplina (mesmo que seja como ouvinte) mas não está oficialmente matriculado, avise-me que colocarei o seu nome na lista.
2) Este curso será não-presencial. Parece que foi introduzida uma nova regra de pós-graduação onde cada aluno precisa cursar uma porcentagem mínima de créditos presenciais. Verifiquem se o fato do curso ser não-presencial poderá prejudicar vocês. Se for o caso, excluam a matrícula nesta disciplina. Provavelmente, no ano que vem oferecerei uma disciplina presencial similar.
3) Se você cursou PSI3471 e/ou PSI3472 comigo na graduação: Há uma intersecção grande entre PSI5790 e PSI3471/PSI3472. Quem cursou PSI3471/PSI3472 não estão proibidos de cursarem PSI5790. Mas precisam saber que os conteúdos são muito semelhantes.

Outras informações estão em:
1) https://edisciplinas.usp.br/
Pode ser que você não tenha acesso se não estiver oficialmente matriculado.
2) http://www.lps.usp.br/hae/apostila/index.html

As antigas siglas e nomes desta disciplina eram:
    PSI5796    Processamento e Análise de Imagens e Vídeos (2004-2020)
    PSI5796    Aprendizagem Profunda para Processamento Imagens (2020-2022)



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

Para cada aula, prepararei uma apostila e darei a aula online baseado nessa apostila, no horário da aula (terças-feiras, 13:00-16:00). O conteúdo da apostila pode ser alterado até o início da aula.

Link da videochamada é: https://meet.google.com/vue-vxyq-fmr 

Essa aula será gravada e disponibilizada posteriormente em meu homepage, na seção Apostila.
Favor, avisem-me no início da aula se eu esquecer de começar a gravar a aula - é comum isso acontecer.
Favor, se possível, mantenham a câmera ligada durante a aula. É um pedido, pois o professor não pode obrigar ninguém a manter câmera ligada. Porém, se todos desligarem a câmera, é como se eu estivesse dando aula para uma parede.
Por outro lado, mantenham microfone fechado (só abram quando quiser falar algo).

Vamos trabalhar com dois ambientes: C++/OpenCV e Python/Keras.

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. Quem enviar vídeo de mais de 60s, pode ter desconto na nota. Através do vídeo, vocês devem me convencer de que fizeram os exercícios computacionais 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 só 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 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 0,5 ponto por dia de atraso. As lições e exercício-programa não poderão ser entregues após 11/junho/2024.

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 semestre)
Linguagem
Entrega lição
05/03 aula 01
Introdução. Conceitos básicos de processamento de imagens. Componentes conexos, crescimento de semente, fila, pilha. C++/OpenCV
11/03
12/03 aula 02
Filtros e convolução. C++/OpenCV 18/03
19/03 aula 03
Casamento de modelo. C++/OpenCV 01/04
26/03
Semana Santa - não haverá aula


02/04 aula 04 Transformações geométricas. Introdução ao aprendizado de máquina.
C++/OpenCV 08/04
09/04 aula 05 Projeto de filtros por aprendizado.
Aprendizado clássico para classificar MNIST.
C++/OpenCV 15/04
16/04 aula 06
Aprendizado clássico para classificar MNIST.
C++/OpenCV 22/04
23/04 aula 07
Introdução ao aprendizado profundo. Tensorflow/Keras. Google Colab. Python/Keras 29/04
30/04 aula 08
Rede neural convolucional. Python/Keras
06/05
07/05 aula 09
Diferenciação automática. Camada personalizada. Python/Keras
13/05
14/05 aula 10
Modelos pré-treinados. Cifar10. Python/Keras
20/05
21/05 aula 11 Redes avançadas.
Python/Keras 27/05
28/05 aula 12 Transfer learning. One-shot learning. Segmentação semântica. Python/Keras 05/06
06/06 aula 13 Generative Adversarial Network (GAN). Class Activation Map e Grad-CAM. Detecção de objetos. Python/Keras

Temos: 4 aulas sobre processamento de imagens convencional (amarelo), 2 aulas sobre aprendizado de máquina clássica (verde) e 7 aulas sobre aprendizado profundo. Vamos trabalhar 6 aulas com C++/OpenCV e 7 aulas com Python/Keras.



Exercício-programa 2023
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