neuropoly / totalspineseg

Robust Segmentation and Labeling of Vertebrae, Intervertebral Discs, Spinal Cord, and Spinal Canal in MRI Images Using nnU-Net and Iterative Algorithm.
GNU Lesser General Public License v3.0
19 stars 1 forks source link

Ensure that labeling is reliable when the FOV is only thoracic #45

Open NathanMolinier opened 2 months ago

NathanMolinier commented 2 months ago

Description

The aim of this issue is to validate the relevance of the labeling when the following classes are not visible in the image:

Method

To check this information, 30 images were randomly selected from 3 different datasets unseen during training.

  1. The inference was run on these images a first time to identify different classes:

    • The sacrum (92)
    • The disc L5-S1 (202)
    • The vertebrae C1 (41)
    • The vertebrae C2 (40)
    • The disc C2-C3 (224)
  2. The same images were then cropped using the generated segmentations to exclude the top and bottom parts of the images where these previous classes were visible.

  3. The inference was run another time but this time using the cropped versions of the images.

Screenshot 2024-09-11 at 16 42 40

Results

commit 4ba0d787a431f73ee51007e100b800637e81a88b

Each white square presents the original segmentation (left) and the segmentation after cropping.

validate_crop__step2_output

Discussion

  1. In some images, we can observe that there is a shift between the discs and the vertebrae probably due to fact that the:

  2. When the FOV is really small (axial aquisition) the model is not able to perform the labeling correctly, so no output is ultimately generated. Using a localizer to help the labeling as proposed in this PR is the solution to fix this issue.

NathanMolinier commented 2 months ago

Results

commit 253ce5a59da858f5281155aced8ecb29fbf4d8be

These results were created based on this https://github.com/neuropoly/totalspineseg/pull/54

validate_crop__step2_output

yw7 commented 2 months ago

Hi @NathanMolinier , Thank you for this amazing investigation! Is it possible to include also the raw results (step2_raw) so we can have more details about the cause for the problem?

NathanMolinier commented 2 months ago

Yes I will do that for next iterations !