CLoSeR、単眼動画からのキロメートル規模ストリーミング再構成でループ閉じ込みを実現
本研究は、フィードフォワード型ストリーミング再構成モデルLoGeRにループ閉じ込み機構を追加したCLoSeRを提案した。VBR、KITTI、Oxford Spires、DROID-Wの各ベンチマークでATEを大幅に低減し、特にVBRでは平均ATE RMSEを11.15mに抑えた。本論文はプレプリントであり、査読を受けていない。
ストリーミング再構成基盤モデルのドリフト蓄積を、ループ閉じ込みによって高精度かつスケール一貫な形で解消できるか。
既存のフィードフォワード型ストリーミング再構成モデルは、長距離シーケンスで誤差が蓄積してドリフトが発生する。サブマップベースの手法は点群位置合わせに依存し、スケール不整合やノイズが原因で性能が制限される。
LoGeRやCUT3R、TTT3Rなどのストリーミングモデルはウィンドウ単位で推論するが、ループ制約がないためドリフトが蓄積する。VGGT-SLAMやVGGT-Longなどのサブマップ手法は、VGGTで独立にサブマップを生成し、点群位置合わせで統合するが、スケール不整合とアライメント誤差が問題となる。Sim(3)やSL(4)多様体上のポーズグラフ最適化が必要だった。
CLoSeRは、LoGeRのグローバル一貫スケール特性を利用し、SALAD記述子によるループ候補検出と、ループ条件付きウィンドウ(現在ウィンドウと過去ウィンドウから各N_win/2フレームを組み合わせて推論)でループ相対姿勢を直接推定する。SE(3)多様体上でポーズグラフ最適化を行い、Huber損失で外れ値ループ制約を抑える。再学習は不要。
VBRデータセット(8,815〜18,846フレーム、最大5.2km)で平均ATE RMSEはCLoSeRが11.15m、LoGeRが36.16m、VGGT-Longが91.23m、VGGT-SLAM 2.0が49.39m、LingBot-Mapが31.12m。KITTIオドメトリ(最大4,661フレーム、5.1km)ではCLoSeRが12.79mに対し、LoGeRが25.44m、DROID-SLAMが100.28m、DPV-SLAM++が25.75m。DROID-W(動的シーン、62〜130m)ではCLoSeRが0.75m、LoGeRが1.44m、動的特化のDROID-Wが0.23m。Oxford Spires(最大15,803フレーム、925m)ではCLoSeRが5.26m、LoGeRが6.88m。アブレーションでは、SE(3)最適化のフルモデルが11.15mに対し、Sim(3)は13.33m、SL(4)は20.36mと劣化し、Huber損失除去は14.15m、隣接フレームのみの制約は14.25mだった。
著者らは、基盤となるオドメトリ(LoGeR)が完全に失敗する場合(高ダイナミック環境や急激なカメラ運動)には復旧できないと述べている。また、動的物体への明示的な対処は行っておらず、DROID-Wでは動的専用手法に及ばない。論文では報告されていないが、計算コストやリアルタイム性に関する評価は示されていない。
自律走行、ロボットナビゲーション、3Dマッピングなど、長距離かつループを含む環境での単眼カメラベースの再構成に応用できる。特に、キャリブレーション不要の単眼動画からキロメートル規模の地図生成が可能になる。実用化には、動的環境への頑健性向上とオンライン処理の最適化が必要で、1〜3年以内に研究用途からプロトタイプへ移行する可能性がある。
論文全文
CLoSeR: Closing the Loop for Long-Context Streaming Reconstruction
CC BY 4.0 のもとで公開された論文です。出典を明記して転載しています。原文は arXiv:2610.01927(PDF)。
Abstract
Feedforward foundation models have recently shown remarkable 3D reconstruction capabilities. However, existing models exhibit large tracking drift in long-context streaming reconstruction due to error accumulation. In this paper, we revisit loop closure with streaming reconstruction foundation models to enable accurate, drift-free, kilometer-scale reconstruction. Specifically, our method detects loop candidates through global descriptor retrieval, and constructs loop-conditioned windows to estimate the relative poses between looped frames. Given the observation that our adopted streaming reconstruction backbone produces a globally consistent scale, we optimize all frame poses on the SE(3) manifold with sequential and loop closure constraints, avoiding the pose graph optimization on the Sim(3) or higher-dimensional SL(4) manifolds employed in prior works. Extensive experiments show that our method reduces drift and produces consistent geometry on kilometer-scale sequences, significantly outperforming the state of the art. Code is available at https://github.com/MoyangLi00/CLoSeR.git.
1 Introduction
Accurate geometry and pose estimation from a sequence of images are fundamental yet challenging tasks in 3D vision, with broad applications in robotics (Liu et al., 2024; Arm et al., 2023; Zhou et al., 2022) and autonomous driving (Badue et al., 2021; Geiger et al., 2013). Traditional approaches address this problem by leveraging multi-view geometric constraints, ranging from feature-based pipelines (Mur-Artal et al., 2015; Mur-Artal and Tardós, 2017; Campos et al., 2021) that triangulate sparse keypoints across frames, to direct methods (Engel et al., 2017; Engel et al., 2014) that minimize photometric residuals over image intensities. To achieve more robust estimation under challenging conditions, additional sensors such as inertial measurement units (IMU) (Qin et al., 2018; Leutenegger, 2022) and LiDAR (Zhang et al., 2014; Shan et al., 2020; Xu and Zhang, 2021) are commonly fused into the pipeline. Moreover, some systems have extensively studied loop closure detection (Gálvez-López and Tardos, 2012; Arandjelovic et al., 2016) and pose graph optimization (Kümmerle et al., 2011; Kaess et al., 2012), to correct the tracking drift over long trajectories and large-scale scenes.
Recently, feedforward foundation models have shifted the paradigm in 3D vision. Early works (Wang et al., 2024b; Leroy et al., 2024; Chen et al., 2025a) estimate dense two-view geometry and camera poses with transformers, and rely on pairwise alignment to handle multiple frames. VGGT (Wang et al., 2025a) extends this paradigm to multi-frame inputs, jointly predicting camera poses, depth maps, dense point clouds, and camera intrinsics in a single forward pass. However, the O(n^{2}) computational complexity of self-attention layers and its non-causal architecture prevent VGGT from scaling to long sequences or supporting streaming inference.
Several approaches extend feedforward backbones to long-sequence and sequential reconstruction. Some streaming approaches adopt online updates of global memory representation (Wang et al., 2025b; Chen et al., 2025b) or Test-Time Training (TTT) layers (Zhuo et al., 2025; Elflein et al., 2026; Jin et al., 2026; Zhang et al., 2026) to propagate information across windows to enable long-context reconstruction. However, they still suffer from tracking drift over long trajectories due to the lack of explicit constraints imposed on revisited regions. Submap-based approaches (Maggio et al., 2025; Maggio and Carlone, 2026; Deng et al., 2025) instead partition the sequence into chunks, independently infer the geometry and camera poses of each submap, and align them through point clouds registration. These approaches further incorporate loop closure to mitigate drift. However, since each submap is produced by an independent forward pass of VGGT, scale inconsistency inevitably arises across submaps. As a consequence, the resulting pose graph has to be optimized on the Sim(3) (Deng et al., 2025) or even higher-dimensional SL(4) (Maggio et al., 2025; Maggio and Carlone, 2026) manifold to absorb scale or projective ambiguity. However, the relative poses and scales recovered through point cloud registration remain noisy and unreliable, as shown in Fig. 1, which substantially limits their performance in real-world complex scenarios.
This raises a natural question: can loop closure be made simpler and more reliable when built upon a streaming backbone whose global scale is already consistent? In this paper, we present CLoSeR, a streaming reconstruction system that augments a prior streaming backbone LoGeR (Zhang et al., 2026) with loop closure for accurate kilometer-scale reconstruction from uncalibrated monocular videos. Our approach exploits two key properties of LoGeR: (a) its pose predictions across windows share a globally consistent scale, rendering pose graph optimization on the SE(3) manifold sufficient and avoiding the Sim(3) or SL(4) manifolds used in prior submap-based methods; (b) its window-wise inference does not require temporal contiguity of input frames, allowing us to append a loop-conditioned window comprising the current and revisited frames after the regular streaming windows, and to directly recover their relative poses in the global coordinate frame.
In summary, our main contributions are as follows:
- We present a system that integrates loop closure into streaming feedforward reconstruction models, enabling accurate kilometer-scale reconstruction from monocular videos.
- We propose a simple yet effective loop-conditioned window mechanism that exploits the streaming nature of the backbone to recover relative poses between looped frames in a globally consistent coordinate frame.
- We show that, owing to the globally consistent scale, pose graph optimization on the SE(3) manifold is sufficient for accurate large-scale reconstruction, obviating the Sim(3) or SL(4) optimization and the point-cloud alignment adopted by prior submap-based methods.
2 Related Works
Structure-from-Motion (SfM) aims to estimate sparse point clouds and camera poses from a collection of images. Traditional SfM pipelines (Snavely et al., 2008; Schönberger and Frahm, 2016; Pan et al., 2024) typically decompose this problem into several stages: keypoint detection and correspondence matching, camera pose estimation, and joint refinement of structure and poses. To improve the robustness and accuracy of SfM, recent works incorporate deep learning at different stages, including deep feature extraction (DeTone et al., 2018; Dusmanu et al., 2019; Yi et al., 2016) and learning-based feature matching (Sarlin et al., 2020; Edstedt et al., 2024; Pautrat et al., 2023; Lindenberger et al., 2023). Beyond this, another line of work explores end-to-end differentiable SfM (Teed and Deng, 2018; Wei et al., 2020; Brachmann et al., 2024; Wang et al., 2024a), which jointly optimizes geometry and camera poses within a unified learning framework.
Simultaneous Localization and Mapping (SLAM) aims to estimate camera poses and reconstruct the scene online from sequential observations. Traditional approaches are commonly categorized into feature-based methods (Mur-Artal et al., 2015; Mur-Artal and Tardós, 2017; Campos et al., 2021) and direct methods (Engel et al., 2017; Engel et al., 2014; Newcombe et al., 2011). Feature-based methods track sparse keypoints across frames and triangulate them into a sparse map, while direct methods minimize photometric residuals over image intensities to jointly recover poses and geometry. To improve robustness under challenging conditions like motion blur, low texture and large-scale scenes, some pipelines introduce additional sensors (IMU (Qin et al., 2018; Leutenegger, 2022; Zhu et al., 2026) and LiDAR (Zhang et al., 2014; Shan et al., 2020; Xu and Zhang, 2021)). To mitigate drift over long trajectories, many systems further incorporate loop closure (Mur-Artal et al., 2015; Mur-Artal and Tardós, 2017; Campos et al., 2021; Engel et al., 2014; Leutenegger, 2022). More recently, learning-based visual SLAM and VO systems (Teed and Deng, 2021; Teed et al., 2023; Lipson et al., 2024) have demonstrated superior accuracy and robustness over their classical counterparts. In parallel, another line of work integrates neural scene representations such as NeRF (Zhu et al., 2022; Zhu et al., 2024) and 3D Gaussian Splatting (Yan et al., 2024; Keetha et al., 2024; Matsuki et al., 2024) into SLAM, enabling photorealistic dense mapping. Despite maintaining consistency over long sequences, these carefully designed SLAM systems typically rely on iterative optimization and sophisticated pipelines. In contrast, recent feedforward reconstruction models jointly predict scene geometry and camera poses in a single forward pass, eliminating the need for iterative optimization.
Feedforward 3D Reconstruction Models predict dense 3D geometry directly from images without requiring known camera parameters. DUSt3R (Wang et al., 2024b) and MASt3R (Leroy et al., 2024) predict dense point clouds from an image pair within a common coordinate frame. MonST3R (Zhang et al., 2024) and Easi3R (Chen et al., 2025a) further extend DUSt3R to dynamic environments. VGGT (Wang et al., 2025a) and {\pi^{3}} (Wang et al., 2025c) support arbitrary numbers of input frames and achieve more accurate predictions. However, their quadratic attention limits scalability to very long sequences and prohibits online streaming inference. To address this limitation, VGGT-SLAM (Maggio et al., 2025; Maggio and Carlone, 2026) and VGGT-Long (Deng et al., 2025) extend VGGT to long sequences through submap-based alignment. In contrast, CUT3R (Wang et al., 2025b) and TTT3R (Chen et al., 2025b) handle long sequences by continuously updating a global state representation in an online manner. Several other streaming reconstruction works (Elflein et al., 2026; Jin et al., 2026; Zhang et al., 2026) instead leverage Test-Time Training (TTT) layers (Sun et al., 2024; Zhang et al., 2025) to propagate information across windows with linear complexity. Despite the rapid progress of feedforward reconstruction, existing approaches still struggle with drift accumulation in long-context streaming reconstruction. In contrast, our method incorporates effective loop closure within the feedforward reconstruction model, enabling accurate, drift-free streaming reconstruction at the kilometer scale.
3 Method
N_{\text{win}}/2 frames from the current window with N_{\text{win}}/2 frames from the corresponding prior window, predict the relative poses between loop edges from a single forward pass, and perform pose graph optimization on the \mathrm{SE}(3) manifold to correct tracking drift.Our proposed method, CLoSeR, enables accurate kilometer-scale streaming reconstruction from monocular sequences by augmenting a feedforward backbone (Zhang et al., 2026) with a loop closure module. In Sec. 3.1, we introduce the preliminaries of the streaming reconstruction backbone that our framework builds upon. In Sec. 3.2, we present loop detection and relative pose estimation between looped frames. Finally, in Sec. 3.3, we describe the global pose graph optimization over all frames with sequential and loop closure constraints. The overview of CLoSeR is shown in Fig. 2.
3.1 Preliminaries
Given a long image sequence \mathcal{I}=\{\mathbf{I}_{1},\dots,\mathbf{I}_{N}\} as inputs, LoGeR (Zhang et al., 2026) partitions it into K overlapping chunks of size N_{\text{win}} with stride s=N_{\text{win}}-N_{\text{overlap}}. The k-th chunk (k=1,\dots,K) is defined as
\mathcal{W}_{k}=\{\,\mathbf{I}_{t}\mid(k-1)s+1\leq t\leq(k-1)s+N_{\text{win}}\,\}.During inference, LoGeR (Zhang et al., 2026) first tokenizes the current window of images with a DINO-based (Oquab et al., 2023) encoder, and then applies multiple attention layers to produce per-frame camera-to-world poses \{\mathbf{T}_{t}\}_{t\in\mathcal{W}_{k}}\subset\mathrm{SE}(3) in a global world coordinate system and dense point maps \mathbf{P}_{t}\in\mathbb{R}^{H\times W\times 3} in local camera coordinates.
To maintain global consistency over long sequences, LoGeR employs two mechanisms for cross-chunk information propagation. Sliding Window Attention (SWA) preserves uncompressed features from recent chunks and enables precise alignment at chunk boundaries, whereas Test-Time Training (TTT) fast weights accumulate an evolving global state that anchors the trajectory to a consistent coordinate frame and mitigates scale drift over long horizons. As a result, all per-frame poses \{\mathbf{T}_{t}\}_{t=1}^{N} are expressed in a single global reference frame with consistent scale throughout inference.
Despite these properties, LoGeR still suffers from tracking drift over long trajectories, due to error accumulation caused by the lossy compression of global information in the TTT memory and the absence of explicit revisit constraints in the feedforward inference. This motivates us to build a loop closure framework on top of LoGeR. Two properties of the backbone make it particularly well suited as a frontend for loop closure: its chunk-based forward pass places no requirement on the temporal contiguity of input frames, and its pose outputs across chunks already share a common global scale. Exploiting these properties, we introduce a loop closure module on top of the LoGeR backbone, which estimates relative poses between looped frames under a consistent scale and enforces the resulting constraints through pose graph optimization.
3.2 Loop Detection and Alignment
To correct the tracking drift caused by error accumulation, we perform loop detection and loop pair alignment in a sequential manner.
Loop Detection
Let \mathbf{I}_{j} denote a frame in the current window \mathcal{W}^{\text{cur}} and \mathbf{I}_{i} a frame from previous windows. Upon the arrival of a new window of N_{\text{win}} frames, we extract the compact global descriptor \mathbf{d}_{j}^{\text{cur}} for each \mathbf{I}_{j} via SALAD (Izquierdo and Civera, 2024), and compute its cosine similarity with the descriptors \mathbf{d}_{i}^{\text{prev}} of all frames from previous windows. A pair (\mathbf{I}_{j},\mathbf{I}_{i}) is considered a valid loop candidate if its similarity exceeds \tau_{\text{sim}} and its temporal separation satisfies j-i>\tau_{\text{time}}. For each frame \mathbf{I}_{j}, we retain its top-k candidates ranked by similarity, yielding the loop pair set
\mathcal{C}_{k}=\bigcup_{j}\left\{(\mathbf{I}_{j},\mathbf{I}_{i})\;\middle|\;i\in\mathrm{Top}_{k}\!\left(s(\mathbf{d}_{j}^{\text{cur}},\mathbf{d}_{i}^{\text{prev}})\right),\;s(\mathbf{d}_{j}^{\text{cur}},\mathbf{d}_{i}^{\text{prev}})>\tau_{\text{sim}},\;j-i>\tau_{\text{time}}\right\},where s(\mathbf{d}_{j}^{\text{cur}},\mathbf{d}_{i}^{\text{prev}})=\dfrac{\mathbf{d}_{j}^{\text{cur}}\cdot\mathbf{d}_{i}^{\text{prev}}}{\|\mathbf{d}_{j}^{\text{cur}}\|_{2}\,\|\mathbf{d}_{i}^{\text{prev}}\|_{2}} denotes the cosine similarity, and \mathrm{Top}_{k}(\cdot) selects the indices of the k frames with the largest similarity scores.
Loop-Conditioned Window Construction
The detected loop frames in \mathcal{C}_{k} may come from several distinct prior windows. Accordingly, the current window can be associated with multiple prior windows, each yielding a separate loop-conditioned window. Formally, let \{\mathcal{W}^{\text{prev}}_{m}\}_{m=1}^{M} denote the set of prior windows connected to the current window \mathcal{W}^{\text{cur}} through loop pairs. For each \mathcal{W}^{\text{prev}}_{m}, we denote the set of loop pairs linking it to \mathcal{W}^{\text{cur}} as:
\mathcal{L}_{m}=\{(\mathbf{I}_{j},\mathbf{I}_{i})\in\mathcal{C}_{k}\mid\mathbf{I}_{j}\in\mathcal{W}^{\text{cur}},\;\mathbf{I}_{i}\in\mathcal{W}^{\text{prev}}_{m}\}.We then construct two subsets \mathcal{S}^{\text{cur}}_{m}\subseteq\mathcal{W}^{\text{cur}} and \mathcal{S}^{\text{prev}}_{m}\subseteq\mathcal{W}^{\text{prev}}_{m}, each of size N_{\text{win}}/2, from the frames that participate in \mathcal{L}_{m}. If more than N_{\text{win}}/2 frames are available on either side, we keep the N_{\text{win}}/2 frames with the highest similarity scores; if fewer are available, we augment the subset with temporally adjacent frames from the respective window. The loop-conditioned window is then formed as \tilde{\mathcal{W}}_{m}=\mathcal{S}^{\text{cur}}_{m}\cup\mathcal{S}^{\text{prev}}_{m}.
This yields a collection \{\tilde{\mathcal{W}}_{m}\}_{m=1}^{M} of loop-conditioned windows that preserve local temporal continuity while explicitly incorporating long-range loop constraints.
Relative Pose Estimation
Each loop-conditioned window \tilde{\mathcal{W}}_{m} is passed through the streaming inference model to obtain the poses. Unlike the standard sliding-window inference in Sec. 3.1, which operates on temporally contiguous frames, a single forward pass here jointly infers poses for frames from \mathcal{W}^{\text{cur}} and \mathcal{W}^{\text{prev}}_{m}. Let \mathbf{T}_{j}^{(m)} and \mathbf{T}_{i}^{(m)} denote the poses of \mathbf{I}_{j}\in\mathcal{W}^{\text{cur}} and \mathbf{I}_{i}\in\mathcal{W}^{\text{prev}}_{m} estimated from \tilde{\mathcal{W}}_{m}. The relative pose constraint for each loop pair (\mathbf{I}_{j},\mathbf{I}_{i})\in\mathcal{L}_{m} is
\mathbf{T}_{ji}^{\text{loop}}=\bigl(\mathbf{T}_{j}^{(m)}\bigr)^{-1}\,\mathbf{T}_{i}^{(m)}.Collecting these constraints over all loop pairs and all \{\tilde{\mathcal{W}}_{m}\}_{m=1}^{M} yields the inter-frame loop constraints used in the pose graph optimization (Sec. 3.3).
3.3 Pose Graph Optimization
Given sequential constraints between each frame and its N_{\text{seq}} temporal neighbors, and loop closure constraints \{\mathbf{T}_{ji}^{\text{loop}}\} provided by Sec. 3.2, we jointly refine all frame poses via pose graph optimization on \mathrm{SE}(3), as LoGeR’s SWA and TTT layers ensure a globally consistent scale. We denote the corresponding edge sets by \mathcal{E}_{\text{seq}} and \mathcal{E}_{\text{loop}}, and use \mathbf{T}_{qp}^{\text{seq}} to represent the relative pose on a sequential edge (q,p)\in\mathcal{E}_{\text{seq}}. Thus, we formulate the following cost function to optimize the global poses \{\mathbf{T}_{t}\}_{t=1}^{N}\subset\mathrm{SE}(3):
\displaystyle\{\mathbf{T}_{t}^{*}\}=\arg\min_{\{\mathbf{T}_{t}\}}\sum_{(q,p)\in\mathcal{E}_{\text{seq}}}\left\|\text{Log}_{{\text{SE}}(3)}\!\left((\mathbf{T}_{qp}^{\text{seq}})^{-1}\,\mathbf{T}_{q}^{-1}\,\mathbf{T}_{p}\right)\right\|_{2}^{2} \\ \displaystyle+\sum_{(j,i)\in\mathcal{E}_{\text{loop}}}\rho_{\delta}\!\left(\left\|\text{Log}_{\mathrm{SE}(3)}\!\left((\mathbf{T}_{ji}^{\text{loop}})^{-1}\,\mathbf{T}_{j}^{-1}\,\mathbf{T}_{i}\right)\right\|\right),where \text{Log}_{\mathrm{SE}(3)}(\cdot):\mathrm{SE}(3)\to\mathbb{R}^{6} maps a transformation to its 6-dimensional tangent vector, and \rho_{\delta}(\cdot) is the Huber loss with threshold \delta, applied to the loop term to suppress the influence of outlier loop constraints as follows:
\rho_{\delta}(r)=\begin{cases}\tfrac{1}{2}r^{2},&|r|\leq\delta,\\
\delta\left(|r|-\tfrac{1}{2}\delta\right),&|r|>\delta.\end{cases}We solve the problem with the Levenberg-Marquardt algorithm, and update the poses on the manifold via \mathbf{T}_{t}\leftarrow\mathbf{T}_{t}\,\exp(\boldsymbol{\xi}_{t}^{\wedge}) at each iteration, where \boldsymbol{\xi}_{t}\in\mathbb{R}^{6} is the tangent-space increment and (\cdot)^{\wedge} denotes the hat operator that lifts \mathbb{R}^{6} to \mathfrak{se}(3).
4 Experiments
Benchmarks and Metrics
We evaluate our method on (a) three representative long-context reconstruction benchmarks: the VBR dataset (Brizi et al., 2024), the autonomous driving benchmark KITTI Odometry (Geiger et al., 2013), and the challenging Oxford Spires dataset (Tao et al., 2024); and (b) one outdoor dynamic benchmark, DROID-W (Li et al., 2026). VBR is captured in Rome and provides RGB sequences, 3D point clouds, IMU measurements, and ground-truth trajectories obtained via bundle adjustment. Following LoGeR, we evaluate on 7 VBR sequences ranging from 8,815 to 18,846 frames and 1.45 to 5.2 km in trajectory length, all containing loops. KITTI Odometry comprises 11 sequences with long, loop-containing trajectories of up to 4,661 frames and 5.1 km. Oxford Spires consists of 14 sequences spanning indoor and outdoor scenes with challenging loop closures, ranging from 3,961 to 15,803 frames and 294 to 925 m in length. DROID-W contains 7 challenging dynamic sequences captured outdoors, ranging from 1,427 to 2,200 frames and 62 to 130 m in length. We report Absolute Trajectory Error (ATE) to evaluate tracking accuracy, and align estimated trajectories with the groundtruth via Sim(3) Umeyama alignment (Umeyama, 1991).
- #Frames
- 8815
- 12042
- 11671
- 11142
- 14141
- 10021
- 18846
- 12383
- Scale
- 1.45km
- 2.73km
- 2.95km
- 1.27km
- 1.56km
- 1.02km
- 5.20km
- 2.31km
- Contains Loop?
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- –
- Optimization-based (Calibrated)
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- DROID-SLAM
- 76.53
- 128.77
- 63.89
- 43.86
- 50.63
- 35.58
- 132.84
- 76.01
- DPV-SLAM
- 107.55
- 56.85
- 88.46
- 102.64
- 32.63
- 74.11
- 60.95
- 74.74
- DPV-SLAM++
- 55.47
- 11.90
- 13.11
- 101.84
- 34.12
- 74.69
- 59.47
- 50.09
- Feedforward (Uncalibrated)
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- VGGT-Long
- 45.73
- 132.68
- 115.65
- 64.40
- 58.49
- 33.66
- 187.97
- 91.23
- VGGT-SLAM
- 102.92
- 110.77
- 89.69
- 72.98
- 62.67
- 35.62
- 144.02
- 88.38
- VGGT-SLAM 2.0
- 102.25
- 26.57
- 22.42
- 47.05
- 59.91
- 36.00
- 51.53
- 49.39
- InfiniteVGGT
- 90.02
- 136.83
- 116.69
- 77.72
- 63.47
- 33.91
- 202.11
- 102.96
- CUT3R
- 88.16
- 46.39
- 48.00
- 52.87
- 47.98
- 30.18
- 187.58
- 71.59
- TTT3R
- 81.63
- 68.36
- 65.67
- 35.56
- 39.03
- 19.84
- 185.59
- 70.81
- AMB3R
- 62.60
- 110.60
- 119.76
- 61.69
- 62.04
- 35.02
- 185.44
- 91.02
- \pi^{3}-Chunk
- 81.63
- 86.54
- 71.49
- 49.85
- 54.27
- 28.07
- 118.81
- 70.09
- LingBot-Map
- 19.22
- 18.46
- 11.40
- 41.89
- 36.56
- 22.65
- 67.64
- 31.12
- LoGeR
- 25.60
- 19.53
- 28.90
- 28.11
- 23.04
- 35.01
- 92.94
- 36.16
- LoGeR*
- 49.38
- 22.44
- 34.90
- 11.08
- 27.05
- 32.88
- 44.51
- 31.75
- CLoSeR (Ours)
- 14.23
- 7.43
- 3.71
- 9.78
- 13.04
- 12.92
- 16.93
- 11.15
- #Frames
- 4541
- 1101
- 4661
- 801
- 271
- 2761
- 1101
- 1101
- 4071
- 1591
- 1201
- 2109
- Scale
- 3.7km
- 2.5km
- 5.1km
- 0.6km
- 0.4km
- 2.2km
- 1.2km
- 0.7km
- 3.2km
- 1.7km
- 0.9km
- 2.0km
- Contains Loop?
- \checkmark
- \times
- \checkmark
- \times
- \times
- \checkmark
- \checkmark
- \checkmark
- \times
- \checkmark
- \times
- –
- Optimization-based (Calibrated)
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- DROID-SLAM
- 92.10
- 344.60
- 107.61
- 2.38
- 1.00
- 118.50
- 62.47
- 21.78
- 161.60
- 72.32
- 118.70
- 100.28
- DPV-SLAM
- 112.80
- 11.50
- 123.53
- 2.50
- 0.81
- 57.80
- 54.86
- 18.77
- 110.49
- 76.66
- 13.65
- 53.03
- DPV-SLAM++
- 8.30
- 11.86
- 39.64
- 2.50
- 0.78
- 5.74
- 11.60
- 1.52
- 110.90
- 76.70
- 13.70
- 25.75
- Feedforward (Uncalibrated)
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- VGGT-Long
- 8.67
- 121.17
- 32.08
- 6.12
- 4.23
- 8.31
- 5.34
- 4.63
- 53.10
- 41.99
- 18.37
- 27.64
- VGGT-SLAM 2.0
- 108.39
- 155.00
- 140.15
- 13.45
- 2.87
- 10.12
- 29.17
- 17.27
- 75.33
- 27.70
- 24.09
- 54.87
- FastVGGT
- OOM
- 639.39
- OOM
- 21.53
- 9.51
- OOM
- 40.56
- 51.35
- OOM
- 201.54
- 196.22
- –
- InfiniteVGGT
- 186.46
- 623.62
- 289.16
- 166.74
- 68.00
- 143.84
- 117.57
- 85.33
- 221.56
- 215.41
- 156.92
- 206.78
- CUT3R
- 190.38
- 90.59
- 264.39
- 20.40
- 7.31
- 92.25
- 67.54
- 22.48
- 145.08
- 67.42
- 40.00
- 91.62
- TTT3R
- 119.94
- 99.59
- 238.07
- 16.83
- 3.98
- 36.38
- 47.20
- 11.62
- 107.33
- 86.96
- 33.58
- 72.86
- AMB3R
- 177.78
- 244.67
- 233.65
- 22.08
- 6.81
- 157.62
- 61.93
- 35.02
- 255.53
- 134.62
- 50.41
- 125.47
- \pi^{3}-Chunk
- 26.65
- 196.04
- 157.92
- 5.13
- 1.09
- 12.79
- 27.66
- 5.94
- 61.26
- 56.31
- 21.96
- 52.07
- LingBot-Map
- 23.22
- 88.84
- 71.15
- 2.81
- 0.91
- 17.40
- 4.91
- 5.16
- 14.24
- 21.71
- 14.54
- 24.08
- LoGeR
- 62.34
- 41.64
- 39.64
- 4.89
- 1.82
- 41.27
- 13.99
- 16.24
- 26.46
- 22.71
- 8.84
- 25.44
- LoGeR*
- 30.47
- 47.91
- 36.32
- 5.38
- 1.95
- 26.34
- 6.60
- 5.55
- 24.41
- 10.12
- 10.11
- 18.65
- CLoSeR (Ours)
- 6.58
- 41.80
- 28.38
- 4.88
- 1.82
- 6.58
- 4.77
- 4.87
- 26.51
- 5.64
- 8.83
- 12.79
- #Frames
- 1427
- 2200
- 1438
- 1794
- 2157
- 1900
- 1900
- 1831
- Scale
- 91m
- 122m
- 62m
- 85m
- 130m
- 105m
- 109m
- 101m
- Contains Loop?
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \times
- \checkmark
- \checkmark
- –
- Optimization-based (Calibrated)
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- DROID-SLAM
- 0.26
- 7.84
- 1.05
- 0.33
- 0.64
- 0.06
- 0.05
- 1.46
- DPV-SLAM
- 0.41
- 0.50
- 1.05
- 0.15
- 1.05
- 7.55
- 7.95
- 2.67
- DPV-SLAM++
- 0.41
- 0.12
- 0.15
- 0.16
- 1.06
- 2.57
- 7.04
- 1.64
- WildGS-SLAM
- 0.10
- 0.95
- 0.43
- 0.36
- 0.87
- 1.22
- 0.53
- 0.63
- DROID-W
- 0.15
- 0.25
- 0.15
- 0.32
- 0.24
- 0.43
- 0.07
- 0.23
- Feedforward (Uncalibrated)
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- VGGT-Long
- 4.68
- 4.94
- 2.48
- 5.11
- 4.61
- 3.14
- 1.79
- 3.82
- VGGT-SLAM 2.0
- 0.47
- 2.58
- 2.03
- 4.36
- 4.82
- 0.42
- 1.30
- 2.28
- CUT3R
- 10.04
- 11.91
- 6.54
- 9.70
- 21.78
- 7.74
- 5.85
- 10.51
- TTT3R
- 4.64
- 11.25
- 4.30
- 7.35
- 11.28
- 5.09
- 7.26
- 7.31
- AMB3R
- 1.90
- 5.72
- 5.57
- 4.99
- 7.65
- 7.69
- 6.59
- 5.73
- LingBot-Map
- 1.00
- 0.70
- 0.46
- 0.74
- 1.37
- 1.63
- 0.45
- 0.91
- LoGeR
- 2.16
- 1.98
- 1.02
- 1.78
- 0.74
- 1.64
- 0.73
- 1.44
- CLoSeR (Ours)
- 0.34
- 0.88
- 0.99
- 1.52
- 0.73
- 0.50
- 0.30
- 0.75
- #Frames
- 5969
- 5682
- 13518
- 11544
- 5746
- 5469
- 8041
- 7276
- 6755
- 15803
- 11775
- 6204
- 3961
- 4966
- 8051
- Scale
- 294m
- 283m
- 783m
- 706m
- 397m
- 393m
- 494m
- 393m
- 386m
- 925m
- 642m
- 339m
- 823m
- 691m
- 539m
- Contains Loop?
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \checkmark
- \times
- –
- Optimization-based (Calibrated)
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- DROID-SLAM
- 6.66
- 29.71
- 14.10
- 36.60
- 0.17
- 0.36
- 47.79
- 6.05
- 15.88
- 13.85
- 10.17
- 0.33
- 8.92
- 5.64
- 14.02
- DPV-SLAM
- 5.84
- 4.53
- 19.74
- 25.25
- 0.27
- 6.24
- 3.67
- 0.89
- 11.62
- 1.05
- 1.15
- 0.94
- 42.62
- 3.51
- 9.10
- DPV-SLAM++
- 1.33
- 29.35
- 18.39
- 3.66
- 0.20
- 2.94
- 3.88
- 1.00
- 12.06
- 3.93
- 7.82
- 0.28
- 40.19
- 3.32
- 9.17
- Feedforward (Uncalibrated)
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- データなし
- VGGT-Long
- 3.63
- 14.00
- 32.66
- 4.64
- 3.80
- 5.64
- 11.92
- 14.04
- 11.41
- 17.59
- 9.03
- 4.02
- 14.51
- 16.76
- 11.69
- VGGT-SLAM 2.0
- 7.28
- 20.57
- 6.90
- 17.06
- 1.76
- 1.85
- 18.74
- 1.23
- 1.26
- 1.50
- 1.64
- 0.96
- 16.41
- 8.51
- 7.55
- CUT3R
- 25.44
- 17.75
- 42.51
- 36.12
- 26.83
- 27.05
- 50.64
- 42.53
- 49.45
- 33.46
- 41.67
- 11.83
- 32.47
- 56.71
- 35.32
- TTT3R
- 29.05
- 17.45
- 32.54
- 41.37
- 26.37
- 26.65
- 51.27
- 45.89
- 35.25
- 31.17
- 41.46
- 14.18
- 27.26
- 69.42
- 34.95
- AMB3R
- 15.95
- 29.38
- 24.68
- 40.05
- 2.99
- 3.36
- 47.88
- 41.59
- 42.97
- 28.91
- 43.34
- 14.56
- 26.64
- 18.79
- 27.22
- LingBot-Map
- 3.42
- 3.27
- 3.00
- 9.39
- 2.81
- 2.50
- 18.95
- 3.82
- 2.78
- 3.32
- 13.39
- 2.94
- 28.79
- 9.27
- 7.69
- LoGeR
- 4.01
- 3.11
- 6.51
- 5.76
- 7.01
- 6.98
- 6.58
- 7.33
- 6.98
- 9.18
- 6.72
- 1.84
- 10.22
- 14.09
- 6.88
- CLoSeR (Ours)
- 2.75
- 2.40
- 5.79
- 4.65
- 4.33
- 4.03
- 7.78
- 5.18
- 5.06
- 2.57
- 5.70
- 1.19
- 8.03
- 14.08
- 5.26
Baselines
We conduct extensive comparisons with both optimization-based and feedforward methods. For optimization-based methods, we compare against DROID-SLAM (Teed and Deng, 2021), DPV-SLAM / DPV-SLAM++ (Lipson et al., 2024), additionally including the dynamic SLAM methods WildGS-SLAM (Zheng et al., 2025) and DROID-W (Li et al., 2026) on the DROID-W dataset. For feedforward approaches, we compare against (a) streaming reconstruction foundation models: CUT3R (Wang et al., 2025b), TTT3R (Chen et al., 2025b), FastVGGT (Shen et al., 2025), InfiniteVGGT (Yuan et al., 2026), AMB3R-VO (Wang and Agapito, 2025), LingBot-Map (Chen et al., 2026), and LoGeR / LoGeR* (Zhang et al., 2026), where LoGeR* incorporates alignment-aware training and adopts a larger window size; (b) VGGT-based SLAM: VGGT-SLAM (Maggio et al., 2025; Maggio and Carlone, 2026) and VGGT-Long (Deng et al., 2025), for which we adopt their default chunk sizes of 16 and 60, respectively. Following prior work (Zhang et al., 2026), we additionally evaluate \pi^{3} (Wang et al., 2025c) in a chunk-wise manner.
Quantitative Results
Camera tracking comparisons on four benchmarks are reported in Tables 1, 2, 3, and 4. As shown in Table 1 and Table 2, both VBR and KITTI consist of kilometer-scale sequences, on which our approach substantially outperforms LoGeR / LoGeR* (Zhang et al., 2026), as our loop closure module effectively handles revisited regions. LoGeR* achieves the second-best performance due to its alignment-aware training and large window size. Prior VGGT-based alignment methods exhibit larger tracking errors due to inaccurate point cloud alignment, and recent feedforward streaming models suffer from noticeable drift. We further compare against classical deep visual SLAM systems. DROID-SLAM (Teed and Deng, 2021) and DPV-SLAM (Lipson et al., 2024) often fall behind in outdoor kilometer-scale scenes under monocular input, where scale drift and forward-dominant motion (e.g., KITTI Odometry) jointly degrade tracking. In contrast, our approach remains robust, benefiting from strong 3D reconstruction priors and effective loop closure. DROID-W dataset contains strong dynamic motion (e.g., moving crowds), where dynamics-aware methods such as DROID-W (Li et al., 2026) unsurprisingly perform best. However, our method substantially outperforms all other baselines and, notably, remains competitive with in-the-wild methods despite not incorporating any dynamics-specific handling. Table 4 further highlights the superiority of our approach on the challenging Oxford Spires sequences.
Qualitative Comparisons
We provide qualitative point cloud comparisons in Fig. 3. On colosseo_0, LoGeR reconstructs the Colosseum as two misaligned duplicates (red boxes), revealing its failure to close the loop upon revisit. In contrast, our method recovers a single, globally consistent structure. The same failure pattern appears on Downtown1, where LoGeR yields fragmented geometry around the loop region whereas ours produces a coherent reconstruction. Fig. 4 compares estimated trajectories on four benchmarks. VGGT-SLAM and VGGT-Long both construct submaps with VGGT and align submaps via point cloud registration on overlapping frames. However, independent per-submap predictions and noisy point clouds lead to inaccurate alignment and unreliable scale, causing substantial tracking errors. LingBot-Map (Chen et al., 2026) produces noisy trajectories with substantial jitter, while LoGeR produces erroneous poses, especially in revisited regions due to large tracking drift. In contrast, our method delivers the most accurate and robust trajectories estimation across these sequences, benefiting from its effective loop closure mechanism.
- (a) LoGeR (w/o Loop Closure)
- 36.16
- (b) Neighbor-only constr.
- 14.25
- (c) w/o Huber loss
- 14.15
- (d) Sim(3) optimization
- 13.33
- (e) SL(4) optimization
- 20.36
- Full method
- 11.15
Ablation Study
We report ablations of several design choices in Table 5. In variant (b), we set N_{\text{seq}}=1 to enforce neighbor-only sequential constraints; the resulting performance drop shows that denser sequential constraints provide stronger short-range regularization of the trajectory. In variant (c), removing the Huber loss degrades performance, confirming its effectiveness in down-weighting outlier loop constraints. In variant (d), we replace our SE(3) pose graph with a Sim(3) formulation that additionally optimizes per-frame scale. Since our loop closure window inherits scale consistency from the streaming backbone, the extra scale degrees of freedom introduce optimization ambiguity and lead to inferior accuracy. In variant (e), we further replace it with an SL(4) formulation proposed in VGGT-SLAM, whose 15-DOF projective transformation introduces more degrees of freedom than necessary in our setting, resulting in additional performance degradation. Overall, our full method achieves the best performance, validating the effectiveness of each design choice.
5 Limitations
We present a feedforward streaming reconstruction method that incorporates loop closure to substantially reduce drift over kilometer-scale trajectories. However, when the underlying odometry suffers not from accumulated drift but from complete failure, our method cannot recover the correct trajectory. Such failures arise when the feedforward frontend (LoGeR in our case) is pushed beyond its operating conditions, e.g., in highly dynamic environments or under aggressive camera motion.
6 Conclusion
We presented CLoSeR, a streaming reconstruction framework that revisits loop closure within a feedforward backbone, enabling accurate kilometer-scale reconstruction from uncalibrated monocular videos without any retraining. By exploiting the globally consistent scale of the streaming backbone LoGeR, we introduce a loop-conditioned window mechanism that recovers relative poses between looped frames directly in the global coordinate system. Our experiments demonstrate that pose graph optimization on the SE(3) manifold is sufficient within our framework, avoiding the Sim(3) or SL(4) optimization adopted by prior submap-based methods. In future work, we aim to improve the robustness of our framework under challenging conditions such as motion blur, low-texture regions, and exposure variations. We also plan to explore multi-agent collaborative reconstruction and online deployment, broadening its applicability to real-world large-scale environments.
References
Appendix A Technical appendices and supplementary material
A.1 Experimental Setting
We adopt LoGeR as our base model for all evaluations, as LoGeR∗ uses different weights and a larger window size that incur substantially higher GPU memory consumption. In addition, LoGeR∗ performs an SE(3) alignment across all window predictions to enforce a more consistent global reconstruction. We follow the evaluation protocol of LoGeR (Zhang et al., 2026) and downsample all input images at inference to a uniform pixel budget of approximately 2.55\times 10^{5} pixels. This ensures fair comparison across datasets with different native resolutions. The resulting resolutions are 924\times 266 for KITTI Odometry (Geiger et al., 2013), 672\times 378 for VBR (Brizi et al., 2024), 672\times 378 for DROID-W (Li et al., 2026), and 588\times 434 for Oxford Spires (Tao et al., 2024).
We employ a window size of 32 and an overlap size of 3 across all evaluations, except for VBR, where we adopt a window size of 48 following the LoGeR protocol (Zhang et al., 2026). For loop detection, we set the temporal separation threshold to \tau_{\text{time}}=4\times\text{window size} and the similarity threshold to \tau_{\text{sim}}=0.7, and retain only the top-5 most similar pairs. For pose graph optimization, we set N_{\text{seq}}=4 to enforce stronger sequential constraints.
A.2 Additional Results
We provide additional qualitative comparisons of point clouds and camera trajectories in Fig. 5 and Fig. 6, respectively. As shown in Fig. 5, our approach produces more geometrically consistent reconstructions, since effective loop closure enforces constraints on revisited regions and enables drift-free reconstruction. Fig. 6 compares the estimated trajectories against baseline methods. VGGT-Long and VGGT-SLAM exhibit substantial tracking errors on the challenging VBR and Oxford Spires datasets, while LoGeR suffers from noticeable drift across all sequences due to the absence of explicit constraints on revisited regions. In contrast, our method robustly recovers accurate trajectories across all sequences.
- LoGeR (Zhang et al., 2026)
- –
- –
- 100.00%
- 73.1
- 7.60
- 16.65 GiB
- 25.44
- CLoSeR (Ours)
- 5.16%
- 1.12%
- 093.72%
- 79.5
- 7.12
- 15.69 GiB
- 12.79
A.3 Runtime and GPU Memory Analysis
We evaluate the runtime and GPU memory usage of our method compared with LoGeR Zhang et al. (2026). All experiments are conducted on a single NVIDIA RTX 4090 GPU paired with 4 cores of an AMD EPYC 9554 CPU on a Slurm cluster. As shown in Table 6, our method incurs only marginal runtime overhead, achieving 7.12 FPS compared with 7.60 FPS for LoGeR (a 6.3% reduction in throughput), while reducing peak GPU memory usage from 16.65 GiB to 15.69 GiB (a 5.8% reduction) due to our efficient optimization. The additional cost mainly stems from our loop closure detection and the additional loop closure windows for model inference. In exchange, our method nearly halves trajectory error, reducing ATE RMSE from 25.44 m to 12.66 m – a substantial accuracy gain at marginal runtime cost.
- VGGT-long (Deng et al., 2025)
- 18.8%
- 49.3%
- VGGT-SLAM 2.0 (Maggio and Carlone, 2026)
- 32.4%
- 147.2%
- CLoSeR (Ours)
- 5.8%
- 6.5%
A.4 Analysis of Cross-Window Scale Consistency
We further analyze cross-window scale consistency for VGGT-Long (Deng et al., 2025), VGGT-SLAM 2.0 (Maggio and Carlone, 2026), and our CLoSeR. For each window (or submap) i, whether a regular window or a loop-closure one, we fit a \mathrm{Sim}(3) transformation between its decoded pose estimates and the corresponding ground truth via Umeyama alignment Umeyama (1991), and extract the scalar scale s_{i}. For VGGT-SLAM 2.0, since its loop-closure submaps consist of only two frames, we instead use the segment-length ratio. We then define a sequence-level scale reference s_{\mathrm{global}}=\frac{1}{|\mathcal{N}|}\sum_{i\in\mathcal{N}}s_{i}, computed over the set of regular (non-loop-closure) windows \mathcal{N}, and compute the per-window relative scale error e_{i}=|s_{i}/s_{\mathrm{global}}-1|. We report the scale error for both regular and loop-closure windows, averaged over all windows on KITTI Geiger et al. (2013). As shown in Table 7, our method achieves substantially lower relative scale error for both regular and loop-closure windows. The improvement on regular windows benefits from LoGeR’s long-context memory. The improvement on loop-closure windows comes from our loop-closure window construction: instead of relying on a separate relative pose estimator or feedforward module, it is naturally incorporated into the LoGeR streaming framework.