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

WholeBody CT Segmentation (104 classes) | SegResNet | TotalSegmentator #301

Merged
merged 19 commits into from
Feb 21, 2023

Conversation

tangy5
Copy link
Collaborator

@tangy5 tangy5 commented Jan 31, 2023

Add whole body 104 tissues segmentation bundle.

  • Inference pipeline
  • Training pipeline
  • Benchmarking
  • Performance Figures
  • Add Hardware requirements after benchmarking, this is a huge model, a minimum 32G GPU is required. Add more details.
  • Other checks
  • Utilities

options

tangy5 added 2 commits January 30, 2023 21:39
Signed-off-by: tangy5 <[email protected]>
Signed-off-by: tangy5 <[email protected]>
@Nic-Ma Nic-Ma requested a review from ericspod January 31, 2023 07:21
@tangy5 tangy5 force-pushed the segresnet_totalSegmentator branch from a02f708 to e2a2409 Compare February 1, 2023 04:01
@tangy5
Copy link
Collaborator Author

tangy5 commented Feb 1, 2023

Thanks, most basic config files are done, I'm benchmarking and training using A100 GPUs.
I need to get performance comparison, train loss, validation dice figures.
Hopefully we will get a finalized model trained with A100 GPUs.
Will notice for review.

Signed-off-by: tangy5 <[email protected]>
@tangy5 tangy5 force-pushed the segresnet_totalSegmentator branch from a85d6df to 876c158 Compare February 6, 2023 22:24
Signed-off-by: tangy5 <[email protected]>
@tangy5 tangy5 force-pushed the segresnet_totalSegmentator branch from d21409d to 5ce7d29 Compare February 7, 2023 21:01
@tangy5 tangy5 force-pushed the segresnet_totalSegmentator branch from 8ff95eb to 72731ff Compare February 10, 2023 20:15
Signed-off-by: tangy5 <[email protected]>
@tangy5 tangy5 force-pushed the segresnet_totalSegmentator branch from 8ff8f3b to 942fa25 Compare February 11, 2023 00:47
Signed-off-by: tangy5 <[email protected]>
@tangy5 tangy5 force-pushed the segresnet_totalSegmentator branch from 8e323f6 to e61fd92 Compare February 11, 2023 00:49
Signed-off-by: tangy5 <[email protected]>
@tangy5 tangy5 force-pushed the segresnet_totalSegmentator branch from 20ab687 to dccadd9 Compare February 11, 2023 00:52
@tangy5
Copy link
Collaborator Author

tangy5 commented Feb 11, 2023

Hi @yiheng-wang-nv , @Nic-Ma , this bundle is finished. All components are developed and evaluated. Please see details in the doc.
It would be great that you could give a look and see whether any part needs modification, especially formats, styles.

In additon, the CI checks failed on "code-format-check", caused by other files.

Thank you so much.

@tangy5
Copy link
Collaborator Author

tangy5 commented Feb 11, 2023

Hi @SachidanandAlle, this bundle is done, it would be great if you could give a review. I tested it with MONAI Label.

I will create a PR in MONAI Label repo to support "options" for models versions and inference options such as "sw_batch_size", "sw_overlap".

Thanks

@tangy5 tangy5 changed the title [WIP] 104 wholeBody CT Segmentation | SegResNet | TotalSegmentator WholeBody CT Segmentation (104 classes) | SegResNet | TotalSegmentator Feb 11, 2023
@yiheng-wang-nv
Copy link
Collaborator

Thanks @tangy5 , the code format check issue will be resolved soon.

@tangy5
Copy link
Collaborator Author

tangy5 commented Feb 20, 2023

Hi @yiheng-wang-nv @Nic-Ma ,

All above suggestions are uploaded and addressed. I'm ok to merge it.
Let me know if there are further comments. Thanks!

@yiheng-wang-nv
Copy link
Collaborator

/build

@yiheng-wang-nv
Copy link
Collaborator

/build

@yiheng-wang-nv yiheng-wang-nv merged commit da79a8f into Project-MONAI:dev Feb 21, 2023
@tangy5 tangy5 deleted the segresnet_totalSegmentator branch February 21, 2023 05:25
@ibro45
Copy link

