Skip to content

(BMVC 2019) PyTorch implementation of Paper "Pose from Shape: Deep Pose Estimation for Arbitrary 3D Objects"

License

Notifications You must be signed in to change notification settings

tim885/PoseFromShape

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PoseFromShape

(BMVC 2019) PyTorch implementation of Paper "Pose from Shape: Deep Pose Estimation for Arbitrary 3D Objects" [PDF] [Project webpage]

teaser

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

@INPROCEEDINGS{Xiao2019PoseFromShape,
    author    = {Yang Xiao and Xuchong Qiu and Pierre{-}Alain Langlois and Mathieu Aubry and Renaud Marlet},
    title     = {Pose from Shape: Deep Pose Estimation for Arbitrary {3D} Objects},
    booktitle = {British Machine Vision Conference (BMVC)},
    year      = {2019}}

Table of Content

Installation

Dependencies

The code can be used in Linux system with the the following dependencies: Python 3.6, Pytorch 1.0.1, Python-Blender 2.77, meshlabserver

We recommend to utilize conda environment to install all dependencies and test the code.

## Download the repository
git clone 'https://github.com/YoungXIAO13/PoseFromShape'
cd PoseFromShape

## Create python env with relevant packages
conda create --name PoseFromShape --file auxiliary/spec-file.txt
source activate PoseFromShape

## Install blender as a python module
conda install auxiliary/python-blender-2.77-py36_0.tar.bz2

Datasets and Models

To download and prepare the datasets for training and testing (Pascal3D, ObjectNet3D, ShapeNetCore, SUN397, Pix3D, LineMod):

cd data
bash prepare_data.sh

To download the pretrained models (Pascal3D, ObjectNet3D, ShapeNetCore):

cd model
bash download_models.sh

Training

To train on the ObjectNet3D dataset with real images and coarse alignment:

cd run
bash train_ObjectNet3D.sh

To train on the Pascal3D dataset with real images and coarse alignment:

cd run
bash train_Pascal3D.sh

To train on the ShapeNetCore dataset with synthetic images and precise alignment:

cd run
bash train_ShapeNetCore.sh

Testing

While the network was trained on real or synthetic images, all the testing was done on real images.

ObjectNet3D

cd run
bash test_ObjectNet3D.sh

You should obtain the results in Table 1 in the paper (*indicates testing on the novel categories):

Method bed bookcase calculator cellphone computer door cabinet guitar iron knife microwave pen pot rifle shoe slipper stove toilet tub wheelchair Average
StarMap 73 78 91 57 82 - 84 73 3 18 94 13 56 4 - 12 87 71 51 60 56
StarMap* 37 69 19 52 73 - 78 61 2 9 88 12 51 0 - 11 82 41 49 14 42
Ours(MV) 82 90 95 65 93 97 89 75 52 32 95 54 82 45 67 46 95 82 67 66 73
Ours(MV)* 65 90 88 65 84 93 84 67 2 29 94 47 79 15 54 32 89 61 68 39 62

Pascal3D+

To test on the Pascal3D dataset with real images:

cd run
bash test_Pascal3D.sh

You should obtain the results in Table 2 in the paper (*indicates category-agnostic):

Method Accuracy Median Error
Keypoints and Viewpoints 80.75 13.6
Render for CNN 82.00 11.7
Mousavian 81.03 11.1
Grabner 83.92 10.9
Grabner* 81.33 11.5
StarMap* 81.67 12.8
Ours(MV)* 82.66 10.0

Pix3D

cd run
bash test_Pix3D.sh

You should obtain the results in Table 3 in the paper (Accuracy / MedErr):

Method Bed Chair Desk
Georgakis 50.8 / 28.6 31.2 / 57.3 34.9 / 51.6
Ours(MV) 59.8 / 20.0 52.4 / 26.6 56.6 / 26.6

About

(BMVC 2019) PyTorch implementation of Paper "Pose from Shape: Deep Pose Estimation for Arbitrary 3D Objects"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.4%
  • Shell 2.6%