|
1 | 1 | # Panoptica Tutorials |
2 | 2 |
|
3 | 3 | This folder contains several Jupyter notebooks to showcase different possible use cases of the [panoptica package](https://github.com/BrainLesion/panoptica). |
4 | | -The package allows to compute instance-wise segmentation quality metrics for 2D and 3D semantic- and instance segmentation maps by providing 3 core modules: |
5 | 4 |
|
6 | | -**1. Instance Approximator:** instance approximation algorithms in panoptic segmentation evaluation. Available now: connected components algorithm. |
| 5 | +## Notebooks |
| 6 | +### Semantic: Spine example |
| 7 | +`example_spine_semantic.ipynb` |
7 | 8 |
|
8 | | -**2. Instance Matcher:** instance matching algorithm in panoptic segmentation evaluation, to align and compare predicted instances with reference instances. |
| 9 | +[](https://nbviewer.jupyter.org/github/BrainLesion/tutorials/blob/main/panoptica/example_spine_semantic.ipynb) |
| 10 | +<a target="_blank" href="https://colab.research.google.com/github/BrainLesion/tutorials/blob/main/panoptica/example_spine_semantic.ipynb"> |
| 11 | + <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
| 12 | +</a> |
9 | 13 |
|
10 | | -**3. Instance Evaluator:** Evaluation of panoptic segmentation performance by evaluating matched instance pairs and calculating various metrics like true positives, Dice score, IoU, and ASSD for each instance. |
| 14 | +### Matched Instance: Spine example |
| 15 | +`example_spine_matched_instance.ipynb` |
11 | 16 |
|
12 | | - |
| 17 | +[](https://nbviewer.jupyter.org/github/BrainLesion/tutorials/blob/main/panoptica/example_spine_matched_instance.ipynb) |
| 18 | +<a target="_blank" href="https://colab.research.google.com/github/BrainLesion/tutorials/blob/main/panoptica/example_spine_matched_instance.ipynb"> |
| 19 | + <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
| 20 | +</a> |
13 | 21 |
|
14 | | -## Use Cases |
15 | 22 |
|
16 | | -### Semantic Segmentation Input |
| 23 | +### Unmatched Instance: Spine example |
| 24 | +`example_spine_unmatched_instance.ipynb` |
17 | 25 |
|
18 | | -<img src="https://github.com/BrainLesion/panoptica/blob/main/examples/figures/semantic.png?raw=true" alt="semantic_figure" height="300"/> |
| 26 | +[](https://nbviewer.jupyter.org/github/BrainLesion/tutorials/blob/main/panoptica/example_spine_unmatched_instance.ipynb) |
| 27 | +<a target="_blank" href="https://colab.research.google.com/github/BrainLesion/tutorials/blob/main/panoptica/example_spine_unmatched_instance.ipynb"> |
| 28 | + <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
| 29 | +</a> |
19 | 30 |
|
20 | | -Although for many biomedical segmentation problems, an instance-wise evaluation is highly relevant and desirable, they are still addressed as semantic segmentation problems due to lack of appropriate instance labels. |
21 | 31 |
|
22 | | -**Modules [1-3]** can be used to obtain panoptic metrics of matched instances based on a semantic segmentation input. |
| 32 | +### Matching: Spine example |
| 33 | +`example_spine_matching_algorithm.ipynb` |
23 | 34 |
|
24 | | -[Jupyter Notebook Example](https://github.com/BrainLesion/tutorials/tree/main/panoptica/example_spine_semantic.ipynb) |
| 35 | +[](https://nbviewer.jupyter.org/github/BrainLesion/tutorials/blob/main/panoptica/example_spine_matching_algorithm.ipynb) |
| 36 | +<a target="_blank" href="https://colab.research.google.com/github/BrainLesion/tutorials/blob/main/panoptica/example_spine_matching_algorithm.ipynb"> |
| 37 | + <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
| 38 | +</a> |
25 | 39 |
|
26 | | -### Unmatched Instances Input |
27 | 40 |
|
28 | | -<img src="https://github.com/BrainLesion/panoptica/blob/main/examples/figures/unmatched_instance.png?raw=true" alt="unmatched_instance_figure" height="300"/> |
| 41 | +### Save/Load Configs example: |
| 42 | +`example_config.ipynb` |
29 | 43 |
|
30 | | -It is a common issue that instance segementation outputs have good segmentations with mismatched labels. |
| 44 | +[](https://nbviewer.jupyter.org/github/BrainLesion/tutorials/blob/main/panoptica/example_config.ipynb) |
| 45 | +<a target="_blank" href="https://colab.research.google.com/github/BrainLesion/tutorials/blob/main/panoptica/example_config.ipynb"> |
| 46 | + <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
| 47 | +</a> |
31 | 48 |
|
32 | | -For this case **modules [2-3]** can be utilized to match the instances and report panoptic metrics. |
33 | | - |
34 | | -[Jupyter Notebook Example](https://github.com/BrainLesion/tutorials/tree/main/panoptica/example_spine_unmatched_instance.ipynb) |
35 | | - |
36 | | -### Matched Instances Input |
37 | | - |
38 | | -<img src="https://github.com/BrainLesion/panoptica/blob/main/examples/figures/matched_instance.png?raw=true" alt="matched_instance_figure" height="300"/> |
39 | | - |
40 | | -Ideally the input data already provides matched instances. |
41 | | - |
42 | | -In this case **module 3** can be used to directly report panoptic metrics without requiring any internal preprocessing. |
43 | | - |
44 | | -[Jupyter Notebook Example](https://github.com/BrainLesion/tutorials/tree/main/panoptica/example_spine_matched_instance.ipynb) |
45 | | - |
46 | | -## Citation |
47 | | - |
48 | | -If you use panoptica in your research, please cite it to support the development! |
49 | | - |
50 | | -Kofler, F., Möller, H., Buchner, J. A., de la Rosa, E., Ezhov, I., Rosier, M., Mekki, I., Shit, S., Negwer, M., Al-Maskari, R., Ertürk, A., Vinayahalingam, S., Isensee, F., Pati, S., Rueckert, D., Kirschke, J. S., Ehrlich, S. K., Reinke, A., Menze, B., Wiestler, B., & Piraud, M. (2023). _Panoptica -- instance-wise evaluation of 3D semantic and instance segmentation maps._ [arXiv preprint arXiv:2312.02608](https://arxiv.org/abs/2312.02608). |
51 | | - |
52 | | -``` |
53 | | -@misc{kofler2023panoptica, |
54 | | - title={Panoptica -- instance-wise evaluation of 3D semantic and instance segmentation maps}, |
55 | | - author={Florian Kofler and Hendrik Möller and Josef A. Buchner and Ezequiel de la Rosa and Ivan Ezhov and Marcel Rosier and Isra Mekki and Suprosanna Shit and Moritz Negwer and Rami Al-Maskari and Ali Ertürk and Shankeeth Vinayahalingam and Fabian Isensee and Sarthak Pati and Daniel Rueckert and Jan S. Kirschke and Stefan K. Ehrlich and Annika Reinke and Bjoern Menze and Benedikt Wiestler and Marie Piraud}, |
56 | | - year={2023}, |
57 | | - eprint={2312.02608}, |
58 | | - archivePrefix={arXiv}, |
59 | | - primaryClass={cs.CV} |
60 | | -} |
61 | | -``` |
0 commit comments