Departamento de Informática – PUC-Rio | Temas de Projeto Final de Graduação 2024.1

Temas de Projeto Final de Graduação 2024.1


Adriano Branco (abranco@inf.puc-rio.br)

1) Aplicações IoT com “Energy Harvesting”
– O objetivo é o desenvolvimento de uma aplicação baseada numa rede de dispositivos IoT que funcionem coletando energia do ambiente e sem uso de baterias.
– Temas envolvidos: Programação de microcontroladores, comunicação sem fio, sensores/atuadores, coleta e armazenamento de energia.
– Oportunidade de trabalhar com hardware de microcontroladores, sensores e atuadores

2) Framework para computação intermitente em dispositivos IoT
– O objetivo é a seleção e implementação em dispositivos reais de um framework para computação intermitente, incluindo o suporte para CPU e Periféricos.
– Temas envolvidos: Programação de microcontroladores com FRAM (MSP430FR*), computação intermitente e controle de periféricos.
– Oportunidade de trabalhar com hardware de microcontroladores, sensores, atuadores e coleta e armazenamento de energia.

3) Computação intermitente para Terra – Uma máquina virtual para dispositivos IoT
– O objetivo é a adaptação da máquina virtual Terra para operar em condições de computação intermitente.
– Temas envolvidos: Máquina virtual, assembler, programação microcontroladores, suporte para computação intermitente.
– Oportunidade de trabalhar com hardware de microcontroladores, sensores, atuadores e coleta e armazenamento de energia.
– VM Terra
– Dev Site: http://afbranco.github.io/Terra/terra-home.html
– System Site: http://www.inf.puc-rio.br/~prjterra/

4) IHC + IoT
– O objetivo é aplicar conceitos/avaliação de IHC em um projeto de dispositivos IoT
– Temas envolvidos: IHC e projeto de IoT com interação humana
– Oportunidade de trabalhar com hardware de microcontroladores, sensores, atuadores.


Alberto Raposo (abraposo@tecgraf.puc-rio.br)

Tema Realidade Estendida:

RE.1) Utilização da Realidade Virtual como ferramenta de reabilitação de pacientes.

RE.2) Utilização da Realidade Estendida Colaborativa para tomadas de decisão.

RE.3) Um jogo sério multi-jogador para treinamento cirúrgico em ambiente imersivo.

RE.4) Uso de Explainable AI para minimização do cybersickness em ambientes de realidade virtual.

Tema Computação Gráfica:

CG.1) Processamento e análise de nuvens de pontos 3D: Desenvolvimento de uma ferramenta para aprimorar, segmentar e comparar regiões de interesse em nuvens de pontos 3D.

Tema Machine Learning:

ML.1) Identificação e segmentação de doenças pulmonares em radiografias de tórax.

ML.2) Exploração de dados para suporte ao treinamento de modelos de Machine learning
Desenvolvimento de uma ferramenta para apoiar a análise e criação de datasets que serão utilizados posteriormente no treinamento de modelos de análise de imagens médicas baseados em Machine Learning.

ML.3) Aplicações de treino e/ou inferência de SDFs (Signed Distance Functions) neurais (Neural Implicits) na plataforma NVidia Omniverse.


Alessandro Garcia (afgarcia@inf.puc-rio.br)

1) Um Minerador de Relações entre Dados Sociais e Produtividade em Repositórios de Software

2)Um Minerador de Decisões ‘Intuitivas’ dos Desenvolvedores e suas Relações com Qualidade e Produtividade do Software


Andrew Diniz (andrew@les.inf.puc-rio.br)

1) Desenvolvimento de soluções tecnológicos no contexto de cidades inteligentes;

2) Desenvolvimento de soluções tecnológicas que ajudem na aplicação de metodologias ativas de aprendizagem;

3) Desenvolvimento de soluções tecnológicas no contexto da saúde.


Augusto Baffa (abaffa@inf.puc-rio.br)

1) Modelagem emocional para agentes inteligentes (IA p/ jogos)
Desenvolvimento de agentes inteligentes que possam decidir racionalmente e/ou com base em estados emocionais. Uso como NPCs em jogos de modo a humanizar a interação com o jogador.

2) Modelos de interação social (recomendação/simulação e IA p/ jogos)
a) Desenvolvimento de modelos para detectar o perfil da audiência/jogadores e, com base nisto: 
    – Recomendar ações, missões, itens para o jogador 
    – Modificar parâmetros de dificuldade ou ajustes na narrativa/dramatização
b) Simular a resposta social para algum tipo de estímulo ou interação. Prever/Simular a reação dos agentes envolvidos no grupo em questão.

