---
title: 'SplatHLoc: Hierarchical Gaussian Localization'
url: https://www.emergentmind.com/topics/splathloc
type: topic
---

# SplatHLoc: Hierarchical Gaussian Localization

SplatHLoc denotes a splat-based form of hierarchical visual localization and relocalization in which the scene is represented by Gaussian primitives rather than an SfM point cloud. In its broad sense, it refers to an HLoc-like pipeline that preserves global retrieval, local geometric verification, and PnP-based pose recovery, but replaces sparse points and stored per-point descriptors with a renderable Gaussian map that can support localization and view synthesis within a unified representation. This interpretation is already explicit in the description of SplatLoc, which states that its hierarchical 3DGS-based pipeline is “precisely what one would call ‘SplatHLoc’,” and it becomes a named framework in the later Feature Gaussian Splatting formulation of hierarchical visual relocalization with adaptive nearest-view synthesis and hybrid matching [2409.14067][2603.29185].

## 1. Conceptual origin and relation to HLoc

Hierarchical localization classically proceeds by retrieving candidate database images, establishing local matches, producing 2D–3D correspondences against an SfM model, and estimating pose with PnP+RANSAC. The motivation for SplatHLoc is that point-based hierarchical pipelines are efficient and geometrically well constrained, but they depend on sparse image observations and cannot natively support high-quality novel-view rendering. Conversely, NeRF-style approaches can render but are slow to train and render, and point-based neural maps with stored descriptors can incur large memory footprints [2409.14067][2603.29185].

Within that context, SplatLoc and SplatHLoc occupy two closely related positions. SplatLoc is a 3D Gaussian Splatting-based visual localization method for augmented reality that builds a compact splat map, learns unbiased scene-specific 3D descriptors on demand, selects salient 3D landmarks, and performs 2D–3D matching followed by PnP+RANSAC. The later SplatHLoc framework formalizes hierarchical visual relocalization on top of Feature Gaussian Splatting, adding adaptive nearest-view synthesis and a hybrid coarse-to-fine matcher that exploits a distinction between Gaussian-rendered features and image-extracted fine features [2409.14067][2603.29185].

| Aspect | SplatLoc | SplatHLoc |
|---|---|---|
| Scene map | 3DGS with on-demand 3D descriptor decoder | FGS rendering color, depth, and features |
| Retrieval | NetVLAD reference retrieval | MixVPR retrieval plus adaptive virtual-view synthesis |
| Local verification | 2D query descriptors to 3D splat descriptors | Coarse rendered-feature matching, then fine semi-dense image matching |

A common simplification is to treat SplatHLoc as merely HLoc with a rendered database. That is incomplete. The 2026 formulation replaces sparse point visibility with a continuous renderable feature field and uses synthesized virtual candidates when the original database lacks a nearby viewpoint. The 2024 precursor is likewise not only a rendering system; it performs direct 2D–3D matching to splat-anchored descriptors decoded from 3D positions rather than storing a descriptor vector for every primitive [2409.14067][2603.29185].

## 2. Scene representations and feature parameterization

The 2026 framework is built on Feature Gaussian Splatting (FGS). Each Gaussian primitive \(i\) has a 3D center \(x_i \in \mathbb{R}^3\), rotation quaternion \(q_i \in \mathbb{R}^4\), anisotropic scale \(s_i \in \mathbb{R}^3\), opacity \(\alpha_i \in \mathbb{R}\), color \(c_i \in \mathbb{R}^3\), and feature \(f_i \in \mathbb{R}^d\), with \(d=64\) during training and decoding to \(C=256\). Projection follows the pinhole model
\[
\hat{u} = \pi(K, T, X) = \Pi(K [R|t] X),
\]
with \(\Pi([x\ y\ z]^\top) = (f_x x/z + c_x,\ f_y y/z + c_y)^\top\). The screen-space contribution of splat \(i\) at pixel \(u\) is
\[
w_i(u) = \alpha_i \exp\!\left(- \frac{1}{2} (u-\hat{u}_i)^\top \Sigma^{-1}_{i,u} (u-\hat{u}_i)\right),
\]
and normalized compositing yields
\[
F(u) = \frac{\sum_i w_i(u) f_i}{\sum_i w_i(u)}, \qquad
I(u) = \frac{\sum_i w_i(u) c_i}{\sum_i w_i(u)}.
\]
Depth is rendered analogously. The implementation uses the efficient rasterization and compositing strategy of 3DGS via `gsplat`, including tile-based splat binning and front-to-back alpha compositing [2603.29185].

