Home

Awesome

PIZZA

Pytorch implementation of "PIZZA: A Powerful Image-only Zero-Shot Zero-CAD Approach to 6 DoF Tracking" paper

Van Nguyen Nguyen*, Yuming Du*, Yang Xiao, Michaël Ramamonjisoa and Vincent Lepetit

Check out our paper for more details!

If our project is helpful for your research, please consider citing :

@inproceedings{nguyen2022pizza,
  title={PIZZA: A Powerful Image-only Zero-Shot Zero-CAD Approach to 6 DoF Tracking},
  author={Nguyen, Van Nguyen and Du, Yuming and Xiao, Yang and Ramamonjisoa, Michael and Lepetit, Vincent},
  journal={{International Conference on 3D Vision (3DV)}},
  year={2022}
}

Installation :man_mechanic:

We recommend creating a new Anaconda environment to use pizza. Use the following commands to setup a new environment:

conda env create -f environment.yml
conda activate pizza
pip install mmcv-full==1.3.8 -f https://download.openmmlab.com/mmcv/dist/cu102/1.7.0/index.html
# Assuming that you are in the root folder of "pizza"
cd mmsegmentation
pip install -e .  # or "python setup.py develop"

# Optional: If you don't have initial boxes
cd mmdetection
pip install -r requirements/build.txt
pip install -v -e .

2D object tracking in the wild with 1st Place Solution for the UVO Challenge

Note: We track objects not seen during the training with 1st Place Solution for the UVO Challenge. This implementation is slightly modified comparing to the original repo to make it easy to run on different dataset of BOP challenge:

media/seg_pipeline.png

  1. Download pretrained-weights:
export WEIGHT_ROOT=$YOUR_WEIGHT_ROOT
# for example export WEIGHT_ROOT=/home/nguyen/Documents/results/UVO
bash ./scripts/download_uvo_weights.sh

Optional: You can download with attached gdrive links above manually.

  1. Organize the dataset as in BOP challenge, for example with YCB-V dataset:
$INPUT_DATA (ycb-v folder)
    ├── video1 
        ├── rgb
        ├── ...
    ├── video2 
        ├── rgb
        ├── ...
    ├── ...
  1. Run detection and segmentation

Update file "input_dir", "output_dir" and "weight_dir" in configs/config_path.json

python -m lib.track.demo

media/demo_tracking.gif

3D pose regression

  1. Download testing datasets. We provide here the pre-generated synthetic images for ModelNet's experiments (checkout DeepIM paper for more details):
bash ./scripts/download_modelNet.sh
  1. To launch a training:
python -m train --exp_name modelNet
  1. To reproduce the quantitative results:
bash ./scripts/download_modelNet_checkpoint.sh

python -m test --exp_name modelNet --checkpoint $CHECKPOINT_PATH

Acknowledgement

The code is based on mmdetection, mmsegmentation, videowalk, RAFT and template-pose. Many thanks to them!