3) Geração de conteúdo procedimental (Procedural Content Generation in games)
* Geração automática de Level-design, Cenários, Música e/ou narrativa p/ jogos
Explorar métodos para a criação automática de conteúdo para jogos. Desenvolver algoritmos para criação de fases, dungeons, mapas (level-design) ou sequência de acontecimentos que levem ao objetivo (narrativa/história do jogo). Também poderia ser explorada a geração de música (apesar de que este item requer conhecimento de teoria musical).

4) Sistemas conversacionais (geração de linguagem, interpretação de linguagem)
Criação de agentes de conversação, assistentes virtuais como Siri, Alexa ou Woofy (que é o meu). Foco no atendimento ao público ou criação de NPCs para jogos – onde podem ser usados para criação de missões e interação com a narrativa.


Bruno Feijó (bfeijo@inf.puc-rio.br)

1) Personalidade e comportamento em jogos para identificação de decaimento cognitivo

2) Geração automática de variantes de narrativa em jogos


Greis Silva-Calpa(greis@tecgraf.puc-rio.br)

1)     IHC + Inteligência Artificial

  • Interfaces inteligentes na saúde, indústria e educação
  • Design de IHC para sistemas inteligentes
  • Técnicas de Machine Learning (ML) nos processos de IHC

2)     Tecnologias assistivas

  • Técnicas de interação para pessoas com dificuldades físicas
  • Acessibilidade no uso de plataformas de programação para alunos com comprometimento nas mãos 
  • Ambientes virtuais para apoio nos processos cognitivos deteriorados pela idade
  • Ambientes virtuais para oferecer suporte aos cuidadores de pessoas com deterioro cognitivo
  • Jogos sérios para pessoas com diversidade funcional.


Hermann Haeusler (edward.haeusler@gmail.com)

1) Tradutor de Circuitos digitais clássicos para circuitos quânticos.

2) Estudo empírico em aprendizado de máquina com poucos dados rotulados.

3) Estudo e implementação de ferramentas de suporte a um provador quântico (em desenvolvimento).

4) Viabilidade do cálculo da complexidade de Kolmogorov por dist. prob. de saída de máquinas de Turing pequenas para sinais coletado em circuitos neurais naturais. Oportunidade de trabalhar com neurociência.


Juliana Alves Pereira (juliana@inf.puc-rio.br)

1) Uso de soluções de aprendizado de máquina para apoio a manutenção e evolução de software
2) Proposição de um minerador de requisitos não funcionais em repositórios de software
3) Estudo das barreiras para a humanização e equidade em comunidades de desenvolvimento de software


Markus Endler (endler@inf.puc-rio.br)

1) GUI para o Global CEP Manager (GCEP)

Desenvolvimento de uma Interface gráfica intuitiva para gerenciamento de regras EPL (linguagem do CEP Esper) para ser o front-end do Global CEP Manager do ContextNet. O Global CEP Manager permite escrever e fazer o deployment de regras CEP tanto em Mobile Hubs (interagindo com o seu serviço MEPA) como em Processing Nodes (no SDDL core). Na interface deve ser possivel visualizar as classes/categorias de MHs e PNs disponíveis no sistema, ter uma sub-janela para escrever uma regra CEP em EPL (https://www.dropbox.com/s/7vxtyagxxkpou22/CEP-EPL-slides.pdf?dl=0), reduzi-la a um icone e poder arrasta-la sobre uma classe de nós, causando assim o deployment dessa regra no nos nós da classe. E ao clicar no icone da classe de nós, deveria ser possivel ver a lista de regras lá implantadas, e fazer o seu gerenciamento com opções de um contextual pop-up menú.

Complexidade: media.

2) Packet Manager (Instalador) para o ContextNet Core e o Interscity

O MUSANet integra o middleware ContextNet e o InterSCity em um sistema de middlewares para SmartCities. No entanto, ambos requerem vários passos de instalação, seja em um notebook, um desktop ou servidor de um cluster. O objetivo desse trabalho é desenvolver um instalador integrado para os dois softwares de forma a facilitar o deployment e uso deles. A parte mobile (Mobile Hub) não precisará ser tratada, já que consistirá de um .apk a ser instalado pelos clientes móveis. Preferencialmente, será para a plataforma linux-like, e portanto poderá usar uma ferramenta como o apt-get, rpm, ou o pkg-tools

Complexidade: baixa

3) Geolocalizacão Simbólica usando BLE Beacons

