3D from Images
Matched photos to camera poses, point clouds, surfaces, radiance fields, and splats.
Computer Graphics
Before you start
Some lessons here build on lessons from other arcs: Cameras, Gradient Descent, Fragment Shaders, Backpropagation.
- 1
Feature Matchingin progress
Graphics · 3D from Images · ~25 minFind the same point in two photographs: corners where the picture changes in two directions, a descriptor per corner, distances between them, and a ratio test that refuses ambiguous matches.
- 2
Epipolar Geometryin progress
Graphics · 3D from Images · ~30 minTwo views of one scene are tied by a 3 by 3 matrix: a point in one image lies on a line in the other. Eight matches pin it, RANSAC survives the wrong ones, and the epipoles fall out.
- 3
Triangulationin progress
Graphics · 3D from Images · ~25 minA pixel is a line of sight; two cameras give two lines that nearly cross. The point nearest every ray is the answer, the angle between the rays says how well it is pinned, and reprojection scores it.
- 4
Bundle Adjustmentin progress
Graphics · 3D from Images · ~30 minMove every camera and every point at once so the points reproject onto the pixels that saw them: residuals, a Jacobian, one damped solve, and a step kept only if the error fell.
- 5
Structure from Motionin progress
Graphics · 3D from Images · ~30 minTwo views fix the frame: their essential matrix hides four poses and one puts the points in front. Each further camera is placed from points already in the world, then all is refined.
- 6
Multi-View Stereoin progress
Graphics · 3D from Images · ~25 minWith the cameras known, ask every pixel how far away it is: lift it to a sweep of depth planes, project into the other photo, score the patches, keep the best. A depth map, one row at a time.
- 7
Surface Reconstructionin progress
Graphics · 3D from Images · ~25 minDepth maps become a solid: fuse them into a grid of signed distances, put a vertex in every cell the surface crosses, and join the cells around each crossing edge into quads. Unseen parts stay open.
- 8
Alpha Compositingin progress
Graphics · 3D from Images · ~20 minPainted sheets of glass, stacked: each pixel adds a sheet's brightness through the light the sheets in front let past. The over operator, front to back or back to front, is the same sum.
- 9
Volume Renderingin progress
Graphics · 3D from Images · ~25 minNo surface, only fog: march a ray from the eye, absorb a little at each step, add each step's glow through the light still left, and stop when none remains. The over operator, along a ray.
- 10
NeRFs: Neural Radiance Fieldsin progress
Graphics · 3D from Images · ~35 minThe scene is a function: a small network from position to density and brightness. Render it with the volume renderer, compare with the photographs, and let the error train the network.
- 11
Gaussian Splattingin progress
Graphics · 3D from Images · ~35 minA scene as a cloud of fuzzy blobs: project each to an ellipse, sort nearest first, and composite the blobs covering each pixel front to back. Rasterized, not ray marched, and trained from photographs.