Bruno Alexandre Sousa

About Me

Hi, my name is Bruno Alexandre, I’m a Software Engineering master’s student at Universidade do Minho, currently specializing in Intelligent Systems (A.I) and Computer Graphics.

I have experimented with a range of different languages and frameworks and I am always looking for opportunities to work with something new. Currently, I’m most familiar with: Java, C/C++, Python and Javascript.

Recently, I’ve been working with:

  • Tensorflow, for fast development iteration on neural networks
  • Jade, for FIPA-ACL messaging protocols between distributed systems
  • OpenGL and GLSL, for real-time rendering projects
  • OpenCV, for image loading and processing

For my coursework, I also had to learn:

  • API’s for distributed computing such as OpenMP and MPI
  • DevOps technologies like Docker, Kubernetes and Ansible

My Favorite Projects

🚦 Traffic Sign Recognition

Deep learning models (CNN's and Ensembles of CNNs) for classification of traffic signs on the GTSRB dataset.

These are some CNNs and Ensembles (stacked CNNs) I trained and tested with the GTSRB dataset to classify road/traffic signs for a Computer Vision lab project.

Primary Features

  • Offline pre-processing with image filters (such as Sobel’s, Local Histogram Equalization, Unsharp Masking, …) utilizing OpenCV and scikit-image.
  • Real-time data augmentation (translations, rotations, shearing, color manipulation) embedded as in-model layers.
  • Fully trained (and saved) Ensembles of stacked CNN’s created with Tensorflow .

🏃 Physical Activity Recognition

Detect whether a smartphone's user is running, walking, riding a bike or resting/idling.

Group lab project implementing a full data collection, pre-processing, visualization and model training pipeline for physical activity classification through physical sensors of Android smartphones.

Primary Features

  • Data collection from Gyroscope and Accelerometer sensors of Android smartphones through a custom-made app.
  • Data is uploaded to and stored in a permanent Firebase server.
  • Custom data visualization tool/app implemented with Streamlit.
  • Deep Learning Tensorflow model capable of identifying if the user is Running, Walking, Riding a Bike or Idling.

🌍 Real-time Procedural Terrain Generation

Collection of GLSL shaders (OpenGL 4.0+) for procedural generation and real-time rendering of terrain.

This is a Nau project with GLSL shaders implementing procedurally generated terrain. It employs many real-time rendering techniques and allows for many types of terrain (realistic or toon-like, static or animated):

  • Procedural generation is implemented with various noise functions such as Perlin, Simplex and Voronoi noise. Adding more noise functions is also possible and very easy.
  • Variable terrain detail via a extensively parametrized and customizable Fractional Brownian Motion implementation.
  • Dynamic LOD (level of detail) via variable tessellation levels.
  • Dynamic Blinn–Phong lighting model.
  • Height based texturing, applied with noise based sampling to disguise obvious texture repetition/tiling.

Education

Master's in Software Engineering

Universidade do Minho

currently attending

  • Specialization in Intelligent Systems:
    • Agents and Multi-agent Systems Grade: 18/20
    • Deep Learning Grade: 15/20
    • Sensorization and Environment Grade: 17/20
  • Specialization in Computer Graphics:
    • Computer Vision and Image Processing Grade: 18/20
    • Real-Time Rendering Grade: 19/20
    • Raytracing and Physically Based Rendering Grade: 20/20

Bachelor's in Computer Science

Universidade do Minho

2021