Através do Mobile Hub é possível detectar e identificar todos os beacons BLE presentes na vizinhança do smartphone. Isso ocorre porque os beacons emitem os seus UUIDs a cada anúncio periódico d protocolo Bluetooth (i.e. o beacon). No entanto, mesmo que se registre esse conjunto de beacons vistos em cada local da região de interêsse, essa localização ainda está desprovida de um significado simbólico (i.e. um tipo e nome), por exemplo, se é o almofarixado, a copa, a secretaria, um corredor, uma sala de estudos, etc, e qual é a identificação do local, por exemplo, sala 503. O objetivo portanto é desenvolver um sistema mobile-app cliente e um serviço do ContextNet core com uma base de dados Ctree, que permita um usuário nomear e classificar os seus locais de interesse. A ideia é que ele percorra a região, e em cada local de interesse, acione um botão de “gravar”, que irá armazenar as UUIDs e as intensidades de sinal de Rádio BLE durante um certo tempo (30 segundos), para em seguida permitir que o usuário digite no mobile app a posição do local na hierarquia de contenimento, como por exemplo, “PUC-Rio/RDC/floor4/418” e o tipo da sala/aposento , como “Sala-aula”. Estas informações, incluindo o UUID e os sinais de rádio BLE de todos os beacons, serão então empacotadas em um JSON, enviadas para o servidor no Core, que as armazena de acordo com a hierarquia na base de dados. Uma vez armazenadas essas informações, elas podem ser consultadas para fins de geo-localização indoor, por qualquer Mobile Hub que passe nesses locais. Para tal, o servidor disponibiliza uma API RESTFul getSymbolicName() que, recebe como entrada a lista de UUIDs e RF signal strengths e retorna como resultado a identificação simbólica (e a classe) do local cujo fingerprint na base de dados (lista de UUIDs e RF signal strengths) se aproxima ao fingerprint enviado na consulta.

4) Light CEP Engine em Lua

Atualmente, no ContextNet temos engines ESPER para Complex Event Processing (CEP) executando em servidores do ContextNet Core (cluster) mas também em smartphones Android como parte do Mobile-Hub, que são os M-EPAs.

Mas cada vez mais percebemos a necessidade ter essa mesma funcionalidade de CEP em dispositivos (Mobile-Hub) com menos recursos, como por exemplo o SoC ESP32 (https://www.espressif.com/en/products/hardware/esp32/overview).

Assim, esse projeto consiste de implementar engine CEP parcial em Lua para esses dispositivos com poucos recursos.

E precisaria traduzir também um subset da linguagem Event Processing Language (EPL) do ESPER para Lua, para permitir o carregamento e a execução de regras CEP.

Referências:

MEPA ContexNet ** http://www-di.inf.puc-rio.br/~endler/paperlinks/SBRC-Talavera-2016.pdf

ESPER Tech ** http://www.espertech.com/ **

Overview of the EPL** https://docs.oracle.com/cd/E14571_01/apirefs.1111/e14304/overview.htm#EPLLR106 **

5) Comunicação direta de M-OBJ para M-OBJ

No ContextNet cada M-OBJ (aquele descoberto) e alcançado por um M-Hub possui uma identificação única (UUID), que serve como endereço destino de mensagens. No entanto, por enquanto realizamos somente a comunicação nos sentidos: M-OBJ => Core e Core => M-OBJ, mas nunca a possibilidade de um sensor conversar diretamente com um objeto com atuação, como por exemplo um TemperatureSensor enviar comandos {+Frio, -Frio Desliga} para um ar-condicionado. Naturalmente, na maioria dos casos não será o próprio sensor capaz de construir tal mensagem, mas sim uma lógica nos M-Hubs correspondentes. Então, é o M-Hub quem deve selecionar o M-OBJ onde a atuação deve acontecer, verificar se ele está operacional e se ele é alcançável através de outro M-Hub. Caso positivo, deve então encaminhar a msg de comando para o M-Hub alvo, que usará o M-ACT para fazer a atuação.

Se houver mobilidade em curso, com possibilidade de alcançabilidade intermitente, então isso ainda requer algum mecanismo de confirmação (ack) da atuação e de retrial caso a atuação ainda não tenha sido concluída.

6) Smart Health Sense.

O Smart Health Sense (SH-Sens) é uma plataforma de monitoramento remoto de pacientes baseado numa arquitetura conceitual que aborda diversos problemas inerentes aos sistemas IoT, tais como interoperabilidade, escalabilidade, resiliência, segurança e privacidade. Ele é composto por um kit de sensores wearable, um gateway e um middleware de distribuição de dados. No módulo wearable foi incorporado um sistema de escores para gerenciar funcionalidades auto-adaptativas que promovem a redução de dados insignificantes, redundantes e o consumo de energia. Também foram incorporados mecanismos para a redução de alarmes falsos e redundantes.

