Skip to content
 
 

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages