We introduce SPFSplat, an efficient framework for 3D Gaussian splatting from sparse multi-view images, requiring no ground-truth poses during training and inference. It can simultaneously predict Gaussians and camera poses from unposed images in a canonical space through a single feed-forward step. During training, the estimated poses at target views are used to enforce a rendering loss against ground-truth images, while the estimated input-view poses enforce pixel-aligned Gaussian representations via a reprojection loss. This pose-free training paradigm and efficient one-step feed-forward inference makes SPFSplat well-suited for practical applications. Despite the absence of pose supervision, our self-supervised SPFSplat achieves state-of-the-art (SOTA) performance in novel view synthesis (NVS), even under significant viewpoint changes. Furthermore, it surpasses recent methods trained with geometry priors in relative pose estimation, demonstrating its effectiveness in both 3D scene reconstruction and camera pose learning.
SPFSplat consists of four main components: an encoder, a decoder, a pose head, and Gaussian prediction heads. These specialized heads are integrated into a shared ViT backbone, simultaneously predicting Gaussian centers, additional Gaussian parameters, and camera poses from unposed images in a canonical space, where the first input view serves as the reference. Only the context-only branch (above) is used during inference, while the context-with-target branch (below) is employed exclusively during training to estimate target poses, which are used for rendering loss supervision. Additionally, estimated context poses from both branches enforce alignment between Gaussian centers and their corresponding pixels via a reprojection loss. 3D Gaussians and poses are jointly optimized to improve geometric consistency and reconstruction quality.
@article{huang2025spfsplat,
title={No Pose at All: Self-Supervised Pose-Free 3D Gaussian Splatting from Sparse Views},
author={Huang, Ranran and Krystian, Mikolajczyk},
journal={},
year={2025}
}