Rover with Facial Recognition Capabilities
Developed a rover with facial recognition capabilities utilizing Raspberry Pi and transfer learning (CNNs).
Developed a rover with facial recognition capabilities utilizing Raspberry Pi and transfer learning (CNNs).
Developed a machine learning web app with a Flask backend and a React frontend, and deployed using Azure.
Published a dashboard on Customer Shopping Trends using Tableau.
Solved maze through image processing and reinforcement learning techniques.
Experimented with temporal difference methods, specifically Sarsa and Q-Learning
This is a rover with facial recognition capabilities that I developed for my capstone project in my Master’s degree in Computer Science. The rover detects a user's face and classifies them as either a child or an adult. For adults, the rover enables control through Blue Dot, an Android app installed on my tablet. If classified as a child, the rover moves backward and advises that permission from a parent or guardian is required.
The design and development process consists of two main parts: hardware and software.
The hardware design involves building the physical robot using Raspberry Pi. I integrated a camera, a speaker, wheels, motors, and motor drivers, etc., for user interaction and motion.
The software design focuses on training machine learning models. I conducted experiments using transfer learning with Convolutional Neural Networks, specifically MobileNet V.2, developed by Google and implemented using TensorFlow. By using depthwise-separable convolutions and residual connections, MobileNets v2 can be deployed with low computational cost, optimized for mobile and embedded vision applications:
Based on the above-mentioned MobileNet v.2, I trained and compared three different models as follows:
The following compares the performance of three different models:
The main libraries used for this project include TensorFlow, OpenCV, PiCamera2, NumPy, Matplotlib, libcamera, gpiozero, pygame, and BlueDot.
This application accepts a last name as user input and provides its predicted ethnic origin. I created this web app with a Flask backend and React frontend, deployed through Azure Web Services. I utilized TensorFlow to train deep neural networks, incorporating Natural Language Processing and Recurrent Neural Networks. The deep neural network model is designed to predict ethnicity based on a last name. It begins with the input layer, where a last name is taken as input. The input undergoes a data masking process ('MASK' layer). The masked data is then forwarded to the LSTM (Long Short-Term Memory) layer, consisting of 256 nodes. After masking, it is flattened and enters the "Dense" layer, which includes two layers with ReLU activation functions featuring 128 and 64 "neurons," respectively. Finally, the output layer, built with a Softmax activation function, predicts ethnicity based on the user input (last name).
This dashboard is created using Tableau and is based on the Customer Shopping Trends Dataset from Kaggle.
Kaggle DatasetImages of square mazes with varying complexities are randomly chosen and downloaded from Google, then processed through image processing to convert them into a grid suitable for a Markov Decision Process. Different Reinforcement Learning techniques, including Dynamic Programming, Temporal Difference, and Deep Q Reinforcement Learning, are employed to solve the maze, and their performance is compared. I led this team project, and technically contributed by coding for the image processing, creating the learning environment, and training the model with Dynamic Programming.
Cliff Walking is an environment within a grid world featuring a cliff. The task involves finding an optimal path from the starting state to the goal state without falling off the cliff. I compared the performance of Sarsa and Q-Learning in the Cliff Walking scenario. Additionally, I experimented with different hyperparameters.