Notable Projects

Image Segmentation of Seaice w/ SAR Imagery

Visual Example of the detection model. First column is input imagery. Second column is normalized logits of the model. Third column is the models thresholded predictions. The last image depicts the improvements made to the model.

This project focused on using computer vision techniques to identify the edge of seaice with Sythetic Aperature RADAR (SAR) images. Having joined the project with the fundamentals already laid out, my main contributions were in aiding the models performance and training. Notable accomplishments include,

  • Expanding the computational logic to allow for multi-gpu training, improving training speeds by over 8x
  • Improving sub-par labels via modern foundational models like Segment Anything (SAM) for improved performance, as shown in the figure above
  • Aggregated and organized prototyping scripts and routines into a reproducible and documented library for ease of research/sharing

Multithreaded geospatial preprocessing library

A given research project involved working on geospatial data that numbered into the several billion. To train and explore model applicability, live dynamic processing of that data was required. Given that most of the pre-processing was computationally intensive and unique to geospatial operations, there were no Python libraries that were applicable to the problem. To address this, I wrote several functions and routines in Rust that would quickly and efficently process the data using powerful libraries like rayon to easily accelerate the computations. This library was then bound to Python calls via the Polars library for efficent processing of DataFrame data.

For example, a common occurence was to compute the geohash for a (lat, lon) point for ~20 million points in a given experiment. Using only Python operations available in numpy and pandas, this would take nearly a half hour on our hardware. With this library, it was reduced to just 0.5 seconds.

Segment Anything Model (SAM) annotation tool

Often in my various image segmentation projects, data was insufficent at best, and required a decent amount of manual creation/annotation to prepare for training. To do this, I created a simple but effective web-tool that would ease in the creation of this data. A simplified version is shown running below.

Technical Interests

flowchart TD
    ai("`
        **Machine Learning**
        Neural Networks
        CNNs
        Image Classification
        Image Segmentation
        Transformers
        Sentiment Analysis
        Text Summarization
    `")
    programming("`
        **Programming Languages**
        Python
        Rust
        Java
        C/C++
        Zig
    `")
    tools("`
        **Tooling**
        Linux
        Git
        Latex/Markdown
        Tmux
        Helix
        Docker/Containerization
        K8s
    `")
    hardware("`
        **Hardware**
        Microcontrollers
    `")