Scene Reconstruction from Images
Scene reconstruction fuses many photos into one consistent 3D map of walls, furniture, and free space.
Why Does This Exist?
One depth map covers one viewpoint. Robots and AR need whole rooms. Structure from motion recovers poses; dense fusion integrates each depth frame into a TSDF volume; marching cubes extracts the mesh. This page covers the static-room pipeline before dynamics and semantics.
Think of It Like This
Building a clay room from traced windows
You walk around a dark room shining a flashlight through traced windows, pressing clay where each beam lands. Returning to the start, you align the last press with the first to close drift. The clay room outlives any single view.
Frames are beams and TSDF is clay. The analogy stops at loop closure: clay shows seams while optimization spreads the correction.
How It Actually Works
Poses come from visual tracking with reprojection under pixel. Each depth frame integrates into TSDF with truncation m and weight capped at hits. Loop closure detects revisits by visual bags of words and runs pose-graph optimization cutting drift from m to m over m paths.
Worked example
A m room scanned in frames fills TSDF voxels at m. A wall point seen in frames averages distance m with weight . Without loop closure the far wall duplicates m apart; after closure the duplicates merge within m and marching cubes yields one wall.
Watch Out For
Moving people baked into walls
A person standing seconds writes density into the wall volume. The symptom is ghost limbs in offices. Mask people with segmentation before fusion or keep a transient branch.
The Quick Version
- Poses plus depth fusion build whole rooms from photo sets.
- TSDF truncation near m bounds updates around surfaces.
- Loop closure cuts long-path drift from decimeters to centimeters.
- Do not fuse people into static maps; mask dynamics first.
- Marching cubes extracts the single mesh for navigation and AR.