res_aligner_net

[Medical Image Analysis] Residual Aligner-based Network (RAN): Motion-Aware Structure for Coarse-to-fine Discontinuous Deformable Registration

https://github.com/jianqingzheng/res_aligner_net

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, sciencedirect.com, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary

Keywords

coarse-to-fine-registration deep-learning deformable-registration discontinuous-registration image-registration medical-image-analysis progressive-learning progressive-registration tensorflow-keras
Last synced: 9 months ago · JSON representation ·

Repository

[Medical Image Analysis] Residual Aligner-based Network (RAN): Motion-Aware Structure for Coarse-to-fine Discontinuous Deformable Registration

Basic Info
Statistics
  • Stars: 33
  • Watchers: 1
  • Forks: 1
  • Open Issues: 1
  • Releases: 0
Topics
coarse-to-fine-registration deep-learning deformable-registration discontinuous-registration image-registration medical-image-analysis progressive-learning progressive-registration tensorflow-keras
Created almost 4 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

Residual Aligner-based Network (RAN)
for Coarse-to-fine Discontinuous Deformable Registration

Website [![DOI](https://img.shields.io/badge/DOI-j.media.2023.103038-darkyellow)](https://doi.org/10.1016/j.media.2023.103038) [![arXiv](https://img.shields.io/badge/arXiv-2203.04290-b31b1b.svg)](https://arxiv.org/abs/2203.04290) [![Explore RAN in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/jianqingzheng/res_aligner_net/blob/main/res_aligner_net.ipynb) User Manual Website

Code for Medical Image Analysis paper Residual Aligner-based Network (RAN): Motion-Separable Structure for Coarse-to-fine Discontinuous Deformable Image Registration

This repo provides an implementation of the training and inference pipeline of RAN based on TensorFlow and Keras.


Contents


0. Brief Intro

header The research in this paper focuses on solving the problem of multi-organ discontinuous deformation alignment. An innovative quantitative metric, Motion Separability, is proposed in the paper. This metric is designed to measure the ability of deep learning networks to predict organ discontinuous deformations. Based on this metric, a novel network structure skeleton, the Motion-Separable structure, is designed. In addition, we introduce a Motion disentanglement module to help the network distinguish and process complex motion patterns among different organs.

To verify the validity of this quantitative metric as well as the accuracy and efficiency of our method, a series of unsupervised alignment experiments are conducted in the paper. These experiments cover nine major organs of the abdomen and lung images. The experimental results show that the method in the paper is not only able to effectively identify and process the complex motions among the organs, but also improves the accuracy and efficiency of the alignment.

The main contributions include:

  • Discontinuous alignment network: this is the first quantitative study targeting discontinuous deformation alignment based on a deep learning network.
  • Theoretical analysis: this paper quantifies and defines the maximum range of capturable motion and the upper bound of motion separability in neural networks, providing a theoretical analysis of the upper bound of motion separability. This helps us to understand the range of motion that can be recognised by the network and guides the optimisation of the network structure and parameter settings.
  • Motion separable backbone structure: based on the theoretical analysis in this paper, a novel multi-scale skeleton structure is designed in the paper. This structure enables the network to efficiently predict motion patterns with larger separable upper bounds by using optimized dilated convolution on high-resolution feature maps, while maintaining a capturable motion range with low computational complexity.
  • Motion decoupling and refinement module: in addition, we propose a Residual Aligner module (RAM) that utilizes confidence levels and mechanisms based on semantic and contextual information to differentiate predicted displacements in different organs or regions. This means that our method can more accurately deal with specific movements in each region.
  • Accurate and Efficient Registration Results: The above-proposed components constitute a novel residual alignment network (RAN) that performs efficient, coarse-to-fine, unsupervised alignment of separable motions on publicly available lung and abdominal CT data, achieving higher accuracy and lower computational cost.


1. Installation

Clone code from Github repo: https://github.com/jianqingzheng/resalignernet.git shell git clone https://github.com/jianqingzheng/res_aligner_net.git cd res_aligner_net/

install packages

OS PyPI pyversions TensorFlow Numpy

shell pip install tensorflow==2.3.1 pip install numpy==1.19.5 pip install pyquaternion==0.9.9

Other versions of the packages could also be applicable


2. Usage

2.1. Setup (for unpaired data)

[$DOWNLOAD_DIR]/res_aligner_net/ ├── data/[$data_name]/dataset | | # experimental dataset for training and testing (.nii|.nii.gz files) | ├── train/ | | ├── images/ | | | ├── 0001.nii.gz | | | └── ... | | └── labels/ | | ├── 0001.nii.gz | | └── ... | └── test/ | ├── images/ | | ├── 0001.nii.gz | | └── ... | └── labels/ | ├── 0001.nii.gz | └── ... ├── models/[$data_name]/ | └── [$data_name]-[$model_name]/ | | # the files of model parameters (.tf.index and .tf.data-000000-of-00001 files) | ├── model_1_[$model_num].tf.index | ├── model_1_[$model_num].tf.data-000000-of-00001 | └── ... └── ...

  1. Run python external/deepreg/abd_data.py to download and setup abdominal CT,
    or Run python external/deepreg/lung_data.py to download and setup lung CT
  2. Run python main_preprocess.py --proc_type train --data_name $data_name
  3. Run python main_preprocess.py --proc_type test --data_name $data_name
| Argument | Description | | --------------------- | ----------------------------------------------| | `--data_name` | The data folder name |

* Example for the setup (unpairedctabdomen):

  1. Run shell python external/deepreg/abd_data.py
  2. Run shell python main_preprocess.py --proc_type train --data_name unpaired_ct_abdomen python main_preprocess.py --proc_type test --data_name unpaired_ct_abdomen

The data used for experiments in this paper are publicly available from abdomen CT and lung CT.

2.2. Training (>1 week)

  1. Run python main_train.py --model_name $model_name --data_name $data_name --max_epochs $max_epochs
  2. Check the saved model in res_aligner_net/models/$data_name/$data_name-$model_name/
| Argument | Description | | --------------------- | ----------------------------------------------| | `--data_name` | The data folder name | | `--model_name` | The used model | | `--max_epochs` | The max epoch number for training |

max_epochs==0 for training from scratch

* Example for training (default):

  1. Run shell python main_train.py --model_name RAN4 --data_name unpaired_ct_abdomen --max_epochs 0
  2. Check the saved model in res_aligner_net/models/unpaired_ct_abdomen/unpaired_ct_abdomen-RAN4/

2.3. Inference

  1. Run python main_infer.py --model_name $model_name --data_name $data_name
  2. Check the results in res_aligner_net/data/$data_name/dataset/test_proc/warped_img
| Argument | Description | | --------------------- | ----------------------------------------------| | `--data_name` | The data folder name | | `--model_name` | The used network structure | | `--model_id` | The index of the model |

model_id==1 for a model after synthetic training, model_id==2 for a model after real training, model_id==3 for the model trained according to the paper's settings.

* Example for inference (default):

  1. Run shell python main_infer.py --model_name RAN4 --data_name unpaired_ct_abdomen
  2. Check the results in res_aligner_net/data/unpaired_ct_abdomen/dataset/test_proc/warped_img

3. Demo and Tutorial

A demo can be found in the provided notebook.

Alternatively, it can be easily run via Explore RAN in Colab.

Additionally, a detailed tutorial can be found in the provided User Manual (powered by Zread.ai).


4. Citing this work

Any publication that discloses findings arising from using this source code or the network model should cite: - Zheng, J. Q., Wang, Z., Huang, B., Lim, N. H., & Papież, B. W. "Residual Aligner-based Network (RAN): Motion-separable structure for coarse-to-fine discontinuous deformable registration." Medical Image Analysis, 2024, 91: 103038. bibtex @article{ZHENG2024103038, title = {Residual Aligner-based Network (RAN): Motion-separable structure for coarse-to-fine discontinuous deformable registration}, journal = {Medical Image Analysis}, volume = {91}, pages = {103038}, year = {2024}, issn = {1361-8415}, doi = {https://doi.org/10.1016/j.media.2023.103038}, url = {https://www.sciencedirect.com/science/article/pii/S1361841523002980}, author = {Jian-Qing Zheng and Ziyang Wang and Baoru Huang and Ngee Han Lim and Bartłomiej W. Papież}, keywords = {Discontinuous deformable registration, Motion-separable structure, Motion disentanglement, Coarse-to-fine registration}, }

Owner

  • Name: Jian-Qing Zheng
  • Login: jianqingzheng
  • Kind: user

Citation (citation.bib)

@article{ZHENG2024103038,
title = {Residual Aligner-based Network (RAN): Motion-separable structure for coarse-to-fine discontinuous deformable registration},
journal = {Medical Image Analysis},
volume = {91},
pages = {103038},
year = {2024},
issn = {1361-8415},
doi = {https://doi.org/10.1016/j.media.2023.103038},
url = {https://www.sciencedirect.com/science/article/pii/S1361841523002980},
author = {Jian-Qing Zheng and Ziyang Wang and Baoru Huang and Ngee Han Lim and Bartłomiej W. Papież},
keywords = {Discontinuous deformable registration, Motion-separable structure, Motion disentanglement, Coarse-to-fine registration},
abstract = {Deformable image registration, the estimation of the spatial transformation between different images, is an important task in medical imaging. Deep learning techniques have been shown to perform 3D image registration efficiently. However, current registration strategies often only focus on the deformation smoothness, which leads to the ignorance of complicated motion patterns (e.g., separate or sliding motions), especially for the intersection of organs. Thus, the performance when dealing with the discontinuous motions of multiple nearby objects is limited, causing undesired predictive outcomes in clinical usage, such as misidentification and mislocalization of lesions or other abnormalities. Consequently, we proposed a novel registration method to address this issue: a new Motion Separable backbone is exploited to capture the separate motion, with a theoretical analysis of the upper bound of the motions’ discontinuity provided. In addition, a novel Residual Aligner module was used to disentangle and refine the predicted motions across the multiple neighboring objects/organs. We evaluate our method, Residual Aligner-based Network (RAN), on abdominal Computed Tomography (CT) scans and it has shown to achieve one of the most accurate unsupervised inter-subject registration for the 9 organs, with the highest-ranked registration of the veins (Dice Similarity Coefficient (%)/Average surface distance (mm): 62%/4.9mm for the vena cava and 34%/7.9mm for the portal and splenic vein), with a smaller model structure and less computation compared to state-of-the-art methods. Furthermore, when applied to lung CT, the RAN achieves comparable results to the best-ranked networks (94%/3.0mm), also with fewer parameters and less computation.}
}

GitHub Events

Total
  • Issues event: 8
  • Watch event: 8
  • Issue comment event: 10
  • Push event: 8
  • Pull request event: 1
  • Fork event: 1
Last Year
  • Issues event: 8
  • Watch event: 8
  • Issue comment event: 10
  • Push event: 8
  • Pull request event: 1
  • Fork event: 1

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 4
  • Total pull requests: 1
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 2 hours
  • Total issue authors: 4
  • Total pull request authors: 1
  • Average comments per issue: 2.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 1
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 2 hours
  • Issue authors: 4
  • Pull request authors: 1
  • Average comments per issue: 2.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • yuanpengpeng (1)
  • Sins-code (1)
  • wr1ch (1)
  • mvoofan (1)
  • Weiiiz (1)
  • mahilaMoghadami (1)
Pull Request Authors
  • Sins-code (1)
Top Labels
Issue Labels
Pull Request Labels