EndoluminalSurgicalVision-IMR / ATM-22-Related-Work

[MedIA 2023/MICCAI 2022 Grand Challenge]: Airway Tree Modeling (ATM'22) Related Work Collections, also includes the state-of-the-art works on pulmonary airway segmentation and related works.
https://atm22.grand-challenge.org/
MIT License
146 stars 27 forks source link

Methodology to use tree evaluation functions (BD/TD) #3

Open dscarmo opened 1 year ago

dscarmo commented 1 year ago

Hello,

I am interested in using your evaluation functions more specifically BD and TD. However, I am not sure of which part of this code you are using to create the inputs to the functions in the evaluation code.

Can you help me with that?

Puzzled-Hui commented 1 year ago

Hello,

Thanks for your interest in ATM'22.

In the provided code, The input should be the folder that contains a list of labels of the airway.

Best,

dscarmo commented 1 year ago

@Puzzled-Hui Sorry, I think I didn't express myself clearly. I meant the inputs of the BD and TD functions require the airway skeleton. I am applying these functions to a different "tubular" problem.

I need to get the "label_parsing, label_skeleton" labels the function uses. I want to make sure I am producing these correctly. The README refers to the implementation in https://github.com/haozheng-sjtu/3d-airway-segmentation without additional detail. I would like to know which part of this "3d-airway-segmentation" repository should i use to produce these label parsing and label skeleton labels.

From what I understood looking at the code, I should run the tree_parse function and the "tree_parsing" and "skeleton" numpy arrays correspond to the "label_parsing and label_skeleton" arguments for the metrics? Again sorry if this is obvious but I want to make sure I am correctly reproducing your evaluation pipeline.

Thank you for your attention and quick response.

Puzzled-Hui commented 1 year ago

Hi Dscarmo,

Thanks for reaching out.

Yes, the tree_parse() function is for the parsing procedure, and the label_parsing and label_skeleton should be save_name_parse and save_name_skel in tree_parse().

We would like to include a modified tree_parse version in this repo, we will let you know once we finish that.

Best,

dscarmo commented 1 year ago

@Puzzled-Hui thanks for the clarification. One last question. I noticed the tree_parse code has a largest connected component computation. Therefore, can I use predictions that are not the largest connected component and leave it for the tree_parse to do that? IIRC in the challenge we had to have our predictions already in the largest label format.

Puzzled-Hui commented 1 year ago

Hi Dscarmo,

Thanks for reaching out.

The tree_parse is initially designed for the single connected airway tree structure. However, it was not limited to that. Specifically, the external loop to process each component of other datasets with multiple connected components is one of the simple way.

Best,