Structure from Motion (SfM) and visual localization in indoor texture-less scenes and industrial scenarios present prevalent yet challenging research topics. Existing SfM methods designed for natural scenes typically yield low accuracy or map-building failures due to insufficient robust feature extraction in such settings. Visual markers, with their artificially designed features, can effectively address these issues. Nonetheless, existing marker-assisted SfM methods encounter problems like slow running speed and difficulties in convergence; and also, they are governed by the strong assumption of unique marker size. In this paper, we propose a novel SfM framework that utilizes planar markers and multiple cameras with known extrinsics to capture the surrounding environment and reconstruct the marker map. In our algorithm, the initial poses of markers and cameras are calculated with Perspective-n-Points (PnP) in the front-end, while bundle adjustment methods customized for markers and camera groups are designed in the back-end to optimize the 6-DOF pose directly. Our algorithm facilitates the reconstruction of large scenes with different marker sizes, and its accuracy and speed of map building are shown to surpass existing methods. Our approach is suitable for a wide range of scenarios, including laboratories, basements, warehouses, and other industrial settings. Furthermore, we incorporate representative scenarios into simulations and also supply our datasets with pose labels to address the scarcity of quantitative ground-truth datasets in this research field. The datasets and source code are available on GitHub.
翻译:在室内无纹理场景与工业环境中,运动恢复结构与视觉定位是普遍存在且具有挑战性的研究课题。现有针对自然场景设计的运动恢复结构方法在此类环境下常因鲁棒特征提取不足而导致重建精度低或建图失败。视觉标记凭借其人工设计的特征能够有效解决这些问题。然而,现有的标记辅助运动恢复结构方法存在运行速度慢、收敛困难等问题,并且受限于标记尺寸必须统一的强假设。本文提出一种新颖的运动恢复结构框架,利用平面标记及外参已知的多相机系统捕捉周围环境并重建标记地图。在我们的算法中,前端通过PnP方法计算标记与相机的初始位姿,后端则设计了针对标记与相机组定制的光束法平差方法,直接对六自由度位姿进行优化。本算法支持重建包含不同尺寸标记的大规模场景,其建图精度与速度均优于现有方法。该方法适用于实验室、地下室、仓库及其他多种工业场景。此外,我们将典型场景纳入仿真系统,并提供带位姿标注的数据集,以缓解该研究领域定量真实数据稀缺的问题。数据集与源代码已在GitHub开源。