Indoor Camera Positioning
Large-Scale Indoor Camera Positioning Using Fiducial Markers

Abstract
Estimating the pose of large arrays of fixed indoor cameras is essential for augmented reality, autonomous navigation, video surveillance, and logistics. This work presents a methodology for large-scale indoor camera positioning using printed fiducial markers, designed to scale to camera networks far beyond what prior overlap-dependent methods could handle.
Markers are placed in the overlapping views of nearby cameras to establish pairwise spatial relationships, then progressively repositioned to connect the entire camera network, including cameras that never directly share a view. A final optimization phase refines the whole network by minimizing reprojection error while enforcing real-world constraints such as marker coplanarity.
Unlike prior approaches, which depend on specific environmental features or heavy camera overlap, this method scales to arbitrarily large indoor spaces. It was validated on both synthetic datasets (rendered in Blender) and real datasets spanning corridors, floors, and entire buildings, outperforming existing techniques throughout.
How It Works
Printed fiducial markers are placed wherever nearby fixed cameras already share a view, giving each such pair a set of common reference points. Those markers are then progressively picked up and repositioned deeper into the space, pair by pair, so that even cameras with no direct visual overlap end up connected through a chain of shared markers spanning the whole network.
A final optimization phase treats the entire camera network at once, refining every pose jointly by minimizing the total reprojection error across all markers while enforcing physical constraints such as marker coplanarity, which is what lets the method keep scaling cleanly as more cameras are added, instead of accumulating drift the way purely sequential, camera-by-camera approaches do.
To validate the method at scale without the cost of instrumenting real buildings for every experiment, the evaluation combines artificial datasets (full indoor environments rendered in Blender with known ground-truth camera poses) with real datasets captured across corridors, floors, and a multi-story building, each pairing two independent camera sets (A and B) against shared control points.

Evaluation
The method was benchmarked against existing overlap-dependent approaches on both the synthetic Blender-rendered environments and the real corridor, floor, and multi-story-building datasets shown above, outperforming prior techniques throughout while scaling to camera networks far larger than what earlier methods could handle.
Results
| Dataset | Cameras | Error (Set A) | Error (Set B) |
|---|---|---|---|
| Synthetic corridor | 20 | 0.63 cm / 0.030° | 0.46 cm / 0.022° |
| Synthetic duplex (2 floors) | 90 / 94 | 6.56 cm / 0.235° | 9.77 cm / 0.379° |
| Real adjacent rooms | — | 6.63 cm | 5.62 cm |
| Real corridor (50 m²) | — | 1.22 cm | 0.84 cm |
| Real complete floor (214 m²) | 51 | 14.82 cm | 15.72 cm |
Translation error (and rotation error where reported), after full optimization. Sets A/B are independently captured camera networks sharing the same control points.
Every dataset above was covered with just 9 distinct markers, reused across the network. The method outperformed MarkerMapper on the adjacent-rooms benchmark, and was the only one able to compute camera poses at all in the corridor and full-floor scenarios, which require marker reuse.
Download
Code and datasets are readily accessible to the research community.
View on GitHub
C++
OpenCV
CMake
Qt Creator
BlenderCollaborators
Citing
If you use this work in your research, please cite:

@article{garcia-ruiz2024indoor,
author = {Garc\'{\i}a-Ruiz, Pablo and Romero-Ramirez, Francisco J. and Mu\~{n}oz-Salinas, Rafael and Mar\'{\i}n-Jim\'{e}nez, Manuel J. and Medina-Carnicer, Rafael},
title = {Large-Scale Indoor Camera Positioning Using Fiducial Markers},
journal = {Sensors},
volume = {24},
year = {2024},
number = {13},
articleno = {4303},
doi = {10.3390/s24134303},
url = {https://pmc.ncbi.nlm.nih.gov/articles/PMC11244017/}
}Paper
The full paper is openly available (open access) in Sensors, hosted on PubMed Central.
View on PubMed CentralLicense
This software is licensed under MIT License.


