Skip to content

Commit

Permalink
model-based registration slide
Browse files Browse the repository at this point in the history
  • Loading branch information
bellonet committed Sep 22, 2024
1 parent e05c03b commit 3d29788
Show file tree
Hide file tree
Showing 6 changed files with 174 additions and 103 deletions.
38 changes: 34 additions & 4 deletions content/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,36 @@ SIFT can be robust and thus can be used for multimodal registration.

---

## Example Pipeline: Model Based Feature-Based Registration

{{< notes >}}
In cases where many images need to be registered to the same space and pre-known features can be identified, a model-based registration pipeline can be applied.
When the relationship of the distances between the features are pre-known, similar graph-based methods can be used.
Deap learning based approaches can perform well on those tasks with minimal training data.
{{</ notes >}}

{{< horizontal >}}

1. **Predefined Feature Detection**: e.g. pose estimation.
- **Manual selection of features**
- **Annotation of training data**
- **Model selection, training, and prediction**
2. **Estimating and Applying Transformations**: All images are transformed in space to match a template image.
- **Transformation Estimation**
- Compute transformation matrix (e.g. affine) using matched keypoints
- **Warping**
- Apply transformation to align images

<img src="img/wing_landmarks.png" alt="wing landmarks model"/><img src="img/wing_registration.png" alt="wing landmarks model"/>

{{</ horizontal >}}

{{< notes >}}
DeepLabCut is a tracking tool that is open-source and offer great models that can be used for pose estimation and predefined feature detection.
{{</ notes >}}

---

## Image Transformation Types

![](img/transformations.png)
Expand Down Expand Up @@ -243,24 +273,24 @@ Overview of common tools, libraries, and plugins for image registration.
- **Fiji/ImageJ**
- Popular plugins: **Feature Extraction**, **Warpy** (QPath), **TrakEM2**, **Register Virtual Stack Slices**
- **Python Libraries**
- **OpenCV** (C++), **SimpleITK**, **scikit-image**
- **OpenCV** (C++), **scikit-image**
- **Elastix**
- Powerful tool for rigid and non-rigid registration
- ITKElastix (C++) is a powerful open-source tool (standalone or as a python package) for intensity-based registration.
- **DeepLabCut**
- Open-source deep learning based pose estimation and model based feature detection (and tracking)
- **MATLAB**
- Image Processing Toolbox (functions like `imregister`, `cpselect`)

---

## Hands-On Session


{{< notes >}}
We will work through practical examples using Fiji/ImageJ and Python.
{{</ notes >}}

---


## Thank You!

#### Thanks for participating. Please feel free to reach out with any questions.
Expand Down
12 changes: 10 additions & 2 deletions static/img/flowcahrt.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ digraph ImageRegistrationGuideline {
// Paths from similarity_check
intensity_based [label="Use Intensity-Based Registration\n(e.g., Cross-Correlation)"];
mutual_information [label="Use Histogram-Based Registration\n(e.g., Mutual Information)"];
feature_based [label="Use Feature-Based Methods\n(e.g., SIFT, ORB, SURF)"];
feature_based [label="Use Feature-Based Methods"];
retake_images [label="Retake Images with Extrinsic Landmarks\nor Improved Features", shape=ellipse, style=filled, fillcolor=lightgrey];

// Transformation Type Decision
Expand Down Expand Up @@ -65,8 +65,16 @@ digraph ImageRegistrationGuideline {
// Linking Registration Methods to Transformation Type
intensity_based -> transformation_type;
mutual_information -> transformation_type;
feature_based -> transformation_type;

// Split Feature-Based Methods
feature_based -> classic_feature_based [label="Image Features"];
classic_feature_based [label="Classic Feature-Based Methods\n(e.g., SIFT, ORB, SURF)"];
classic_feature_based -> transformation_type;

feature_based -> pose_estimation_based [label="Model Based"];
pose_estimation_based [label="Model-Based Feature Detection\n(e.g., Pose Estimation via DeepLabCut)"];
pose_estimation_based -> transformation_type;

// Decision on Transformation Type
transformation_type -> rigid_transformation [label="Global Deformations"];

Expand Down
Binary file modified static/img/flowchart.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 3d29788

Please sign in to comment.