Gorilla-Lab-SCUT / DualPoseNet

Code for "DualPoseNet: Category-level 6D Object Pose and Size EstimationUsing Dual Pose Network with Refined Learning of Pose Consistency"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DualPoseNet

Code for "DualPoseNet: Category-level 6D Object Pose and Size Estimation Using Dual Pose Network with Refined Learning of Pose Consistency", ICCV2021. [Paper][Supp][Arxiv]

Created by Jiehong Lin, Zewei Wei, Zhihao Li, Songcen Xu, Kui Jia, and Yuanqing Li.

image

Citation

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

 @InProceedings{Lin_2021_ICCV,
     author    = {Lin, Jiehong and Wei, Zewei and Li, Zhihao and Xu, Songcen and Jia, Kui and Li, Yuanqing},
     title     = {DualPoseNet: Category-Level 6D Object Pose and Size Estimation Using Dual Pose Network With Refined Learning of Pose Consistency},
     booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
     month     = {October},
     year      = {2021},
     pages     = {3560-3569}
 }

Requirements

This code has been tested with

  • python 3.6.5
  • tensorflow-gpu 1.11.0
  • CUDA 11.2

Downloads

  • Pre-trained models [link]
  • Segmentation predictions on CAMERA25 and REAL275 [link]
  • Pose Predicitons on CAMERA25 and REAL275 [link]

Evaluation

Evaluate the results of DualPoseNet reported in the paper:

python eval.py

Data Preparation

Download the data provided by NOCS (real_train, real_test, ground truths, and mesh models), and unzip them in the folder data/ as follows:

data
├── CAMERA
│   ├── train
│   └── val
├── Real
│   ├── train
│   └── test
├── gts
│   ├── val
│   └── real_test
└── obj_models
    ├── train
    ├── val
    ├── real_train
    └── real_test

Run the following scripts to prepare training instances:

cd provider
python training_data_prepare.py

Training

Command for training DualPoseNet:

python main.py --phase train --dataset REAL275

The configurations can be modified in utils/config.py.

Testing

Command for testing DualPoseNet without refined learning:

python main.py --phase test --dataset REAL275

Command for testing DualPoseNet with refined learning:

python main.py --phase test_refine_encoder --dataset REAL275

We also provider another faster way of refinement by directly finetuning the pose-sensitive features:

python main.py --phase test_refine_feature --dataset REAL275

The configurations can also be modified in utils/config.py.

Acknowledgements

Our implementation leverages the code from SCNN, NOCS and SPD.

License

Our code is released under MIT License (see LICENSE file for details).

Contact

lin.jiehong@mail.scut.edu.cn

kuijia@scut.edu.cn

About

Code for "DualPoseNet: Category-level 6D Object Pose and Size EstimationUsing Dual Pose Network with Refined Learning of Pose Consistency"

License:MIT License


Languages

Language:Python 100.0%