Welcome to my personal homepage. I am currently a senior advanced algorithm engineer in 3D Computer Vision at Apple. Before joining Apple, I was a technical lead managing the online calibration team in computer vision group at Magic Leap. My primary responsibility was to prototype and implement online calibration algorithm on PC and on the embedded side. I also worked on various SfM algorithms such as PnP and Bundle Adjustment in the SLAM pipeline. I designed and implemented a general Levenberg Marquardt and Gauss Newton solver on a resource constrained embedded system. This solver enabled rapid prototyping of a lot of computer vision algorithms on the actual product.
I received my PhD degree from the Computer and Information Science and Engineering Department at University of Florida in 2013. My research interests include but not limited to 3D Computer Vision, structure from motion, SLAM, sparse coding and machine learning.
During my time at Intel, my team are responsible for designing computer vision algorithms for a three-camera multi-view system on a consumer tablet. This was way before manufacturers putting two cameras on phones that enable depth capturing functionality. My primary responsibility was to
During my internship at Paracosm Inc, I worked on two projects:
Please see the Project Page for demos.
Implementation of a CVPR 2010 paper - "Common Visual Pattern Discovery via Spatially Coherent Correspondences" by Liu and Yan.
[ Codes ]
This implementation is a joint work with Mohsen Ali.
Notes:
mex CalcAffinityMatrix3.cpp
first. This is the code that calculate affinity matrix. It returns matrix A in sparse format and correspondences indices.Self organizing map (SOM).
[ README | Matlab source codes ]
lazyTA is an app I implemented when I first became TA for a class at University of Florida in 2008. I found it very tedious and error-prone to design multiple forms of exam with different permutation of questions and choices and their corresponding solutions manually. lazyTA reads multiple choice questions from a repo file and populates multiple forms of properly formatted latex codes. In particular, lazyTA is capable of the following:
Check out the sources code at https://github.com/chi3x10/lazyTA
B-Spline snake. Final project of Medical Imaging Analysis.
Curve Sketcher. (Computer graphics - project 1)
An OpenGL program that render Bezier curve and NURBS. de Casteljau subdivision method was used to render the Bezier curve.
Tetrahedrons. (Computer graphics - project 2)
Three tetrahedrons are linked by their shared vertices.
Techniques involved:
%%SVM training. Return largrange multiplier and biases.
[error als b0s]= SVM_Simple(data,lbl1,testData,lbl2);
%%
SVM testing. Given a collection of largrange multipliers and biases, return index of the testData.
[index] = SVMTest(Alphas,b0s,data,testData);
%%
SVM training scheme by using PCA feature.
[error Alphas b0s]= SVM_PCA(trainingData,labels1,testData,labels2,eval,evec,means);
%%
SVM training scheme by using original features and edge histogram feature.
[error Alphas b0s]= SVM_Simple(trainingData,labels1,testData,labels2);