← all work 3d-computer-vision

Two view triangulation

Two cameras, 2000 points, four classical triangulators. The 3-D points and both camera

Result

cameras1280 × 960, focal length 1000 px, second camera verged on the scene centre
scene2000 points at depths 4.0 to 8.0, mean depth 6
ground truththe 3-D points themselves; only the pixel measurements are perturbed
methods`cv2.triangulatePoints` (DLT) · midpoint of rays · `cv2.correctMatches` + DLT · Gauss-Newton on reprojection error (the ML estimate)
sweptpixel noise σ = 0 to 10 px, baseline 0.02 to 4.0 scene units

The finding

Two predictions from the geometry, two fitted exponents

Both hold to within 1.2%. The baseline fit uses baselines of 0.1 and above: below that the error is a sizeable fraction of the scene depth, points start landing behind the camera and the error saturates instead of growing, so a fit across that boundary would be measuring the saturation.

Figures

anisotropy.png
anisotropy
laws.png
laws
reprojection.png
reprojection

Elsewhere

Code and full results on GitHub

Every number is read from the file the run produced. github.com/hammasbuilds · kaggle.com/muhammadhammas13