Oxygenation Graph

Toward a NIRS Brain Computer Interface

Building a fast brain computer interface

We used machine learning to improve the reaction time for our near-infrared spectroscopy (NIRS) brain computer interface. We managed to get state of the art results to help make controlling your computer with your brain a reality. Worked with Tony Wu and Ilya Sherman. Paper
Gesture Recognition

A HMM-Based Generative Model for Gesture Recognition

Building gesture recognition for the Kinect before the Kinect came standard with it

We built a gesture recognition system for the Microsoft Kinect as the first version used pose tracking instead of real gesture detection and recognition in its games. By using a probabilistic graphical model (an HMM) we were able to teach it to recognize 9 gestures (including the Mortal Kombat ones: high-kick, low-kick, high-punch, low-punch, and jump) with almost perfect accuracy using very little training data. Worked with David Philipson and Francisco Cai. Paper
AutoCut Image Segmentation

Autocut - Extending GraphCut Segmentation

Building a program which can segment an image into its component pieces

Graph Cut segmentation currently (as of 2010) is the state of the art algorithm for segmenting an image into its different components. (This algorithm is used in Microsoft PowerPoint 2010) We implemented this algorithm in a few days and novelly extended it by automating the image segmentation process so that it no longer requires human input and yet produces high quality image segmentations. Worked with Evan Rosen. Paper
Object Detection

Object Detection Using a Deformable Parts Model

Building a system to detect objects (such as people) in images assuming that they change shape

Built a system that can precisely detect objects in an image even if it changes shape from image to image by using a Deformable Parts Model [Felzenszwalb et al '11]. We highly optimized our system to achieve good performance even while running it on a machine severely limited compute power and minimal RAM by using novel extensions. Worked with Evan Rosen. Paper
Gesture Recognition

Scene Classification and Image Retrieval Using SPM and LLC

Building a program to classify what the main content of an image is(ex. beach, kitchen, etc...)

We epxlored the problem of image classification using a family of methods based on bag of words features and by using the Spatial Pyramid Matching (SPM) and Locality Contrained Linear Coding (LLC) (currently) state of the art techniques, we were able to build a system which achieved great performance on commodity machines. Engaging knowledge from data mining, we developed a novel method of using Locality sensitive hashing to find similar pictures in this corpus of images from the computer vision challenge. Worked with Evan Rosen. Paper
Language Models

Language Modeling for Scrambled Email Recovery

Unscrambling jumbled text through natural language processing

We used and explored different probabilistic language models for rebuilding scrambled email messages into human readable text.By using different smothing techniques (such as absolute discounting, Katz backoff, and Kenyser-Ney for unigram, bigram and trigram models) and highly optimizing our code in order to train on over 1,240,000 sentences of the data, we were able to achieve a 96.6% accuracy on the Enron email corpus. Worked with David Philipson. Paper
Word Alignment

Experimenting with IBM Model 2 Style Word Aligners

Constructing a natural language processing model for matching words of sentences translated in two different languages

In this project, we build an aligment model which suggests probabilities for alignments of words between the same sentence in two different languages. In conjuntion with a language model, our model can serve to translate one language to another. Worked with David Philipson. Paper
Entity Recognition

Named Entity Recognition and Structural Parsing

Building a model to identify things (ie. person, place, etc...) in a sentence and also understand the structure of the sentence

In this project, we explore a Maximum Entropy Markov Model (MEMM) for named entity recognition (the identification of entities - people, places, and things in the sentence). We then also learned the structure of a sentence with a Probabilistic Context Free Grammar. We heavily engineered specific features to detect the required named entities (the subject and objects in the sentence).), Worked with David Philipson. Paper
Gesture Recognition

Developing a Coreference Resolution System

Building a coreference resolution engine to determine the meaning of references in a sentence

We display the rule-based system we developed for the resolution task - determining the real world entity that each noun phrase refers to. We built our engine from several new state-of-the-art coreference resolution parser techniques and experimented with three different avenues for extending these techniques. Worked with David Philipson. Paper
Gesture Recognition

Investigating the Corporate Ecosystem Though Stock Market Network Analysis

Building a network model to identify relations between companies

