Problem
The first attempt (V1) to reconstruct the Moorcroft Pavilion at Shalimar Gardens using COLMAP Structure-from-Motion nearly failed: only 2 of 15 input cameras were successfully registered, and the sparse point cloud contained just 42 points — far too sparse to represent the structure. The reconstruction was effectively unusable, and the root cause wasn't obvious from the COLMAP logs alone.
My Role
I owned this reconstruction end-to-end for the AI-Based 3D Scene Reconstruction track: sourcing images, running the COLMAP pipeline, diagnosing the failure, and redesigning the input dataset. This was not a group task — the debugging and the fix were my own work.
Process
- Diagnosed the failure: reviewed COLMAP's feature-matching and camera-registration output and traced the low registration count to weak image overlap — the V1 image set didn't have enough shared visual features between consecutive shots for COLMAP to triangulate camera poses reliably.
- Rebuilt the dataset: went back to Wikimedia Commons and curated a new image set of the Moorcroft Pavilion selected specifically for tight, consistent overlap between adjacent viewpoints, rather than just visual variety or coverage.
- Re-ran the pipeline (V2): same COLMAP configuration, new image set.
- Verified the result: confirmed all 15/15 cameras registered and checked the resulting sparse point cloud density and coverage against the pavilion's actual geometry.
- Documented it: wrote up the full debugging story as a DEV.to technical walkthrough, and updated the project README.
Evidence
- Repository:
humnaattique4-sys/shalimar-gardens-3d-reconstruction— commit history shows the V1 attempt, the image set swap, and the V2 run - DEV.to walkthrough post documenting the V1→V2 debugging process
- COLMAP output logs / sparse reconstruction stats for both runs (camera registration count, point count)
Sparse point cloud output from the V2 COLMAP run (842 points, 15/15 cameras registered):
Result
- Camera registration improved from 2/15 to 15/15
- Sparse point count improved from 42 to 842
- The pipeline went from an unusable reconstruction to a complete, usable one — and the specific cause (image overlap, not camera count or COLMAP settings) is now documented for reuse on the other heritage sites in the project.
What I Learned
Image overlap density, not just image quantity or coverage, is the binding constraint for Structure-from-Motion pipelines like COLMAP. A larger image set with poor overlap performs worse than a smaller, carefully curated one. This also taught me to read COLMAP's intermediate output rather than only judging a run by whether it completed.
Next Improvements
- Apply the same overlap-curation approach proactively to future sites before the first COLMAP run
- Add a lightweight pre-check to catch weak overlap before running the full pipeline
- Extend the V2 dataset with a few additional angles to further densify the point cloud for downstream mesh generation

Top comments (0)