Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
Ciência de Dados
Departamento / Department
ISCTE
Ano letivo / Execution Year
2024/2025
Pré-requisitos / Pre-Requisites
Não existem pré-requisitos formais, mas assume-se que os estudantes têm conhecimentos de Álgebra Linear, de Estatística e sobretudo de Programação (a linguagem Python é extensivamente utilizada no âmbito desta UC).
Objetivos Gerais / Objectives
O principal objetivo consiste em dar a conhecer aos estudantes os principais e mais recentes métodos computacionais para manipulação e análise de imagens, com vista à extração automática de conhecimento. Serão aprofundadas na UC técnicas para extração de características de imagem que poderão ser usadas em algoritmos de aprendizagem automática clássicos e técnicas de aprendizagem profunda com aplicação a problemas que envolvam imagens, nomeadamente as baseadas em redes neuronais convolucionais. Para além disso pretende-se também familiarizar os estudantes com as principais ferramentas utilizadas para manipulação de imagens no âmbito da visão por computador e da aprendizagem automática, nomeadamente as bibliotecas OpenCV e Tensorflow, respetivamente, usando a linguagem de programação Python.
Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes
O1: Conhecer o processo básico de formação de uma imagem digital O2: Representar uma imagem em diferentes espaços de cor e no domínio da frequência O3: Realizar operações típicas de processamento de imagens O4: Extrair características de baixo nível de uma imagem O5: Implementar algoritmos clássicos de aprendizagem automática para classificar o conteúdo de imagens O6: Conhecer a arquitetura típica de uma rede neuronal convolucional (CNN) e perceber o seu funcionamento interno O7: Resolver um problema de classificação de imagens com complexidade média recorrendo a CNNs O8: Aplicar metodologias de transferência de conhecimento e fine-tuning usando CNNs pré-treinadas O9: Usar algoritmos de aprendizagem profunda para identificar objetos numa imagem O10: Conhecer algoritmos de aprendizagem profunda para geração automática de conteúdos multimédia O11: Manipular imagens usando a biblioteca OpenCV O12: Utilizar a biblioteca Tensorflow para desenvolver aplicações de aprendizagem automática
Conteúdos Programáticos / Syllabus
C1 - Aquisição e representação de imagens C2 - Operações com imagens C3 - Extração de características de imagem C4 - Introdução à aprendizagem automática C5 - Redes neuronais clássicas C6 - Redes neuronais convolucionais C7 - Transferência de conhecimento C8 - Arquiteturas de redes para deteção e identificação de objetos C9 - Arquiteturas de redes para geração automática de conteúdos
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified learning outcomes
C1 e C2 cobrem técnicas de processamento de imagens, estando associados a O1 a O3, que incidem na manipulação e processamento de imagens. C3 a C5 cobrem técnicas clássicas de extração de características de imagens e posterior utilização das mesmas num sistema de aprendizagem automática clássico. Estão associados aos objetivos O4 e O5. C6 e C7 incidem nas redes neuronais convolucionais e seu treino, para resolver problemas de classificação de imagens. Estão associados aos objetivos O6 a O8. C8 e C9 referem-se a arquiteturas de redes neuronais profundas para realizar tarefas mais complexas do que a classificação de imagens. Encontram-se associados aos objetivos O9 e O10. Há ainda a salientar que os diversos conteúdos programáticos estão também associados a objetivos de aprendizagem de cariz prático: O11, associado à implementação de técnicas de processamento de imagens (C1 a C5); e O12, associado à implementação e uso de algoritmos de aprendizagem automática (C4 a C9).
Avaliação / Assessment
Dado o caráter iminentemente prático da UC, só existem modalidades de avaliação ao longo do semestre, não estando prevista a avaliação por exame. Modalidade A (implica a presença em pelo menos 60% das aulas): - Participação em aula (20%) – individual, avaliada com base na participação em exercícios e atividades realizadas durante as aulas; - Desafios (20%) – em grupo, realizados “em casa”; - Projeto (60%) – em grupo, mas com avaliação individual; inclui relatório e discussão oral. Modalidade B (para quem não cumprir o critério de assiduidade mínima) - Teste (40%) – individual, realizado no final do período letivo; inclui uma parte prática; - Projeto (60%) – individual ou em grupo, mas com avaliação individual; inclui relatório e discussão oral. Todas as componentes têm uma nota mínima de 7.5 valores. Independentemente da modalidade seguida, a nota da componente "Projeto" é limitada pelo desempenho demonstrado individualmente na discussão oral, de acordo com a seguinte regra: - Muito bom desempenho – sem limite; - Bom desempenho – limite de 17 valores; - Desempenho suficiente – limite de 13 valores; - Mau desempenho – reprovado à UC. As discussões orais dos projetos serão definidas em datas durante as épocas de avaliação normais. Não existe processo de melhoria de nota. O processo de avaliação em época especial é idêntico ao da modalidade B, mas neste caso o projeto terá obrigatoriamente de ser realizado individualmente.
Metodologias de Ensino / Teaching methodologies
Aulas teórico-práticas semanais de 3h. A primeira metade da aula é expositiva e demonstrativa, sendo introduzidos os principais conceitos associados aos conteúdos da aula, e apresentando exemplos de aplicação dos mesmos. Na segunda parte da aula os estudantes resolvem os exercícios propostos, a fim de aplicarem de imediato a matéria que foi lecionada durante a primeira parte da aula. Os exercícios implicam o desenvolvimento de pequenos scripts ou trechos de código usando as bibliotecas OpenCV e Tensorflow.
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes
Os instrumentos de avaliação são desenhados para cobrirem todos os objetivos da UC. Os exercícios e "mini-projetos" (Desafios) realizados ao longo do semestre vão cobrindo os objetivos associados aos conteúdos programáticos à medida que estes vão sendo lecionados. O projeto final pretende cobrir com maior profundidade os objetivos de aprendizagem O6-O12. O planeamento das aulas da UC evidencia a relação entre os métodos pedagógicos usados e os objetivos de aprendizagem definidos anteriormente.
Observações / Observations
O método de avaliação da UC, sem modalidade de avaliação por exame, foi autorizado pela Comissão Pedagógica da ISTA a 22/fev/2024, em acordo com a alínea 3-a) do Art. 7º do regulamento geral de avaliação de conhecimentos e competências.
Bibliografia Principal / Main Bibliography
J. Howse, J. Minichino, Learning OpenCV 4 with Python 3, 3rd Edition, Packt Publishing, 2020, -, - M. Elgendy, Deep Learning for Vision Systems, Manning, 2020, -, -
Bibliografia Secundária / Secondary Bibliography
Tomás Brandão, Materiais da UC disponibilizados na plataforma de e-learning, 2024, -, - M. Nixon, A. Aguado, Feature Extraction and Image Processing for Computer Vision, 4th Edition, Academic Press, 2019, -, - I. Goodsfellow, Y. Bengio, A. Courville, Deep Learning, MIT Press, 2016, -, - Vários, Tutoriais e documentação da bibliotecas OpenCV, -, -, https://opencv.org/ Vários, Tutoriais e documentação da biblioteca Tensorflow, -, -, https://www.tensorflow.org/ R. Szeliski, Computer Vision: Algorithms and Applications, 2nd Edition, Springer, 2021, -, https://szeliski.org/Book/ F. Chollet, Deep Learning with Python, 2nd Edition, Manning, 2021, -, -
Data da última atualização / Last Update Date
2024-07-23