Tópicos para estudo:

  • Explorar as funcionalidades da estação base, por exemplo, fazer offload/onload de funções conforme o nível de energia do wearable
  • Melhorar a aplicação Mobile de apresentação dos dados conforme o caso de uso.
  • Desenvolver uma interface de configuração do sistema para os principais parâmetros utilizados.
  • Melhorar o protocolo de comunicação entre o sensor e a estação base.
  • Incorporar mecanismos de autenticação e autorização no módulo sensor e na estação base.

7) Usando IoT para estender uma plataforma de Realidade Virtual para se tornar um ambiente de Realidade Estendida

(Pesquisa em parceria com a startup LivePlanet ) – Trabalho de TCC (1 ano) ou mestrado: (2 anos)

LivePlanet é uma startup nacional, spin-off do DI, e que executa projetos para Realidade Virtual com várias empresas e órgãos municipais e estaduais.

Sua plataforma de RV tem uma modelagem baseada em coordenadas reais e permite que se modele ambientes indoor e outdoor, com possibilidade de comunicação via chat e video-conferência entre os usuários do ambiente da realidade virtual.

Percebendo uma demanda de alguns clientes, focados na modelagem de grandes eventos e a interação de usuários participantes do evento, a LivePlanet agora quer permitir que para um mesmo evento (digamos uma exposição) os usuários “logados” no mundo virtual e os usuários participando do evento no mundo físico, passeado pela exposição, possam se ver, se encontrar e se comunicar como se estivessem no mesmo espaço ciber-fisico.

Para tal, a plataforma LivePlanet terá que ser estendida com uma API para receber posições do usuários no mundo físico, e fornecê-los para plataforma, para que ela possa fazer o mapeamento das coordenadas (fisico <—> virtual) e fazer os usuários co-localizados se verem (nos avatares) e se comunicarem. Em uma primeira versão o acesso do mundo físico ao virtual será por smartphones, utilizando ou as coordenadas GPS ou de antenas (para ambientes outdoor), ou através do reconhecimento de Beacons Bluetooth LE posicionados em lugares estratégicos em ambiente indoor.

E depois essa extensão terá que ser minuciosamente testada e analisada com relação a latência induzida pela movimentação do usuário no mundo real.


Marley Vellasco (marley@ele.puc-rio.br)

(apenas p/ alunos de Engenharia da Computação)

1) Redes Neurais Convolucionais na detecção e classificação de placas de trânsito brasileiras
Estudar arquiteturas de Deep Learning, utilizando modelos de Redes Neurais Convolucionais para maximizar a capacidade de detecção e classificação de sinalização de trânsito em autoestradas.

2) Redes Neurais Convolucionais na classificação em tempo real de placas de trânsito brasileiras
Estudar arquiteturas de Deep Learning, utilizando modelos de Redes Neurais Convolucionais otimizadas para processar classificação de sinalização em veículos autônomos

3) Redes Neurais Convolucionais na classificação de Sinalização Horizontal e Vertical em estradas Brasileiras
Estudar arquiteturas de Deep Learning para identificar sinalização horizontal (sinalizações no asfalto) e vertical (placas laterais e superiores) em estradas Brasileiras

4) Modelos de Deep Learning para Segmentação de imagens médicas
Aplicar modelos de deep learning e de neural-architecture search (SegQ-NAS) na segmentação de imagens tomográficas de padrão pós-covid.

5) Inteligência Artificial aplicada na otimização de filas de cirurgias eletivas


