Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
Inteligência Artificial
Departamento / Department
Departamento de Ciências e Tecnologias da Informação
Ano letivo / Execution Year
2024/2025
Pré-requisitos / Pre-Requisites
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
A coerência entre os Conteúdos Programáticos (C) e os Objetivos de Aprendizagem (O) desta unidade curricular pode ser descrita através das seguintes relações: C1 -> O1, O2, O11 C2 -> O2, O3, O11 C3 -> O4, O11 C4 -> O5, O11, O12 C5 -> O5, O11, O12 C6 -> O6, O7, O12 C7 -> O7, O8, O12 C8 -> O8, O9, O12 C9 -> O8, O10, O12 Nestas relações, há a salientar que cada conteúdo programático está tipicamente associado a dois ou três objetivos de aprendizagem, em que pelo menos um deles tem um cariz prático e experimental. Em particular, os objetivos “O11 - Manipular imagens usando a biblioteca OpenCV” e “O12 - Utilizar a biblioteca Tensorflow para desenvolver aplicações de aprendizagem automática”, estão associados a diversos conteúdos programáticos, sendo que O11 é um objetivo associado aos conteúdos que incidem em técnicas e algoritmos de processamento de imagens, e O12 aos conteúdos que incidem em algoritmos de aprendizagem automática aplicada a imagens.
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 sessões de acompanhamento, relatório, apresentação 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 sessões de acompanhamento, relatório, apresentação 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 apresentações dos projetos e respetivas discussões orais 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 21/jul/2022, em acordo com o 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-17