Official code for Spyropose: SE(3) pyramids for object pose distribution estimation, ICCVW 2023.
Project page.
We recommend using uv for dependency management. In a project, add spyropose as a dependency, for example from a git repo as below
uv add REPO_URLSpyropose trains a model per object.
Store your training data in the BOP format in ./data/bop/DATASET
uv run -m spyropose.scripts.inspect_data \
--data.obj.dataset=DATASET \
--data.obj.obj=OBJECT_ID_OR_NAMEIf the data looks fine, you can train a spyropose model with the below command. This would use scenes with index 0 through 18 for training and scene 19 for validation.
uv run -m spyropose.scripts.train \
--obj.dataset=DATASET \
--obj.obj=OBJECT_ID_OR_NAME \
--data_train.scene_id_range="[0,19]" \
--data_valid.scene_id_range="[19,20]"A script to train a simple detector is included and can be trained with a similar script:
uv run -m spyropose.detection.train \
--obj.dataset=DATASET \
--obj.obj=OBJECT_ID_OR_NAME \
--data_train.scene_id_range="[0,19]" \
--data_valid.scene_id_range="[19,20]"See ./src/spyropose/scripts/infer.py.
Can be run like so:
uv run -m spyropose.scripts.infer \
./data/spyropose_detector/2kewoepx ./data/spyropose/dwq4lb0a 19 0Check out initial commit.
@inproceedings{haugaard2023spyropose,
title={Spyropose: Se (3) pyramids for object pose distribution estimation},
author={Haugaard, Rasmus Laurvig and Hagelskj{\ae}r, Frederik and Iversen, Thorbj{\o}rn Mosekj{\ae}r},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
pages={2082--2091},
year={2023}
}