top of page

Machine Learning & AI

Course: University of Michigan EECS 280: Programming and Introductory Data Structures (Winter 2022)

Piazza Post Classifier (C++)                                                                                                                                                      February 2022 – March 2022

Focus Areas: Natural Language Processing (NLP), Naïve Bayes Classification, Text Classification

  • Developed a Multi-Variate Bernoulli Naïve Bayes Classifier to categorize Piazza discussion posts based on their content.

  • Implemented a Bag-of-Words Model to extract unique words from each post and compute probabilistic word distributions for classification.

  • Trained and tested on real piazza data from past terms, using labeled past posts for supervised learning.

  • Computed log-probability scores to predict the most probable category for each post.

  • Optimized performance by efficiently processing training data, storing word frequencies, and implementing techniques to handle unseen words.

  • Achieved high classification accuracy, successfully identifying class discussion subject matter.

Course: University of Michigan EECS 442: Computer Vision (Winter 2024)

Numbers and Images (Python, NumPy, OpenCV, Matplotlib)                                                                                                                            January 2024

Focus Areas: NumPy Optimization, Data Visualization, Color Spaces, Image Processing

  • ​Implemented vectorized operations for mathematical tasks, avoiding explicit loops for efficiency.

  • Processed and visualized multi-channel image datasets, handling outliers and extreme pixel values.

  • Converted images between RGB and LAB color spaces, improving brightness and contrast perception.

  • Implemented Floyd-Steinberg dithering to enhance grayscale and color image quality under limited bit-depth.

Fitting Models and Image Warping (Python, NumPy, OpenCV, Matplotlib)                                                                                  February 2024-March 2024

Focus Areas: RANSAC, Affine & Homography Transformations, Image Warping, Augmented Reality

  • Implemented Random Sample Consensus (RANSAC) to fit 3D planes and linear transformations with outlier rejection.

  • Computed affine transformations and homographies using least squares optimization and Singular Value Decomposition (SVD) for 2D point correspondences.

  • Applied perspective transformations with OpenCV’s warpPerspective function to rectify book covers and reconstruct synthetic frontal views.

  • Detected keypoint correspondences, estimated homographies, and merged images into seamless panoramas using feature matching and blending techniques.

  • Applied template matching and homography transformations to overlay synthetic textures onto real-world objects, simulating augmented reality (AR) effects.

 

Two-Layer Neural Network and CNN (Python, NumPy, PyTorch, OpenCV, Matplotlib)                                                                                         March 2024

Focus Areas: Computational Graphs, Backpropagation, Neural Networks, and Image Classification

  • Implemented backpropagation for scalar computational graphs, visualized gradient flow, and performed numerical gradient checking.

  • Built a fully connected two-layer neural network for image classification from scratch, without deep learning libraries.

  • Implemented Softmax loss, L2 regularization, and ReLU activation, ensuring stability and preventing overfitting.

  • Trained a two-layer neural network on the CIFAR-10 dataset, tuning learning rate, batch size, and regularization strength for improved accuracy.

  • Designed and trained a Convolutional Neural Network (CNN) for Fashion-MNIST classification using PyTorch.

  • Evaluated an ImageNet-trained model on real-world images, comparing correct vs. incorrect classifications.


Learning Based Image Colorization of Donuts (Python, PyTorch, OpenCV)                                                                                    March 2024 – April 2024

Focus Areas: Convolutional Neural Networks (CNNs), Image Colorization, Computer Vision

  • Developed a U-Net CNN model trained on 1,500+ grayscale-to-color image pairs from the COCO dataset, focusing on donuts.

  • Utilized edge detection (Canny filter) and assigned pixel colors based on a predefined 10-color palette.

  • Applied cross-entropy loss, batch normalization, and the Adam optimizer for stability and accuracy.

  • Achieved 85.78% pixel match accuracy, with qualitative assessments emphasizing realistic colorization.

  • Explored potential applications in historical photo restoration, media enhancement, and digital art.


Image-to-Image Translation and Diffusion Models (Python, PyTorch, OpenCV, NumPy, Matplotlib)                                              March 2024 – April 2024

Focus Areas: Image-to-Image Translation, Diffusion Models, Deep Learning

  • Implemented Pix2Pix GANs for image-to-image translation, generating realistic shoe images from edge-detected inputs.

  • Evaluated performance using BCE Loss (generator) and L1 Loss (discriminator), tracking loss trends over 20+ epochs.

  • Developed diffusion models including Denoising Diffusion Probabilistic Models (DDPM), Denoising Diffusion Implicit Models (DDIM), RePaint, and Diffusion Posterior Sampling (DPS) for image generation and inpainting, enhancing sampling efficiency.

  • Optimized training and loss functions using PyTorch, Adam optimizer, and noise scheduling techniques.

3D Deep Learning (Python, PyTorch, NumPy, OpenCV, Matplotlib)                                                                                                                     April 2024
Focus Areas: Neural Radiance Fields (NeRF), 3D Reconstruction, and Epipolar Geometry

  • Implemented the Eight-Point Algorithm to estimate the fundamental matrix.

  • Computed epipoles using Singular Value Decomposition (SVD) and visualized epipolar lines for stereo image analysis.

  • Developed a Neural Radiance Fields (NeRF) model for 3D scene synthesis, using positional encoding and ray sampling for volumetric rendering.

  • Trained the NeRF model, estimated RGB color and depth maps, and optimized rendering parameters for improved clarity and generalization.

 

Course: University of Michigan EECS 492: Introduction to Artificial Intelligence (Winter 2024)
Flowers (Python, PyTorch, NumPy, Matplotlib, OpenCV, Torchvision)                                                                                                                  April 2024

Focus Areas: Variational Autoencoders (VAEs), Image Reconstruction, Deep Learning

  • ​Implemented a Variational Autoencoder (VAE) to generate and reconstruct images from the Flowers102 dataset.

  • Built an encoder-decoder architecture using CNNs for feature extraction and image generation.

  • Applied self-attention mechanisms to improve feature representation and enhance image quality.

  • Used KL divergence for regularization, optimizing the latent space representation.

  • Conducted hyperparameter tuning with grid search for learning rates and layer configurations to optimize model performance.

  • Improved reconstruction accuracy by 64% through iterative testing and refinement.

bottom of page