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

Temas de Projeto Final de Graduação 2023.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


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


Eduardo Laber (eduardo.laber1@gmail.com)

1) Um estudo sobre algoritmos de agrupamento interpretáveis
Objetivo: Estudar, implementar e comparar algoritmos de agrupamento de fácil
interpretação

2) Um estudo de Aprendizado Ativo para Tarefas de Classificação
Objetivo: Estudar, implementar e comparar métodos de aprendizado ativo para escolha de exemplos que devem ser rotulados para tarefas de classificação

3) Utilizando Ciência de Dados para avaliar a qualidade de publicações no país
Objetivo: Avaliar a qualidade/quantidade das publicações científicas produzidas no país, em particular na área de computação, utilizando diferentes rankings nacionais e internacionais. Em linhas gerais, o trabalho consiste em: (i) coletar dados relativos as publicações produzidas no país, usando fontes como a DBLP ou o Lattes; (ii) limpar e normalizar os dados; (iii) avaliar as publicações segundo rankings nacionais (e.g. Qualis) e internacionais (Core, CCF, CSRanking); (iv) analisar e correlacionar os resultados obtidos. Para realizar o trabalho, o aluno terá que explorar uma série de técnicas de ciência de dados.


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) Aplicação de aprendizagem de máquina em sistemas configuráveis
2) Replicação de estudos empíricos: uso de aprendizagem de máquina em engenharia de software
3) Proposição de um minerador de requisitos não funcionais em repositórios de software
4) Proposição de um classificador de códigos de aprendizagem de máquina
5) Estudo da evolução de mal cheiro no código de aprendizagem de máquina


Marcos Kalinowski (kalinowski@inf.puc-rio.br)

1) Explorando aprendizado de máquina para modelagem de tópicos e classificação automática de artigos científicos.

2) Visualização de informações sobre o uso de instrumentos psicométricos em pesquisa em engenharia 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


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


Tatiana Escovedo (tatiana@inf.puc-rio.br)

1) Machine Learning, Analytics e Ciência de Dados

2) Engenharia de Software para Ciência da Dados

3) IHC aplicada a Ciência da Dados


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

1) Visualização de mapas de arremessos de uma partida de basquete
Todos os arremessos (convertidos ou não) de uma partida de basquete são anotados (jogador e posição) e representam dados a serem analisados. Quando se deseja visualizar todos os arremessos de todos os jogadores, o mapa obtido é de difícil compreensão, pois são muitas as informações. O objetivo deste projeto é investigar técnicas apropriadas de visualização de mapas de arremessos que facilite a análise de profissionais da área de basquete.

Desejável: interesse em algoritmos de visualização

2) Geração de malhas de quadriláteros
O objetivo desse projeto é investigar técnicas de geração de malhas de quadriláteros que sejam alinhadas com as fronteiras do domínio. Para tanto, planeja-se explorar uma geração de pontos internos ao domínio, baseado em um campo de distância, que favoreça a construção de malhas de triângulos que então serão convertidos em quadriláteros alinhados às fronteiras.

Desejável: interesse em algoritmos geométricos