SplatPose: Geometry-Aware 6-DoF Pose Estimation from Single RGB Image via 3D Gaussian Splatting (paper)
This repository contains a PyTorch implementation for the paper: SplatPose: Geometry-Aware 6-DoF Pose Estimation from Single RGB Image via 3D Gaussian Splatting.
[2025/6] Paper is accepted on IROS 2025.
Install environment:
conda env create --file environment.yml
conda activate gaussian_splatting
For Tanks&Temples we use the dataset format of NSVF:
The Ignatius object inside the Tanks&Temples dataset contain a malformed intrinsics.txt, here you can find the same file correctly formatted, if you replace the original with this should work without issues.
For Mip-NeRF 360°, it is necessary to download the part 1 of the dataset at:
You can place the datasets where is more convenient to you, but you need to change the location inside tools/launch_all_mip_training.sh and tools/launch_all_tanks_and_temple_training.sh.
The training script is located in train.py. To train a single 3DGS model:
python train.py -s [dataset location]
We provide two scripts that it is necessary only to edit with the correct paths to the dataset:
sh tools/launch_all_mip_training.sh
sh tools/launch_all_tanks_and_temple_training.sh
The training and testing script for the pose estimation is located in pretrain_eval_attention.py, for training and testing on all the objects from Mip-NeRF 360:
python3 pretrain_eval_attention.py --exp_path ./output/ --out_path results.json --data_type mip360
For the Tanks Temple objects
python3 pretrain_eval_attention.py --exp_path ./output/ --out_path results.json --data_type tankstemple
python3 eval_pipeline.py \
--input_json <输入相机位姿JSON文件路径> \
--intermediate_dir <中间数据存储目录> \
--images_path <图像数据目录> \
--model_path <GS模型路径>