Site Network: Personal | Taubin Group LEMS | Brown

Coursework and Tutorials

As a graduate student at Brown I have had the opportunity to take classes spanning EE, CS, and Applied Math. In this section of the website, I will provide links to homework solutions which I have extended into general tutorials. In addition, I will provide links to the source code for small projects (e.g., a Matlab-based decibel meter).

Computer Vision and Graphics

Augmented Video

This presentation summarizes a system for inserting virtual objects into uncalibrated video sequences. The position and pose of the camera, relative to a set of landmarks, is estimated automatically for each frame in the sequence.


Downloads: presentation, video1, video2, video3, video4

Exemplar-based Image Inpainting

This project involved removing large objects from images. From a user-specified mask, small patches were duplicated until all remaining gaps were filled. For more information, see Exemplar-based Image Inpainting by Criminisi et al.


Downloads: final presentation, source code, video1, video2

Texture Synthesis using Image Quilting

These presentations summarize my implementation of Efros and Freeman's Image Quilting algorithm – a simple, yet effective, patch-based texture synthesis procedure. My source code is also available on Matlab Central.


Downloads: final presentation, project proposal, source code

Bilateral Filtering and Image Abstraction

Bilateral filtering was proposed by Tomasi and Manduchi in 1998 as a non-iterative method for edge-preserving smoothing. My implementation also includes bilateral image abstraction using the method outlined by Winnemöller et al.


Downloads: source, album, video1, video2, video3, video4

Computational Photography and 3D Reconstruction

Build Your Own 3D Scanner

Gabriel Taubin and I co-presented an introductory course on 3D scanning at SIGGRAPH 2009. The complete course notes, lecture slides, demonstration videos, and source code are available on the course website.


Downloads: course website, lecture notes, source code

Structured Light for 3D Scanning

I recently implemented a conventional structured light 3D reconstruction system using commericial DLP projectors and digital cameras. Key contributions include a complete Matlab toolbox for projector-camera calibration.


Downloads: assignment and results, presentation (pdf, ppt)

3D Photography using Planar Shadows

As head TA for CS 220, I created an assignment in which the students implemented Bouguet's desktop 3D scanner using only a webcam, a halogen lamp, and a stick. Send an email if you'd like a copy of my Matlab implementation.


Downloads: assignment and results, webpage, support code


Computer Science

Machine Learning

This section contains my collected solutions for CS 195-5: Introduction to Machine Learning. Topics discussed include Bayesian decision theory, supervised/unsupervised learning, mutual information, HMMs/MRFs, and graphical models.


Downloads: hw1, hw2, hw3, hw4, hw5, hw6, source code

Design and Analysis of Algorithms

This section contains my collected homework solutions for CS 157: Design and Analysis of Algorithms. Topics discussed include greedy algorithms, complexity and running time, randomized algorithms, and dynamic programming.


Downloads: hw1, hw2, hw3, hw4, hw5, hw6, hw7


Electrical Engineering

Probability and Random Processes

This section contains my homework solutions for EN 257: Applied Stochastic Processes. Topics discussed include random processes, spectral representations, Markov random fields, Kalman filtering, and detection and estimation theory.


Downloads: hw1, hw2, hw3, hw4, hw5, hw6, hw7, hw8

Matlab Decibel Meter

This tutorial presents the design of a sound level meter in Matlab. The Data Acquisition Toolbox is used to implement a real-time spectrum analyzer. The decibel meter is implemented in the frequency domain using Parseval's relation.


Downloads: tutorial, source code, original assignment

Digital Filter Design

Originally written as a solution set for a DSP course at Brown, this tutorial discusses the design of FIR filters. Three methods are covered: (1) the window method, (2) the frequency sampling method, and (3) Parks-McClellan equiripple design.


Downloads: tutorial, original assignment


Applied Mathematics

Partial Differential Equations

This section contains my collected homework solutions for EN 202: Mathematical Methods in Engineering and Physics II. Topics discussed include PDEs, ODEs, the calculus of variations, and probability.


Downloads: hw1, hw2, hw3, hw4, hw5

Numerical Solution of PDEs

This section contains my homework solutions for AM 255: Numerical Solution of Partial Differential Equations I. Topics include the analysis and implementation of finite difference methods for solving time-depend initial value problems.


Downloads: hw1, hw2, hw3, hw4, hw5, hw6, final

Differential Geometry in Mathematica

This Mathematica notebook can be used to evaluate the properties of a parametric surface (i.e., the covariant and contravariant basis vectors, the metric and curvature tensors, and the Christoffel symbols).


Downloads: notebook, pdf


Last Updated: July 20, 2009