PSI3471 (2024): Fundamentos de Sistemas Eletrônicos Inteligentes

Informações sobre o curso:


Este curso será dado pelo prof. Magno e por mim (Hae). Ele está dividido em 2 partes:
Parte 1 – Magno: Redes neurais artificiais.
Parte 2 – Hae: Aprendizado de máquina em visão computacional.

A continuação desta disciplina é “PSI-3472 Concepção e Implemementação de Sistemas Eletrônicos Inteligentes” do 2º semestre. Os assuntos mais avançados serão vistos lá.

Materiais do prof. Hae:



Planejamento das aulas:

Teremos alternadamente aulas teóricas e práticas. Usarei o início da aula prática para terminar a exposição teórica.




Aulas planejadas (pode mudar ao longo do semestre)
Linguagem
Data de entrega da lição de casa
24/04 aula 01

Aula prática. Conceitos básicos para processamento de imagens.  C++/OpenCV

29/04 aula 02
Componentes conexos e crescimento de semente. C++/OpenCV 05/05
01/05
Dia do Trabalho


06/05
Semana de provas


08/05
Semana de provas

13/05 aula 03
Filtros e convolução. Casamento de modelos.
C++/OpenCV
15/05 aula 04 Aula prática.
C++/OpenCV 19/05
20/05 aula 05 Transformações geométricas. Introdução ao aprendizado de máquina. C++/OpenCV
22/05 aula 06
Aula prática. C++/OpenCV 26/05
27/05 aula 07
Classificação de MNIST pelo aprendizado clássico. Extração de características. C++/Python

29/05 aula 08
Aula prática. C++/Python 02/06
03/06 aula 09
Tensorflow/Keras, Colab. Classificação de MNIST pela rede densa.
Python/Keras

05/06 aula 10
Aula prática. Python/Keras
09/06
10/06 aula 11 Rede neural convolucional "tipo LeNet" em Tensorflow Keras.
Python/Keras
12/06 aula 12 Aula prática. Python/Keras 16/06

Avaliações:

A avaliação será baseada em “lições de casa” (LC) e num “exercício programa” (EP). Na minha parte da disciplina, não haverá prova.

1) “Lições de casa”:

Cada conjunto de duas aulas (aula teórica 2ª-feira + início da aula prática 4ª-feira) pode ter uma “lição de casa”, que é um exercício computacional.
Além disso, pode ter um exercício extra que vale até +2 pontos.
Essas lições deverão ser resolvidas em grupos de dois alunos ou, excepcionalmente, sozinho.
Os alunos podem mudar de grupo ao longo do semestre. 
Essas “lições de casa” podem ser resolvidas durante a aula prática e mostradas ao professor/especialista. Neste caso, só precisa colocar o código-fonte em edisciplinas (não precisa postar o vídeo).
Se não conseguir terminar essas “lições de casa” durante a aula prática, o grupo poderá terminar em casa até o próximo domingo. Neste caso, precisa postar o vídeo.

Após resolverem as “lições de casa”, vocês devem gravar um vídeo de no máximo 40s, mostrando que fizeram os exercícios.
Não pode enviar vídeo com mais de 40s, pois a quantidade de alunos do curso não nos permite corrigi-los: pode haver desconto na nota.
Vocês devem convencer o espectador do vídeo (o professor/especialista vai corrigir a sua lição) que fizeram os exercícios computacionais solicitados e que eles estão funcionando
corretamente.
Não precisam explicar teorias que o professor/especialista já conhece.

Cada dupla deve enviar um único vídeo (não postem o mesmo vídeo duas vezes).
A dupla deve se alternar na gravação de vídeo, isto é, se Fulano gravou vídeo 1, Ciclano deve gravar vídeo 2, etc.

É 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 rosto e algum documento do aluno que gravou o vídeo (como a carteira USP, RG, CNH, etc).
Vocês 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, deve assegurar que todos os professores/especialistas (magno.silva@usp.br, hae.kim@usp.br, renatocan@lps.usp.br, wesleybeccaro@usp.br) tenham acesso ao seu vídeo.
Não esqueçam de escrever/falar os nomes da dupla (ou do único aluno, escrevendo: "exercício feito individualmente") em três lugares diferentes: no campo “comentários sobre o envio”, no início do vídeo e no início dos programas-fontes. Caso contrário, um dos alunos da dupla pode ficar sem a nota.
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 o professor/pesquisador ficar com alguma dúvida, poderá olhar também os códigos-fontes.
Assim, entreguem também os códigos-fontes (.cpp ou .py ou .ipynb) das lições.
Nos códigos-fontes, coloquem os nomes da dupla na primeira linha.
Mesmo os grupos que terminaram o exercício durante a aula prática devem entregar os códigos-fontes, colocando observação de que o funcionamento do programa já foi mostrado durante a aula.
Exercícios entregues com atraso terão desconto de 0,5 ponto por dia de atraso.
As lições não podem ser entregues com atraso de mais de uma semana.

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

3) Cálculo da média final:

MHae = (MLC + EP) / 2

onde MHae é média final da minha parte da disciplina, MLC é a média das lições de casa e EP é a nota do exercício-programa.

Importante: Para ser aprovado na disciplina, o aluno deve tirar nota >= 3 nas duas partes da disciplina (do Magno e do Hae).

Importante: Como qualquer disciplina de graduação da USP, é necessária a presença em 70% das aulas. Controlaremos a presença com lista de chamada.
 
Exercício-programa:


Exercícios-programas de outros anos: