Gagan Bansal
*** * ******** ***, *** No. G***, Sunnyvale, CA 94086
*****.******@*****.*** +1-410-***-****
Skills
Languages: C, C++, Java
Scripting: Shell, Perl
Packages/Tools: gdb, Make les, Matlab, L TEX, vi, awk
A
Databases: MySQL
Platforms: Linux, Windows
Libraries : CUDA, OpenCV, OpenGL, STL
Professional Experience
Research Engineer at Yahoo Labs, Sunnyvale, CA (Aug, 2010 - Present)
Development of real time ad serving platform using machine learnt models built on vast amounts of
user data.
O ine Analysis of user data to train models for predicting user interests.
Software Engineer at 33Across, Sunnyvale, CA (Sept, 2009 - Aug, 2010)
Involved in the design and development of graph centric algorithms for ad targeting using social
graphs.
Responsible for algorithm performance and scaling optimizations of algorithms for massive amounts
of data processing.
Member of Technical Sta at PixBlitz Studios, Cupertino, CA (Feb, 2009 - Aug, 2009)
Involved in the complete software development lifecycle of the product.
Designed and implemented real time computer vision code for analysis of high de nition videos using
CUDA architecture. The implementation involved thorough understanding of multithreaded
programming model for both CPU and GPU architectures. Dealt with programming challenges like
synchronisation, performance and accuracy.
Implemented pixel shader for chroma keying and rendering of high quality images using Nvidia
Quadro SDI card.
Involved in QA of the product. Wrote scripts in Python for testing and veri cation of my module.
Summer Intern, IntelliVision Technologies, Pune, India (May - July, 2006)
Object Classi cation using Hausdor Distance
General Object Classi cation using Hausdor Distance to nd the similarity and di erence between
images. Able to identify 90% objects correctly but large number of false detections.
E cient Continuous Background Learning for Surveillance
Grid based adaptive background learning algorithm developed and tested.
Educational Background
M.S. in Computer Science
Johns Hopkins University, Baltimore, MD, USA (2007 - Jan,2009)
Advisor: Dr. Rene Vidal
B.Tech. in Computer Science and Engineering
Indian Institute of Technology, New Delhi, India (2003 - 2007)
Honors and Awards
Secured 103 rank in Joint Entrance Examination for admission to IIT, 2003 among 175,000 students.
Awarded Certi cate of Merit in Mathematics Olympiad in 2001.
Awarded Certi cates of Merit throughout my schooling for being among the topmost performers.
Won several inter school events as a guitarist in school orchestra team.
Research Experience
Research Assistant, Center of Imaging Science, JHU (Jan,2008 - Dec,2008)
Worked on building a framework for segmentation of humans from videos with background clutter.
Learnt a prior on the human shapes and used it for segmentation in a level set framework
Academic Projects
User Level Thread Package
Implemented a user level thread package with functionality to create, delete, suspend and resume
threads .
Implemented a round-robin pre-emptive scheduler and context switching in user space.
Implemented our own semaphores as spin-lock critical section.
Instant Messaging Client and Server
Wrote a messaging client using TCP protocol.
Client ran on Nokia N800 device and the server ran on a linux based PC.
Involved socket programming in C language.
P2P le sharing system
Wrote a P2P le sharing system in which each client used UDP protocol to discover the P2P
network and TCP protocol to exchange le lists and content.
Involved socket programming in C language.
Vehicle Detection and Tracking
Given an input of Indian tra c video, the project aimed at segmentation, detection, tracking and
recognition of vehicles and pedestrians from the video.
Background subtraction and Kalman Filtering methods were used for segmentation and tracking
respectively.
Optical Flow using Lucas Kanade method
Displacement vectors were found for each pixel indicating the motion from one image to the other.
Pyramid based approach was also used to identify medium baseline motion.
Image Segmentation using Polysegment and Spectral Clustering
Segmentation was done based on intensity, color, texture.
Spectral Clustering was done each on fully connected, k nearest neighbor and epsilon neighborhood
graph using either unnormalised, normalised or symmetric laplacian matrices.
The segmentation results were compared with that using kmeans and using kmeans initialised with
polysegment.
Saree (ethnic Indian dress) Modeling and Simulation
Aimed at modeling the way saree is worn in real life.
Some issues were e cient cloth modeling (mass spring model), robust collision handling (handling
various types of interactions between two triangles) and fast simulation using multiresolution cloth
model.
Implemented in C++ using OpenGL library.
Animation in OpenGL
Modeled a humanlike lamp having bones. Used motion capture, keyframing, parametric and
algorithmic forms for various parts of animation.
Implemented in C++ using OpenGL library.
Uniform space voxelisation based ray tracing
Recursive ray tracing for large mesh objects and primitive objects like sphere.
Transparency, multiple re ections, multiple light sources, area light sources, anti-aliasing and texture
mapping were handled.
Implemented in C++ using OpenGL library.
Face Recognition using Principal Component Analysis
Two methods tested, matching query image with each image in database and, secondly matching
query image with an image per individual (one face class per individual).
Relevant Coursework
Machine Learning Linear Algebra Data Structures
Computer Vision Optimisation Algorithms
Computer Graphics Shape and Geometry Theory of Computation
Digital Image Processing Probability and Stochastic Processes Operating Systems
Signals and Systems Metric Spaces Computer Networks
Poisson Eq. in Image and Shape Matching Numerical Analysis Computer Architecture