Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Registration of volume Ct-Scans with different morphology/anatomical structures #1641

Closed
kiwibruyant opened this issue May 10, 2022 · 1 comment
Labels

Comments

@kiwibruyant
Copy link

Hello,

I’m currently working with a dataset with different patients. Each one of them is a 3D CT-scan volume with different properties such as pixel spacing, hounsfield units range (but I’m doing a clipping between -1024 and 3071), contrast product and so on …

In addition, the ct-scans are obtained through an axial acquisition and have for dimension 512x512xZ pixels with Z that is different for each patient.

What I am doing is a basic 3D affine registration with MattesMutualInformation as a metric and ConjuguateGradientLineSearch as the optimizer and I’m using a Linear interpolator.

Some scans cover the entire anatomical parts (pelvis, abdomen and thorax) like the following example :

image

Doing registration on this kind of scans works well. However, when I’m trying to register a patient who has their scan truncated at the level of the lungs on the previous kind of patient (full lungs), Its doesn’t work. I’ve tried to modify the translation vector of the affine transform and here’s the best result I could get (with coronal view to see my problem) :

image

Image top left corner : fixed volume with full anatomical presence (pelvis + abdomen + thorax)
Image top right corner : moving volume to register on the fixed volume. Only the inferior part of the lung is present.

The two bottom image are the best image I could get after registration by modifiying manually the translation vector (notably the z component)

Image bottom left corner : the lungs and abdomen (kidneys+liver) are mapping (between this registered image and the fixed volume) but not the pevlis/bladder
Image bottom right corner : the pevlis/bladder is mapping but not the lungs and abdomen

I did not succeed to get a good looking registration where there is a correspondence between each anatomical parts

I know I could get good results by removing the superior part of the lungs in the fixed image. However my algorithm should be generic and should not necessarily know which anatomical part is missing. Is there any way to handle this problem and get a good registration ?

Thanks in advance for any help

@zivy
Copy link
Member

zivy commented May 10, 2022

Hello @kiwibruyant,

Simple, yet effective, ways to improve the probability of a good registration:

  1. Evaluate multiple initial transformations and initialize the registration using the best one (according to the similarity measure). See this Jupyter notebook.
  2. Use an exploration-exploitation optimization strategy, running multiple registrations. See this Jupyter notebook.

The second option is obviously more computationally intensive, so makes sense to try option 1 and if that doesn't solve the problem try option 2 (which is an elaboration on option 1).

Based on the images, it makes sense to limit the exploration of the parameter space to translation along the z (cranial-caudal) direction, making both options above much more computationally efficient. Exploring a 1D parameter space and not the full 12D parameter space of the 3D affine transformation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants