Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PicoPose: Progressive Pixel-to-Pixel Correspondence Learning for Novel Object Pose Estimation

overview

PicoPose is a novel three-stage framework for zero-shot 6D pose estimation of unseen objects from RGB images. It first matches RGB features with rendered templates for coarse correspondences, then smooths the correspondences by globally regressing a 2D affine transformation, and finally learns correspondence offsets within local regions to achieve fine-grained correspondences.

Environment

conda create -n picopose python=3.9
conda activate picopose
python -m pip install -r requirements.txt

Data Preparation

Click to expand

Data Structure

Our data structure in data folder is constructed as follows:

data
├── MegaPose-Training-Data
    ├── MegaPose-GSO
        ├──google_scanned_objects
        └──train_pbr_web
    ├── MegaPose-ShapeNetCore
        ├──shapenetcorev2
        └──train_pbr_web
    ├── MegaPose-Templates  
        ├──GSO
        └──ShapeNetCore
├── BOP_Datasets   # https://bop.felk.cvut.cz/datasets/
    ├──tudl
    ├──lmo
    ├──ycbv
    ├──icbin
    ├──hb
    ├──itodd
    ├──tless
    └──templates
└── bop23_default_detections_for_task4
    └──cnos-fastsam

Data Download

The training datasets you can download the rendered images of c provided by BOP official in the respective MegaPose-Training-Data/MegaPose-GSO/train_pbr_web and MegaPose-Training-Data/MegaPose-ShapeNetCore/train_pbr_web folders.

The pre-processed object models of the two datasets provided by MegePose can be downloaded to the MegaPose-Training-Data/MegaPose-GSO/google_scanned_objects and MegaPose-Training-Data/MegaPose-ShapeNetCore/shapenetcorev2 folders respectively.

To evaluate on BOP datasets, you can download the test data and object CAD models for the seven core datasets from the official BOP website. We use the CNOS detection results on seven datasets officially provided by BOP.

Rendering Templates

Before starting training and testing, please render the corresponding templates in advance. We mainly render the templates based on the code of GigaPose, and the entire rendering environment is on the docker provided by MegaPose.

# Installing extra environments on megapose docker
bash rendering/inv_env.sh

# Rendering shapenetv2
python rendering/scripts/render_shapenet_templates.py 

# Rendering gso 
python rendering/scripts/render_gso_templates.py 

# Rendering bop
python rendering/scripts/render_bop_templates.py 

Training on MegaPose Dataset

To train PicoPose, please prepare the training data and run the folowing command:

python run_train.py --model picopose --config config/base.yaml --version_id 0 

Testing on BOP Dataset

To evaluate the model on BOP datasets, please run the following command:

python run_test.py --gpus 0 --model picopose --config config/base.yaml --dataset $DATASET --version_id 0 

The string "DATASET" could be set as lmo, icbin, itodd, hb, tless, tudl or ycbv. We also offer downloadable rendered templates [link].

One could also directly specify the checkpoint path for evaluation:

python run_test.py --gpus 0 --model picopose --config config/base.yaml --dataset $DATASET --version_id 0 --checkpoint_path $CHECKPOINT_PATH

The string "CHECKPOINT_PATH" is the path to the checkpoint saved during training. Our trained model is provided here.

Citation

If you find our work useful in your research, please consider citing:

@article{liu2025picopose,
title={PicoPose: Progressive Pixel-to-Pixel Correspondence Learning for Novel Object Pose Estimation},
author={Liu, Lihua and Lin, Jiehong and Liu, Zhenxin and Jia, Kui},
journal={arXiv preprint arXiv:2504.02617},
year={2025}
}

Acknowledgements

About

[CoRL 2025] Code for "PicoPose: Progressive Pixel-to-Pixel Correspondence Learning for Novel Object Pose Estimation".

Resources

Stars

14 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages