Implementation based on SFMedu Princeton COS429: Computer Vision http://vision.princeton.edu/courses/SFMedu/ but on python + numpy