This repo provides for the implementation of the ECCV'22 paper:
Sim-to-Real 6D Object Pose Estimation via Iterative Self-training for Robotic Bin Picking arXiv
- Ubuntu 18.04, CUDA 10.2, Python >= 3.6
- kaolin == 0.1.0
- opencv-python == 4.5.4.58
Compile the knn module:
cd lib/knn
python setup.py install --user
Compile the ransac voting layer:
cd lib/ransac_voting
python setup.py install --user
Install kaolin
git clone https://github.com/NVIDIAGameWorks/kaolin.git
cd kaolin
git checkout v0.1
python setup.py develop
Download our processed ROBI dataset from here and put them into 'SelfTraining-6D/data'
Following object-posenet to train an object pose estimation model on our provided virtual data. Put the virtual model into 'SelfTraining-6D/virtual_models'. To skip this step, you can download our provided virtual model from here.
self_training.py is the main file for sim-to-real self-training.
Example:
python self_training.py --dataset zigzag --nepoch 30 --iter 10
The intermediate data with pseudo labels will be stored into 'SelfTraining-6D/data'. The trained model will be stored into 'SelfTraining-6D/real_models'
Example:
python evaluate.py --obj_name zigzag --testing_mode st --testing_iter 5
If you find this repo helpful, please consider citing:
@InProceedings{chen_2022_sim,
title = {Sim-to-Real 6D Object Pose Estimation via Iterative Self-training for Robotic Bin Picking},
author = {Chen, Kai and Cao, Rui and James, Stephen and Li, Yichuan and Liu, Yun-Hui and Abbeel, Pieter and Dou, Qi},
booktitle = {European Conference on Computer Vision (ECCV)},
month = {October},
year = {2022}
}
Any questions, please feel free to contact Kai Chen (kaichen@cse.cuhk.edu.hk).