Awesome
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.
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