Projects
RookieDB
Engineered a modular database management system featuring B+ tree indexing, query processing, join optimization, multigranularity locking, and recovery mechanisms. Tackled algorithmic challenges to ensure efficient queries and improved performance for reliable transaction handling.
Diffusion
Investigated diffusion-based image generation methods, implementing sampling loops, inpainting, image-to-image translation, and optical illusions. Trained conditioned diffusion models on MNIST to study the effects of time and class embeddings on output. Class choice runner-up🎉
Image Quilting
Explored texture synthesis and transfer methods from Image Quilting for Texture Synthesis and Transfer by Efros A., & Freeman W.
Light Field Camera
Implemented Light Field Photography based on Ng et al.’s Light Field Photography with a Hand-held Plenoptic Camera paper, enabling post-capture refocusing and perspective shift from a single image capture.
Auto-Stitching Photo Mosaics
Built an auto-stitching system for panoramic images using Harris Corner Detection, Adaptive Non-Maximal Suppression, and RANSAC for feature matching, with projective warping and bilinear interpolation for seamless blending.
Face Morphing
Used Delaunay triangulation and affine transformations to morph faces!
Image Filtering and Frequency Analysis
Implemented image processing techniques including edge detection, filtering, frequency analysis, and Laplacian/Gaussian stacks to enhance images, create hybrid images, and perform multiresolution blending.
Colorizing the Prokudin-Gorskii Photo Collection
Constructed an image pyramid alignment algorithm with automatic cropping to reconstruct and colorize historical photos of the Russian Empire.
Adversarial Machine Learning
Explored methods to make neural network classifiers more robust by framing training as a non-convex optimization problem. Leveraged techniques from Wong and Kolter to mathematically analyze and certify robustness against input perturbations.
Gitlet
Built a lightweight version control system inspired by Git to manage project versions and track changes efficiently. Implemented core functionality including committing and restoring snapshots, branching and merging with conflict detection, and viewing project history.