Source: https://vision.cs.princeton.edu/projects/2012/3DnotLow/report.pdf