Paulo Ivson (pivson@inf.puc-rio.br)

    1) Ciência de dados e IA para análise de eficiência e redução de emissões de poluentes de veículos
    Pesquisar e desenvolver análises estatísticas multivariadas, análises de séries temporais, modelos de aprendizado de máquina e aprendizado profundo para identificar ineficiências em veículos, identificar suas possíveis causas, prever comportamentos futuros, etc.
    Oportunidade para aprender técnicas de Ciência de Dados e IA, além de atuar em um problema prático, utilizando dados reais de empresas de mercado.

    2) Deep learning para detecção e avaliação de corrosão em instalações industriais
    Pesquisar e desenvolver modelos de aprendizado profundo aplicados sobre fotografias tradicionais e 360o para segmentar superfícies corroídas, classificar diferentes tipos de corrosão, quantificar e medir sua severidade, prever evolução da corrosão no futuro, etc.
    Oportunidade para aprender técnicas de Computação Gráfica e IA, além de atuar em um problema prático, utilizando dados reais de empresas de mercado.

    3) Deep learning para processamento geométrico e simplificação de modelos 3D
    Pesquisar e desenvolver modelos de aprendizado profundo para detectar similaridades entre objetos 3D, reconhecer objetos paramétricos, minimizar a quantidade de triângulos necessária para representar geometrias, dentre outras otimizações visando minimizar o consumo de memória de grandes modelos 3D.
    Oportunidade para aprender técnicas de Computação Gráfica e IA, além de atuar em um problema prático, utilizando dados reais de empresas de mercado.

    4) Algoritmos e tecnologias inovadoras para visualização eficiente de grandes cenas 3D na Web
    Pesquisar e desenvolver técnicas para visualização eficiente de modelos CAD 3D com milhares de objetos, cenas 3D com quilômetros de extensão, nuvens de pontos massivas geradas por sensores laser de precisão milimétrica, etc.
    Oportunidade para aprender tecnologias Web modernas, técnicas do estado da arte da indústria de jogos, além de atuar em um problema prático, utilizando dados reais de empresas de mercado.

    5) Renderização de cenas 3D fotorealistas usando traçado de raios acelerado por GPU
    Pesquisar e desenvolver algoritmos eficientes para calcular efeitos de iluminação fisicamente corretos baseados em técnicas de Physically Based Rendering (PBR) e características reais de superfícies, materiais, lentes, câmeras e sensores digitais.
    Oportunidade para aprender tecnologias do estado da arte utilizadas pelas indústrias de cinema e jogos eletrônicos.


    Raul Feitosa (raul@ele.puc-rio.br)

    1) Aplicações de Inteligência Artificial para mapeamento de espécies arbóreas a partir de imagens de drones em ambientes urbanos e florestas
    2) Aplicações de Inteligência Artificial na fusão de dados óticos e RADAR para detecção de áreas desmatadas nos biomas Brasileiros
    3) Aplicações de Inteligência Artificial para estimativa de risco de desmatamento no curto prazo (próximos 15 dias)
    4) Aplicações de Inteligência Artificial para segmentação de imagens omnidirecionais / imagens 360 graus


    Roberto Ierusalimschy (roberto@inf.puc-rio.br)

    • Adoção de bibliotecas órfãs no eco-sistema de Lua

    Um problema constante em projetos de software livre é que o criador do projeto parte para outros interesses e deixa o projeto sem manutenção ou evolução. O eco-sistema de Lua, como qualquer outro, tem várias bibliotecas órfãs, nas mais diversas áreas da computação. Um trabalho de fim de curso atualizando uma biblioteca já estabelecida é uma contribuição importante para o eco-sistema de Lua, e uma oportunidade de trabalhar em um projeto com impacto para muitos outros programadores.


    Sérgio Colcher (colcher@inf.puc-rio.br)

    1) Aplicação de Machine Learning no Controle de Congestionamento de Redes TCP/IP

    2) Segmentação e Indexação de Ações e Personagens em Video


    Sérgio Lifschitz (sergio@inf.puc-rio.br)

    1) ETL para análise de dados de redes sociais

    2) Workflows científicos e aplicações em genomica

    3) Bases e Grafos de Conhecimento: estudo de NoSQL stores

    4) Sistema automatizado para Feiras Livres


    Waldemar Celes (celes@tecgraf.puc-rio.br)

    1) Sports analytics
    Pesquisar e desenvolver algoritmos na área de sport analytics. 
    Desenvolver algoritmos para análise de dados e visualização de informação aplicados
    a dados de partidas de basquete.
    Requisitos: interesse/conhecimento de python, javascript, angular.
     
    2) Scientific visualization
    Pesquisar e desenvolver algoritmos na área científica. Desenvolver técnicas de visualização 
    aplicadas a modelos científicos (ex. modelo numérico de reservatório de Petróleo).
    Requisitos: interesse/conhecimento de computação gráfica, OpenGL com programação em GPU
     
    3) Rendering
    Pesquisar e desenvolver algoritmos de renderização. Desenvolver algoritmos de renderização
    em tempo real, visualização ilustrativa, geração de imagens foto-realistas, entre outros.
    Requisitos: interesse/conhecimento de computação gráfica, OpenGL com programação em GPU
     
    4) Geometry processing
    Pesquisar e desenvolver algoritmos de processamento malhas (de superfícies ou de volumes).
    Aplicar conhecimento de geometria computacional e geometria discreta.
    Requisitos: interesse/conhecimento de álgebra e representação de malhas de triângulos.