FGS is trained jointly for color and dense features. A SuperPoint encoder \(e\) produces dense image features \(F_t \in \mathbb{R}^{C \times H' \times W'}\). The FGS map renders low-dimensional features \(F_r^{low}\) with \(C'=64\), and a scene-specific \(3 \times 3\) convolutional decoder \(d\) upsamples them to \(F_r^{high} \in \mathbb{R}^{C \times H' \times W'}\). The loss is
\[
L = L_{rgb} + \gamma L_{feat},
\]
with
\[
L_{rgb} = (1-\lambda)L_1(I,\hat{I}) + \lambda D\text{-}SSIM(I,\hat{I}), \qquad
L_{feat} = L_1(F_t, F_r^{high}),
\]
where \(\gamma = 1\) and \(\lambda = 0.2\) [2603.29185].

The 2024 precursor uses a different feature construction strategy. Instead of storing per-primitive descriptors, SplatLoc first lifts SuperPoint features from multiple posed views into a TSDF-aligned 3D volume \(V\), then learns a multi-resolution hash-grid encoding and a small MLP \(M_f\) such that
\[
g(\mu) = M_f(E(\mu;\Theta)),
\]
defining a scene-specific function \(f_\theta : \mu \mapsto d \in \mathbb{R}^{D_f}\). Its “unbiased” designation is tied to the supervision mechanism: the decoder is trained against a lifted 3D feature field on sampled surface points, thereby avoiding alpha-blended supervision that would otherwise bias 3D descriptors toward explaining blended 2D observations rather than precise 2D–3D correspondences [2409.14067].

This distinction is significant. FGS renders dense, multi-view consistent feature maps directly for hierarchical relocalization, whereas SplatLoc predicts descriptors at 3D locations for direct 2D–3D matching. Both strategies exploit the compactness and rasterization-friendliness of Gaussian splats, but they operationalize the feature layer differently.

## 3. Adaptive retrieval and nearest-view synthesis

SplatHLoc’s retrieval stage is designed around the observation that database images may be unevenly distributed, so the nearest retrieved image can still be too far from the query viewpoint to yield sufficient inlier geometry. The online pipeline therefore begins with coarse retrieval, followed by conditional virtual-view synthesis when geometric verification indicates that viewpoint support is inadequate [2603.29185].

The coarse stage computes a global descriptor \(v_q = V(I_q)\) using MixVPR, retrieves the top-\(k_1\) database images, and runs geometric verification with SuperPoint + LightGlue. Candidates are scored by geometric-verification inlier count,
\[
S(T) = N_{inliers}(T),
\]
and the best coarse pose is
\[
T^\star = \arg\max_T S(T).
\]
To reduce redundancy, geometric verification is performed only on every 10th coarse-retrieved image. If the best inlier count \(N^\star\) is below the threshold \(I\), SplatHLoc samples perturbed poses around the best coarse candidate, renders \(k_2\) virtual RGB frames from the FGS map, builds a temporary retrieval database from them, retrieves the top-\(k_3\) virtual candidates, and re-runs geometric verification to pick the nearest view [2603.29185].

The default hyperparameters are \(k_1 = 10\), \(k_2 = 150\) indoor and \(100\) outdoor, \(k_3 = 5\), perturbation range \(a = 5^\circ\), and translation range \(b = 0.5\) m indoor and \(0.8\) m outdoor. The inlier thresholds are \(I = 150\) indoor and \(300\) outdoor. On the Stairs scene, Normal or Random perturbations outperform Uniform, and \(k_2 = 100\)–\(150\) balances recall and runtime [2603.29185].

This stage differentiates SplatHLoc from both classical HLoc and pre-rendered view augmentation. The rendered candidates are query-adaptive rather than fixed. That avoids the storage and search overhead associated with augmenting the database with large numbers of pre-rendered keyframes, while directly addressing large viewpoint gaps.

## 4. Hybrid coarse-to-fine matching and pose recovery

A central design observation in SplatHLoc is that Gaussian-rendered features and image-extracted features have different strengths. Rendered features are stronger for coarse, patch-level alignment because they encode multi-view information and avoid re-extracting descriptors from rendered RGB, whereas image-extracted features from a semi-dense or dense matcher are stronger for fine, pixel-accurate alignment. The method therefore uses a hybrid matcher rather than a single modality throughout [2603.29185].

In the coarse stage, the query encoder produces \(F_t\) at reduced resolution \(C \times H/8 \times W/8\), and the selected real or virtual reference view provides a rendered feature map \(F_r^{high}\) on the same grid. Similarity is computed as
\[
S_c = \frac{1}{\tau} \langle F_t, F_r^{high} \rangle,
\]
followed by directional softmaxes
\[
P_{q\to r} = \mathrm{softmaxrow}(S_c), \qquad
P_{r\to q} = \mathrm{softmaxcol}(S_c),
\]
with mutual-nearest-neighbor filtering and threshold \(\theta\). In the fine stage, JamMa extracts semi-dense fine features from the query image \(I_q\) and the rendered RGB image \(I_{rgb}\) at resolution \(C^f \times (H/2) \times (W/2)\). For each coarse match, SplatHLoc crops local \(W \times W\) windows, computes local correlations, and applies JamMa’s decoder with MNN and sub-pixel refinement to obtain refined 2D–2D correspondences \(C_{q,r}^f\) [2603.29185].

Pose recovery lifts the 2D–2D matches to 2D–3D using rendered depth:
\[
X_r = T \left[ D_r(x_r) K^{-1} [x_r^\top\ 1]^\top \right].
\]
An initial pose is then estimated with PoseLib EPnP in RANSAC, followed by robust nonlinear refinement on inliers:
\[
\min_{R,t} \sum_j \rho\!\left(\|x_{q,j} - \pi(K,[R|t],X_j)\|^2\right).
\]
SplatHLoc iteratively re-renders from the current estimate, repeats hybrid matching and PnP, and runs \(n=4\) iterations for indoor datasets and \(n=2\) for outdoor datasets, with early stopping if pose updates are small or inlier counts saturate [2603.29185].

The precursor SplatLoc uses a different local stage. Query SuperPoint descriptors \(\{x_i,f_i\}\) are matched directly to decoded 3D Gaussian descriptors \(\{g_j\}\), optionally with mutual consistency or a ratio test, and pose is estimated with RANSAC+PnP using the weighted reprojection objective
\[
\min_{R,t} \sum_k w_k \left\| \pi(K(RX_k+t)) - x_k \right\|^2.
\]
That formulation is closer to classical hierarchical 2D–3D localization, whereas the 2026 framework inserts a rendered-reference 2D–2D stage before lifting matches to 3D [2409.14067].

## 5. Training protocol, efficiency, and empirical performance

SplatHLoc trains its FGS map from training images by first building an SfM model to initialize 3D Gaussians and then optimizing the FGS representation for \(30\)k steps with learning rate \(10^{-3}\), SuperPoint features with \(C=256\), rendered feature channels \(C'=64\), and a \(3\times3\) convolutional decoder. The implementation follows 3DGS-style splat learning in `gsplat`, and sky or dynamic regions are masked for Cambridge [2603.29185].

The efficiency claims are quantitative. On Chess, the reported map size is \(353\) MB for SplatHLoc versus \(904\) MB for STDLoc; mapping time is approximately \(46\) min versus approximately \(146\) min; and peak GPU memory is approximately \(4\) GB versus approximately \(12\) GB. On 7-Scenes, with both methods using four refinement rounds, SplatHLoc’s iterative refinement is nearly \(2\times\) faster than STDLoc because it renders low-dimensional features and performs fine matching at half resolution. Initialization time is reported as comparable, and SplatHLoc avoids training scene-specific detectors or sampling Gaussian spheres [2603.29185].

The reported rendering fidelity is dataset dependent but operationally sufficient for retrieval and matching. Indoor PSNR is approximately \(20\)–\(27\) dB; outdoor PSNR is approximately \(12\)–\(15\) dB. The paper explicitly notes that this is sufficient for retrieval and matching despite challenging outdoor illumination [2603.29185].

Across standard benchmarks, SplatHLoc reports the following main results. On 7-Scenes, HLoc/SP+SG achieves \(3.31/1.08\) cm/deg, SplatHLoc\(_{init}\) achieves \(2.36/0.64\), RAPref reports \(0.61/0.20\), LoGS/STDLoc report \(0.76/0.24\), and SplatHLoc reaches \(0.55/0.17\), which is the best overall average. Per-scene bests include \(0.28/0.09\) on Chess, \(0.29/0.18\) on Heads, and \(1.03/0.30\) on Stairs. On 12-Scenes, SplatHLoc reports \(0.3/0.14\) with \(R@[2\ \mathrm{cm},2^\circ] = 97.3\%\); ACE+GS-CPR reports \(0.5/0.21\) with \(98.7\%\), and DSAC* reports \(0.5/0.25\) with \(96.7\%\). On Cambridge Landmarks, SplatHLoc reports average \(9/0.13\) cm/deg, improving over LoGS at \(10/0.20\) and STDLoc at \(10/0.14\), with per-scene values of Court \(14/0.07\), College \(17/0.21\), Hospital \(8/0.15\), Shop \(3/0.12\), and Church \(4/0.12\) [2603.29185].

The ablation evidence isolates the two core contributions. On Stairs, a baseline using MixVPR + SuperPoint + LightGlue yields \(1.82/0.49\) and \(R@[5\mathrm{cm},5^\circ]=75.5\). Adding adaptive retrieval changes this to \(1.57/0.45\) and \(80.5\) \((+5.0\ \mathrm{pp})\). Hybrid matching alone gives \(1.14/0.33\) and \(84.0\). Combining both yields \(1.03/0.30\) and \(91.9\), a \(+16.4\ \mathrm{pp}\) improvement over the baseline. In the matching ablation, the FGS-only matcher obtains \(R@[2\mathrm{cm},2^\circ]=91.46\) and \(0.65/0.22\), while replacing only the fine stage with JamMa improves this to \(93.84\) and \(0.55/0.17\); replacing the fine stage with ELoFTR gives \(93.55\) and \(0.56/0.18\) [2603.29185].

## 6. Precursor mechanisms, limitations, and research directions

The term SplatHLoc is also useful for understanding SplatLoc as a precursor architecture. SplatLoc builds a 3DGS map for both rendering and localization, trains an unbiased scene-specific descriptor decoder, selects a small subset of salient landmarks, and localizes by matching 2D image descriptors to 3D descriptors on splats followed by PnP+RANSAC. Its landmark-selection score is
\[
H(p) = 2 \cdot Sig(p) + \min(2, Gen(p)) + Geo(p),
\]
where \(Sig(p)=a\) is the learned landmark probability, \(Gen(p)\) is a max viewing-baseline angle across training views, and \(Geo(p)\) is a geometry-consistency term derived from multi-view distances to observed surface points. Selection uses a greedy, saliency-aware farthest-point-like algorithm to produce a spatially dispersed set of high-quality landmarks. For key Gaussians, SplatLoc also freezes positions and applies the regularizer
\[
L_{reg} = \sum_{s,m \in P_k} |s - \delta \cdot (1-m)|,
\]
which limits anisotropy and center drift. Empirically, this reduces median pose error by about \(1.57\) cm and \(0.32^\circ\) on selected Replica scenes [2409.14067].

SplatLoc’s efficiency and rendering results explain why it serves as a conceptual antecedent. On 12-Scenes “manolis,” it reports \(25\) minutes training, a \(112\) MB model, and \(498\) FPS rendering at \(640 \times 480\), whereas PNeRFLoc reports \(1\) hour, \(788\) MB, and \(0.23\) FPS. On Replica novel-view rendering, average PSNR/SSIM/LPIPS across eight scenes are \(30.14/0.9259/0.0810\) for SplatLoc versus \(25.84/0.8515/0.2440\) for PNeRFLoc. For localization, SplatLoc achieves best or comparable results in \(11/12\) scenes of 12-Scenes with \(\leq 1.6\) cm and \(\leq 0.6^\circ\) median errors, and on Replica it outperforms PNeRFLoc scene by scene, for example \(0.53/0.10\) versus \(1.00/0.21\) on Room0 and \(1.30/0.22\) versus \(2.39/0.30\) on Office3 [2409.14067].

The limitations of the two systems are partly shared and partly distinct. SplatLoc requires depth or a sparse point cloud to initialize splats and does not handle purely monocular reconstruction without priors; the authors suggest monocular depth such as DepthAnything as future support. Large outdoor scenes challenge memory and scale because they require many splats, and a hierarchical splat representation is suggested as a remedy. As with most feature-based pipelines, performance can degrade under extreme lighting changes, textureless regions, heavy dynamics, or severe occlusions, and localization depends on retrieval quality and descriptor distinctiveness. In SplatHLoc specifically, sparsely observed regions can produce rendering artifacts such as floaters or misfit geometry, repetitive structures can still induce incorrect alignments, and reduced training coverage lowers rendering fidelity, although nearest-view synthesis partially compensates for this in Cambridge [2409.14067][2603.29185].

The future directions identified for SplatHLoc extend the splat-based hierarchical program rather than departing from it. Proposed directions include uncertainty-aware matching and splat covariances for weighting coarse matches, joint learning of features and poses by integrating the refinement loop into training, multi-scale or hierarchical splats, improved Gaussian initialization via large-scale 3D reconstruction foundation models, and block-wise partitioning for very large maps. Taken together with the earlier SplatLoc formulation, these directions suggest a broader research trajectory: replacing the sparse, static 3D point map in hierarchical localization with a compact, renderable, feature-aware Gaussian scene model that can support retrieval, correspondence generation, pose recovery, and real-time rendering within a single representation [2603.29185].

Source: https://www.emergentmind.com/topics/splathloc