We used network analysis and built a model of the stock market based on the residual prices over a timespan. Using various network algorithms we found that there were different clusters of companies which correlated to eachother and had a predicatable real world relevance pattern. Worked with Tony Wu and Salik Syed. Paper
Scrappy

Scrappy - Simple, Accessible, Powerful Web Scraping

Building a dead simple Firefox Extension to enable anyone to easily scrape the content they want from the web

Currently you have to have a deep knowledge of computer science to automate the gathering of structured data from the Internet. A few commercial solutions exist for thousands of dollars which give you some capabilities if you are willing to put in hundreds of hours to understand their complex systems. We built a dead simple firefox extension that a 10 year old can use to obtain structured data from the web in only 1-2 minutes. It is currently implemented as a Firefox extension for maximum accessibility. Worked with Amir Ghazvinian and Sean Holbert. Paper
Newtrition

Newtrition - Food Data Explorer

Building an interactive visualization that helps you actually understand what you eat

Newtrition is an interactive visualization that allows you to compare different types and quantities of food and explore their nutritional value. We wanted to give insight into what you eat at common places (such as Burger King or McDonalds) which do not necessarily have nutrition facts available on the wrapper. The result is a simple and highly eye-opening system which enables you to make conscious decisions about your lifestyle and food choices. Worked with Matt Bush and Sean Holbert. Paper
Minimum Spanning Tree

Blazing Fast Minimum Spanning Tree Solver

Building a program to solve the Minimum Spanning Tree challenge very quickly

For the algorithms contest in which we were to write a program to find the minimum spanning tree of a graph, in whatever language and using any algorithm that we deemed as best for solving the problem as quickly as possible for a range of inputs. I used C++ and explored several algorithms including Borukva's, the Karger Klein and Tarjan randomized linear time algorithm and Chazelles non-randomized comparison algorithm.
Find Mii

Using Computer Vision to Automatically Play Wii

Using computer vision to build a program that can play the Mii game for Nintendo Wii

We created and engineered several different computer vision methods to write a program to play the different types of levels in the Nintendo Wii game 'Mii', in which the player has to indentify different animated characters which are performing different actions. We used several types of feature detectors and object classifiers and heavily feature engineered our algorithms for accomplishing each of the various challeneges we were presented with. Worked with Prasanna Vasudevan. Paper
Object Detection

Feature Utilizing Object Detection

Building a computer vision system to detect staplers, cups, scissors and other objects in a video

We built an object detection algorithm that uses Haar Features and boosted decsion trees to detect, identify, classify, and mark office supplies in a video. Using various forms of custom feature engineering and also SIFT, we were able to quite accurately classify objects and graphically annotate their position in the video. Worked with Matt Bush and Riddhi Mittal. Paper
Game Player

Building a Generalized Game Player

Building a generalized game playing program that can play everything from tic-tac-toe to chess!

We built a game playing program using a combination of diverse probabilistic and logical stategies and techniques. We harnessed cutting edge methods such as a Proposition Network Solver (logical) and Markov Chain Monte Carlo depth charges (probabilistic). Worked with Joe Marrama and Salik Syed. Paper
Robot Motion Planning

Robotic Motion Planner

Built a program that computes and maps out a path for a robot to take over a complicated terrain

For my freshmen introductory seminar on Robotic Motion Planning, I built a motion planner which simulates a robot moving and attempting to get around terrain to a destination. The robot is able to plan out the best path and course of action and then travels to its destination.
Walking Wizard

Walking Wizard for Sillicon Valley Engineers

Helping engineers live a healthy life

We develped, created, and designed hackwalkrepeat.com for Sillicon Valley engineers to discover how to incorporate a little walking into their day and live a healthy lifstyle. We focused a lot on buildng a good user interface to appeal to our target audience; play around with it (at hackwalkrepeat.com ) and let us know what you think! Worked with Maurizio Caligaris and Maria Molfina.
Operating Systems

Architecting the PintOS Operating System

Building an operating system

Implemented a thread scheduler, the ability to run programs written by users, virtual memory, and the filesystem for the pintOS operating system. This was part of CS140 Operating Systems, a difficult rite of passage in the Stanford CS systems track curriculum. Worked with David Tran.

I will add more of my projects soon...

Wanna check out stuff that I built for fun?