Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unibas-gravis/icp-proposal
Source code to the paper "A Closest Point Proposal for MCMC-based Probabilistic Surface Registration"
https://github.com/unibas-gravis/icp-proposal
Last synced: 3 months ago
JSON representation
Source code to the paper "A Closest Point Proposal for MCMC-based Probabilistic Surface Registration"
- Host: GitHub
- URL: https://github.com/unibas-gravis/icp-proposal
- Owner: unibas-gravis
- License: apache-2.0
- Created: 2019-07-01T14:11:12.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-09-24T12:05:30.000Z (about 3 years ago)
- Last Synced: 2024-07-04T02:20:24.576Z (4 months ago)
- Language: Scala
- Size: 13 MB
- Stars: 31
- Watchers: 8
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# A Closest Point Proposal for MCMC-based Probabilistic Surface Registration
This repository contains all the code to reproduce our results from our recent ECCV2020 publication:
- Dennis Madsen, Andreas Morel-Forster, Patrick Kahr, Dana Rahbani, Thomas Vetter and Marcel Lüthi ["A Closest Point Proposal for MCMC-based Probabilistic Surface Registration"](Pre-print https://arxiv.org/abs/1907.01414)[Video presentation @ ECCV2020](https://www.youtube.com/watch?v=ge4LYNAVB2c)
BibTex:
```bibtex
@inproceedings{madsen2020closest,
title={A closest point proposal for MCMC-based probabilistic surface registration},
author={Madsen, Dennis and Morel-Forster, Andreas and Kahr, Patrick and Rahbani, Dana and Vetter, Thomas and Lüthi, Marcel},
booktitle={European Conference on Computer Vision},
pages={281--296},
year={2020},
organization={Springer}
}
```Markov Chain Monte Carlo for shape registration with examples using [Scalismo](https://github.com/unibas-gravis/scalismo).
## Overview
## Femur experiments
The experiments are found under *apps/femur*. The repository already contains Gaussian Process Morphable Models (GPMMs) of the femur - approximated with 50 and 100 basis functions.
A synthetic target is also provided.
Without downloading the full test dataset from SMIR, the registration can be performed on the target mesh.- **IcpRegistration**: Perform a normal ICP registration.
- **IcpProposalRegistration**: Performs a probabilistic registration using *our* method described in the paper.
- **GreateGPmodel**: Create a new GPMM with a user defined number of basis functions.The log file for the target registration with 100.000 samples is avilable, the following scripts can be used for replay and visualisation:
- **ReplayFittingFromLog**: Replay a fitting from a log file
- **PosteriorVariabilityToMeshColor**: Create a color map on the MAP solution to visualise the registration uncertainty### Data preparation
The test dataset we use is the same as used in the [Statistical Shape Modelling course on futurelearn](https://www.futurelearn.com/courses/statistical-shape-modelling) and can be downloaded from SMIR:
[comment]: <> (Registration procedure from the SSM course )- Go to the [SMIR registraiton page](https://www.smir.ch/Account/Register).
- Fill in your details, and select **SSM.FUTURELEARN.COM** as a research unit.
- *This will send a request to an administrator to authorize your account creation. Please bare in mind that this might take **up to 24h**. You will be informed by Email once your account creation is authorized.*
- Follow the [instructions on Sicas Medical Image Repository (SMIR)](https://www.smir.ch/courses/FutureLearnSSM/2016) to download the required femur surfaces and corresponding landmarks.
- We only use the data from **Step 2** of the project
- Extract the folder under **data/femur/SMIR**, such that the mesh **0.stl** can be found under **data/femur/SMIR/step2/meshes**
- Align all the test meshes to the model by running the **apps/femur/AlignShapes** scriptTo compare the Markov-Chain random-walk to our ICP-proposal, run the script: **apps/femur/RunMHrandomInitComparson**. This script will start 5 fittings in parallel with different initial starting points for the femur GPMM.
To compare the standard ICP fitting to our ICP-proposal either with Euclidean average evaluator or Hausdorff evaluator, run the script: **apps/femur/StdIcpVsChainICPrandomInitComparsonAll**. This will perform registration on all the femurs from SMIR and do so 100 times for each mesh, each registration having a different initial starting point for the femur GPMM.
## BFM experiments
### Data preparation
Download the Basel Face Model (BFM) 2017 .
For the experiments we use the cropped model: **model2017-1_face12_nomouth.h5**, which is cropped to the face region.
Place the model such that it is located: **data/bfm/model2017-1_face12_nomouth.h5** (same place where our provided **bfm.json** landmark file is located).The test face scans are available here:
- **Download the 3D face scans & renderings of ten individuals (94 MB)**.
- Unpack the scans in the bfm/initial folder such that the .ply meshes are to be found under **data/bfm/initial/PublicMM1/03_scans_ply**.
- Then run the **apps/bfm/AlignShapes** script to scale and align all faces to the face model as well as creating partial target meshes.
- Then run the **apps/bfm/CreateGPModel** to create an analytically defined GPMM using the face template from the BFM.To run the face registration, run the script: **apps/bfm/BfmFitting**.
As with the femur, the face registration can be replayed and the posterior can be visualised with the similar scripts found under **apps/bfm/**.