ibro45 commented Aug 19, 2023

Hi,

I have two questions:

  1. How was the configuration selected? Did you use Auto3DSeg, and if so, with what constraints?

  2. There seems to be no test set DICE scores. I compared your 1.5mm model against the original fast (3mm, upsampled to 1.5mm) and slow (1.5mm) nnUNet Totalsegmentator models:

image

Did you also observe a DICE of 0.74 in the case of your network or am I getting something wrong?

@diazandr3s
Copy link
Collaborator

Hi @ibro45,

Very good questions.

  1. How was the configuration selected? Did you use Auto3DSeg, and if so, with what constraints?

The whole-body CT segmentation model uses a single network (SegResNet). Both Auto3D and nnUNET train an ensemble of networks with different hyperparameters. This means more computational resources might be needed to train and perform inference when using those two algorithms

  1. There seems to be no test set DICE scores. I compared your 1.5mm model against the original fast (3mm, upsampled to 1.5mm) and slow (1.5mm) nnUNet Totalsegmentator models:

I wouldn't be surprised if the performance of the whole-body CT segmentation model is slightly worse when compared to nnUNET or Auto3D. Essentially because this model uses a single network instead of an ensemble.

A good exercise would be to compare the Auto3D against the nnUNET results on this dataset.

@ibro45
Copy link

ibro45 commented Aug 21, 2023

Thanks @diazandr3s!

I see, I haven't worked with Auto3D yet, but I assumed that it, like nnUNet, configures the network, patch and batch size, etc. based on the dataset. So I was just wondering if that was done first to figure out the "ideal" configuration before training it.

Is there any particular reason why the test scores aren't reported? I can't find any in MONAI VISTA either, where TotalSegmentator was used too.

I'm actually developing a single SegResNet (same architecture as wholebody_ct) for all 104 labels and am getting close to the original 5-model nnUNet TotalSegmentator performance. I was just wondering about the design choices as I'm debating whether I should also adjust the current SegResNet architecture and see if it improves the performance.

@diazandr3s
Copy link
Collaborator

Hi @ibro45,

I see, I haven't worked with Auto3D yet, but I assumed that it, like nnUNet, configures the network, patch and batch size, etc. based on the dataset. So I was just wondering if that was done first to figure out the "ideal" configuration before training it.

That's correct, the Auto3D algorithm configures those hyperparameters. You can learn more about this model here: https://github.com/Project-MONAI/tutorials/tree/main/auto3dseg#performance-benchmarking

For the whole-body model, we used the vanilla SegResNet. No major network hyperparameter search was performed.

Is there any particular reason why the test scores aren't reported? I can't find any in MONAI VISTA either, where TotalSegmentator was used too.

The initial idea of proposing the whole-body CT segmentation was not to show a better performance than the nnUNET or Auto3D. It was more to demonstrate how the whole body can be segmented using a single network instead of an ensemble. Easier to train and faster inference for downstream tasks.

With regard to the MONAI VISTA, you should hear more details about this model soon. Stay tuned!

I'm actually developing a single SegResNet (same architecture as wholebody_ct) for all 104 labels and am getting close to the original 5-model nnUNet TotalSegmentator performance. I was just wondering about the design choices as I'm debating whether I should also adjust the current SegResNet architecture and see if it improves the performance.

This is great! Please let us know how that goes. Looking forward to hearing more.

yiheng-wang-nv added a commit to yiheng-wang-nv/model-zoo that referenced this pull request Jul 29, 2024
Project-MONAI#301)

Add whole body 104 tissues segmentation bundle. 

- [x] Inference pipeline
- [x] Training pipeline
- [x] Benchmarking
- [x] Performance Figures
- [x] Add Hardware requirements after benchmarking, this is a huge
model, a minimum 32G GPU is required. Add more details.
- [x] Other checks
- [x] Utilities
- 

![options](https://user-images.githubusercontent.com/58751975/218229352-c7547bc7-a978-4f9f-a0f6-af445420e3c9.png)

---------

Signed-off-by: tangy5 <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Yiheng Wang <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants