Showing 11 Result(s)

Speech Denoising with Deep Nets

In this project I trained neural networks using MATLAB to remove the noise from speech signals with background noise to enhance the quality and the intelligibility of the speech.

For this, I created two pipelines. The first pipeline uses the Discrete Cosine Transform (DCT) and the second pipeline uses the Short-Time Fourier Transform (STFT). Their diagrams can be found below.

I ran multiple tests for both pipelines using different parameters such as the window length, the window type, the overlap, the neural network type, and the number of network layers.

To measure the performance and identify the best network, I calculated the average MSE between the original and the denoised signals across all test files. The table below summarizes the performance of the system for each test. The best results gave an MSE of 0.0029!

Listen to the original (top), noisy (middle), and denoised (bottom) signals below, and check out their spectrograms!



Check out the slide deck and send me a message to learn more!

Simultaneous Localization and Mapping (SLAM)

In the field of robotics, Simultaneous Localization and Mapping (SLAM) is the problem of constructing and constantly updating a map of an environment that is unknown to the robot while at the same time keeping track of the robot’s location in that map.

In this project, I developed several algorithms to implement the SLAM technique for a mobile robot in an indoor environment. For this, I used odometry, inertial and range measurements that had been previously collected using the robot. The LIDAR used to connect these measurements is Hokuyo UTM-30LX. The sensors the robot used to collect these measurements include wheel encoders, a Light Detection and Ranging sensor (LIDAR), and an Inertial Measurement Unit (IMU).

The project has two main parts. For the first part, I estimated the map and robot position using the dead-reckoning technique. For the second part, I implemented a Particle Filter (PF) with systematic re-sampling to implement SLAM and improve the results obtained in the previous part.

For this project I used Python. I avoided using any SLAM libraries, so I can confidently say that I now understand how the algorithms work through and through!

Check out a few videos for different environments the robot visited, and click on the button to the project repository to read the report!

HealViz (Health Literacy App)

Every year many people get at least one blood test done, but most of them don’t understand what the results mean. In fact, 14% of adults in the U.S have below basic health literacy. These adults are more likely to report their health as poor and lack health insurance (https://health.gov/communication/literacy/quickguide/factsbasic.htm).

To solve this problem, I worked in a team with Lucie Bolé, Simi Rajpal, and Ian Mujkherjee to build HealViz at Cornell Tech, NYC. HealViz is an iOS mobile application that provides users with graphical representations of their blood test result data, as well as definitions of medical terms and actionable insights to use this information to improve their own health.

Check out the video! For more information on the project click on the link to the repository.

Gesture Recognition

In this project, I trained several Hidden Markov Models (HMMs) to identify different arm motion gestures in real time. The data used to train the models were sensor readings from the accelerometer and the gyroscope of an Inertial Measurement Unit (IMU). These readings corresponded to six different motions: Wave, Infinity, Eight, Circle, Beat3, Beat4.

An HMM was trained for each of these motions. Once trained, given a set of new IMU measurements, the model that assigns the highest probability to the sequence of observations is selected as the motion that the measurements describe. I wrote the code to train and test the HMMs from scratch without the use of HMMs libraries – what a journey!

To learn more about this project click the button below!

Chair Posture Tracker

This project consists of a prototype for a data logger that I developed in a week. It measures, logs and displays the percentage of time that you spend sitting in an incorrect posture. For this, it uses an Arduino, an EEPROM, a potentiometer, and a Force Sensitive Resistor (FSR), among other components. I used C language to write the firmware. There are no excuses now – you can start reducing the percentage of time until you obtain 0% time sitting incorrectly!

Check out the video! For more information on the hardware and software specifics of the project click on the link to the full project repository. I completed this project at Cornell Tech, NYC.

Color Segmentation

The aim of this project was to train different machine learning models to detect red barrels within new test images collected by a mobile robot and provide their location coordinates.

For this, I implemented color segmentation by training up to 12 models corresponding to different pixel colors. I used Multivariate Gaussian Probability Density Functions (PDFs) to represent each color distribution, and Bayes Theorem to calculate the probability of a new pixel belonging to each of the classes. I explored different color spaces and techniques to identify connected components and localize the barrel coordinates.

Check out the full project report by clicking below!

Reinforcement Learning

In the field of Machine Learning (ML), Reinforcement Learning (RL) is the area that studies how to determine the actions that a software agent must take in different environments to maximize the reward it obtains. It explores how to combine and balance the exploration of new areas
and the use of the information the agent has about explored areas to achieve the best outcome.


In this project, I developed and tested the algorithms to implement several RL tasks in three different environments: a domain Maze with a discrete state space, and the Acrobot-v1 andMountainCar-v0 environments with a continuous state space from the RL toolkit OpenAI Gym. The algorithms I implemented are Policy Iteration, Q-Learning and REINFORCE with Baseline. I evaluated them to different hyperparameters and identified the optimal parameters.

If you want to learn more, check out the project repo below!

Machine Learning Search Engine

The purpose of this work is to build a large-scale image search engine that searches for images relevant to a given natural language query and return them in order of similarity. The search engine was built using different machine learning techniques and comparing their efficiency. It is coded in Python. This project consisted of a Kaggle competition to be completed to the best of our abilities within approximately a week.

I worked in a team to complete this challenge at Cornell Tech, NYC.

For more information on the full project click on the link to the respository!

Mediacasting Analysis

This project consists of performing an in-depth analysis of the main technologies which are currently used by companies to provide content delivery to their customers, as well as to explore the Weighted Slope One method for predicting the ratings that customers are likely to give to a range of different movies. The first part of the analysis includes Content Distribution Networks (CDNs), Peer to Peer (P2P) Networks and Hybrid CDN-P2P networks used for content delivery. Additionally, the second part of the analysis focuses on the Weighted Slope One method as a Collaborative Filtering approach to predict user ratings for media contents.

I completed this project at the University of Surrey, UK. For more information on the project click on the link to the repository.