Hi there! My name's Josh, and welcome to my personal website. I enjoy designing and automating stuff. Showcased on this site are my grad school research endeavors and various projects, both academic and personal.
M.S in Electrical Engineering | 2020-2022
Cumulative GPA: 3.70
Thesis: Vision Based Model for Xylem Water Detection
B.S in Mechanical Engineering | 2016-2020
Cumulative GPA: 3.62
Concentration: Design & Manufacturing
My research at UCR's ARCS (Autonomous Robots and Control Systems) Lab involves the designing of an autonomous smart pressure chamber system to be mounted on a robot for in-situ field testing of stem water potential of crops. The pressure chamber method of measuring stem water potential is one of the most widely employed and proven methods in the industry, but it comes with its grievances: Lack of scalability and potentially dangerous to operate. At ARCS, one of our goals is to automate the SWP measurement process to increase the safety, precision, and efficiency over the current method.
The focus of my research within the Agrobotics team has been to develop a computer vision model to take stem water potential measurements from avocado crops using the Scholander pressure chamber. These measurements are significant in agriculture becuase they are used as a proxy for orchard health and determine the optimal irrigation schedules for orchards. While building my vision model, I have also compiled a novel image dataset of wet and dry xylems from avocado and orange crops. My group intends to publish this dataset publicly and we have recently published a paper in the IEEE Robotics and Automation Magazine (IEEE-RAM). This paper has also been accepted to the International Conference on Robotics and Automation (ICRA 2024) in Yokohama, Japan.
The current results yielded by my vision model prove the potential and validity of our work, with the YOLOv5 CNN-based object detector we trained scoring high testing accuracy and a mAP score of 99.5%. The robust model was also able to discern between dry and wet xylem states between two different camera configurations, each with several different water expression cases. Most recently, we have trained and tested the newly released YOLOv6 and YOLOv7 networks. Both of these saw an improvement in overall accuracy and confidence, and they both can generalize well on the xylem dataset.
Here are some of the projects I have been involved in recently. Professional, academic, and personal projects are all featured. My most recent focus has been on machine intelligence and perception.
One of the only airplane design teams at the University of California, Riverside. Highlander Air's primary objective is to expose more UCR students to aerospace engineering design through hands-on experience.
Position Held: Project Lead
This project involved building and training a convolutional neural network (CNN) from scratch using PyTorch and the CIFAR-10 image dataset. The image classifier model was then evaluated on a test set.
Software and Packages: Python | PyTorch
This project involved implementing forward and backward pass, testing different loss functions, and tuning hyperparameters for multi-layer perceptrons. The two layer fully connected network is defined by a fully connected layer, followed by a ReLU activation, then followed by another fully connected layer and softmax layer. The network was trained on the CIFAR-10 dataset.
Software: Python | Google Colab
KNN (K Nearest Neighbors) is a supervised learning paradigm that classifies data on the premise of proximity to labelled data. This project involves classifying digits from the MNIST dataset with a KNN classifier implemented from scratch. The final performance of my KNN classifier attained a 96% quality metric with k=3 neighbors and 97% with k=1 neighbor.
Software: Python
Conceptual: K Nearest Neighbors | Supervised learning
The objective of this project is to use motion planning and trajectory generation algorithms to help the turtlebot navigate a real-world environment from start to goal without colliding with any obstacles.
Software: Python | Linux
Conceptual: Motion Planning | A* Algorithm | Polynomial Time Scaling
Expectation Maximization (EM) is an unsupervised learning paradigm, and this page contains two projects where I implemented the method from scratch in Matlab. The first project uses EM to segment a colored image using k=2 clusters while the second project uses the algorithm to determine the likely genders associated with some given unlabelled height data points.
Software: Matlab
Conceptual: Expectation Maximization Algorithm | Unsupervised learning | Color-based image segmentation
This project explores the Heart Disease Data Set from the UCI Machine Learning Repository, and uses various machine learning models to predict an individual’s risk of having heart disease. The different models are compared for their classification accuracy and the least influential features are omitted for the following experimental run in hopes of improving classifier performance.
Software and Packages: Python | Sklearn
The particle filter algorithm is a type of machine learning algorithm designed to help robots navigate a known map when placed at a random location within the map.
Software: Matlab
Conceptual: Bayesian Statistical Inference | Time Propagation
Highlander Block Party is one of my personal projects in the popular video game Minecraft. It is a virtual recreation of the UC Riverside campus, all in a single world file in Minecraft. The project was founded by my colleague and me back when the pandemic lockdown first started. Since then, it was publicized and some UCR students joined the build effort to create UCR's official Minecraft world.
Position Held: Project Founder