This work addresses the problem of 6-DoF pose estimation under heavy occlusion. We propose an end-to-end deep neural network model recovering object poses from depth measurements. The proposed model enforces pairwise consistency of 3D geometric features by applying spectral convolutions on a pairwise compatibility graph.
6D Object Pose Estimation with Pairwise Compatible Geometric Features
Muyuan Lin, Varun Murali, and Sertac Karaman
- Tested on Ubuntu 16.04, GeForce GTX 1080, NVIDIA-SMI 410.129
- Clone this repo:
git clone --recursive https://github.com/mit-aera/DeepPCGF
-
Install Python 3.7+, [PyTorch](http://pytorch.org and) 1.4 and other dependencies (e.g., torchvision).
- For Conda users, you can create a new Conda environment using
conda env create -f environment.yml
.
- For Conda users, you can create a new Conda environment using
-
Install MinkowskiEngine
(Make sure you follow installation instructions in the commit e2cfe490 of MinkowskiEngine)
git clone https://github.com/StanfordVL/MinkowskiEngine
cd MinkowskiEngine
git checkout e2cfe490ee5edb078e8fedd9766609daf2d5129a
conda activate pcgf
python setup.py install
- Download pretrained models, unzip the directory and move 'LineMOD' and 'OcclusionLineMOD' folders under '../checkpoints'.
-
Download preprocessed LineMOD dataset
-
Download Occlusion LineMOD Dataset
-
The two datasets are assumed to be placed under "../data/" by default.
conda activate pcgf
python train.py --name LineMOD \
--model pcgf \
--image_based true \
--dataset LineMOD \
--data_path ../data/Linemod_preprocessed \
--voxel_size 0.003 \
--geometric_check gcn \
--gpu_ids 0 \
--mu 100
Evaluation on LineMOD dataset:
conda activate pcgf
python test.py --name LineMOD \
--model pcgf \
--image_based true \
--dataset LineMOD \
--data_path ../data/Linemod_preprocessed \
--voxel_size 0.003 \
--geometric_check gcn \
--gpu_ids 0 \
--select_pts 50
Evaluation on Occlusion LineMOD dataset:
conda activate pcgf
python test.py --name OcclusionLineMOD \
--model pcgf \
--image_based true \
--dataset LineMODOcclusion \
--data_path ../data/Linemod_occlusion \
--voxel_size 0.003 \
--geometric_check gcn \
--gpu_ids 0 \
--select_pts 50
If you use this code for your research, please cite our paper.
@inproceedings{lin20216d,
title={6D Object Pose Estimation with Pairwise Compatible Geometric Features},
author={Lin, Muyuan and Murali, Varun and Karaman, Sertac},
booktitle={2021 IEEE International Conference on Robotics and Automation (ICRA)},
pages={10966--10973},
year={2021},
organization={IEEE}
}
This work was partly funded by Ferrovial S.A.