Skip to content

Commit 277b597

Browse files
committed
- add citation to readme and notebooks
1 parent 309e425 commit 277b597

4 files changed

Lines changed: 268 additions & 59 deletions

File tree

panoptica/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,20 @@ Ideally the input data already provides matched instances.
4040
In this case module 3 can be used to directly report panoptic metrics without requiring any internal preprocessing.
4141

4242
[Jupyter Notebook Example](https://github.com/BrainLesion/tutorials/tree/main/panoptica/example_spine_matched_instance.ipynb)
43+
44+
## Citation
45+
46+
If you use panoptica in your research, please cite it to support the development!
47+
48+
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).
49+
50+
```
51+
@misc{kofler2023panoptica,
52+
title={Panoptica -- instance-wise evaluation of 3D semantic and instance segmentation maps},
53+
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},
54+
year={2023},
55+
eprint={2312.02608},
56+
archivePrefix={arXiv},
57+
primaryClass={cs.CV}
58+
}
59+
```

panoptica/example_spine_matched_instance.ipynb

Lines changed: 95 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,29 @@
1616
},
1717
{
1818
"cell_type": "code",
19-
"execution_count": null,
19+
"execution_count": 1,
2020
"metadata": {},
2121
"outputs": [
2222
{
2323
"name": "stdout",
2424
"output_type": "stream",
2525
"text": [
26-
"Requirement already satisfied: panoptica in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from -r requirements.txt (line 1)) (0.5.11)\n",
27-
"Requirement already satisfied: auxiliary in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from -r requirements.txt (line 2)) (0.0.35)\n",
26+
"Requirement already satisfied: panoptica in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from -r requirements.txt (line 1)) (0.5.19.post2.dev0+dd3ef62)\n",
27+
"Requirement already satisfied: auxiliary in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from -r requirements.txt (line 2)) (0.0.38)\n",
2828
"Requirement already satisfied: rich in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from -r requirements.txt (line 3)) (13.6.0)\n",
2929
"Requirement already satisfied: numpy in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from -r requirements.txt (line 4)) (1.25.2)\n",
3030
"Requirement already satisfied: connected-components-3d<4.0.0,>=3.12.3 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from panoptica->-r requirements.txt (line 1)) (3.12.3)\n",
3131
"Requirement already satisfied: scipy<2.0.0,>=1.7.0 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from panoptica->-r requirements.txt (line 1)) (1.11.3)\n",
32-
"Requirement already satisfied: nibabel>3.0 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from auxiliary->-r requirements.txt (line 2)) (4.0.2)\n",
33-
"Requirement already satisfied: path<17.0.0,>=16.7.1 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from auxiliary->-r requirements.txt (line 2)) (16.7.1)\n",
34-
"Requirement already satisfied: pathlib<2.0,>=1.0 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from auxiliary->-r requirements.txt (line 2)) (1.0.1)\n",
32+
"Requirement already satisfied: nibabel>=3.0 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from auxiliary->-r requirements.txt (line 2)) (4.0.2)\n",
33+
"Requirement already satisfied: path>=16.7.1 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from auxiliary->-r requirements.txt (line 2)) (16.7.1)\n",
34+
"Requirement already satisfied: pathlib>=1.0 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from auxiliary->-r requirements.txt (line 2)) (1.0.1)\n",
3535
"Requirement already satisfied: pillow>=10.0.0 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from auxiliary->-r requirements.txt (line 2)) (10.0.1)\n",
36-
"Requirement already satisfied: tifffile>2023.8.25 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from auxiliary->-r requirements.txt (line 2)) (2023.9.26)\n",
36+
"Requirement already satisfied: tifffile>=2023.8.25 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from auxiliary->-r requirements.txt (line 2)) (2023.9.26)\n",
3737
"Requirement already satisfied: markdown-it-py>=2.2.0 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from rich->-r requirements.txt (line 3)) (3.0.0)\n",
3838
"Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from rich->-r requirements.txt (line 3)) (2.16.1)\n",
3939
"Requirement already satisfied: mdurl~=0.1 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich->-r requirements.txt (line 3)) (0.1.2)\n",
40-
"Requirement already satisfied: packaging>=17.0 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from nibabel>3.0->auxiliary->-r requirements.txt (line 2)) (23.2)\n",
41-
"Requirement already satisfied: setuptools in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from nibabel>3.0->auxiliary->-r requirements.txt (line 2)) (68.2.2)\n"
40+
"Requirement already satisfied: packaging>=17.0 in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from nibabel>=3.0->auxiliary->-r requirements.txt (line 2)) (23.2)\n",
41+
"Requirement already satisfied: setuptools in /Users/marcelrosier/opt/anaconda3/envs/brainles/lib/python3.10/site-packages (from nibabel>=3.0->auxiliary->-r requirements.txt (line 2)) (68.2.2)\n"
4242
]
4343
}
4444
],
@@ -121,11 +121,78 @@
121121
"execution_count": 4,
122122
"metadata": {},
123123
"outputs": [
124+
{
125+
"data": {
126+
"text/html": [
127+
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #00ff00; text-decoration-color: #00ff00\">─────────────────────────────────────────────── </span><span style=\"font-weight: bold\"> Citation reminder </span><span style=\"color: #00ff00; text-decoration-color: #00ff00\"> ───────────────────────────────────────────────</span>\n",
128+
"</pre>\n"
129+
],
130+
"text/plain": [
131+
"\u001b[92m─────────────────────────────────────────────── \u001b[0m\u001b[1m Citation reminder \u001b[0m\u001b[92m ───────────────────────────────────────────────\u001b[0m\n"
132+
]
133+
},
134+
"metadata": {},
135+
"output_type": "display_data"
136+
},
137+
{
138+
"data": {
139+
"text/html": [
140+
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"> If you use this software in your research, please <span style=\"font-weight: bold\">cite</span> <span style=\"color: #0000ff; text-decoration-color: #0000ff; font-style: italic; text-decoration: underline\">https://github.com/BrainLesion/panoptica#citation</span> \n",
141+
"</pre>\n"
142+
],
143+
"text/plain": [
144+
" If you use this software in your research, please \u001b[1mcite\u001b[0m \u001b[3;4;94mhttps://github.com/BrainLesion/panoptica#citation\u001b[0m \n"
145+
]
146+
},
147+
"metadata": {},
148+
"output_type": "display_data"
149+
},
150+
{
151+
"data": {
152+
"text/html": [
153+
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"> Thank you! \n",
154+
"</pre>\n"
155+
],
156+
"text/plain": [
157+
" Thank you! \n"
158+
]
159+
},
160+
"metadata": {},
161+
"output_type": "display_data"
162+
},
163+
{
164+
"data": {
165+
"text/html": [
166+
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #00ff00; text-decoration-color: #00ff00\">───────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span>\n",
167+
"</pre>\n"
168+
],
169+
"text/plain": [
170+
"\u001b[92m───────────────────────────────────────────────────────────────────────────────────────────────────────────────────\u001b[0m\n"
171+
]
172+
},
173+
"metadata": {},
174+
"output_type": "display_data"
175+
},
176+
{
177+
"data": {
178+
"text/html": [
179+
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
180+
"</pre>\n"
181+
],
182+
"text/plain": [
183+
"\n"
184+
]
185+
},
186+
"metadata": {},
187+
"output_type": "display_data"
188+
},
124189
{
125190
"name": "stdout",
126191
"output_type": "stream",
127192
"text": [
128-
"evaluate took 2.727099895477295 seconds to execute.\n"
193+
"Panoptic: Start Evaluation\n",
194+
"-- Got MatchedInstancePair, will evaluate instances\n",
195+
"-- evaluate took 1.9342217445373535 seconds to execute.\n"
129196
]
130197
}
131198
],
@@ -163,11 +230,12 @@
163230
"False Positives (fp): 3\n",
164231
"False Negatives (fn): 3\n",
165232
"Recognition Quality / F1 Score (RQ): 0.8636363636363636\n",
166-
"Segmentation Quality (SQ): 0.8328184295330797 ± 0.1518606400451747\n",
167-
"Panoptic Quality (PQ): 0.7192522800512962\n",
233+
"Segmentation Quality (SQ): 0.8328184295330796 ± 0.15186064004517466\n",
234+
"Panoptic Quality (PQ): 0.719252280051296\n",
168235
"DSC-based Segmentation Quality (DQ_DSC): 0.900292616009954 ± 0.10253566174957332\n",
169236
"DSC-based Panoptic Quality (PQ_DSC): 0.7775254410995057\n",
170-
"Average symmetric surface distance (ASSD): 0.250331887879225 ± 0.07696680402317076\n"
237+
"Average symmetric surface distance (ASSD): 0.250331887879225 ± 0.07696680402317076\n",
238+
"ASSD-based Panoptic Quality (PQ_ASSD): 0.2161957213502398\n"
171239
]
172240
}
173241
],
@@ -184,11 +252,11 @@
184252
{
185253
"data": {
186254
"text/html": [
187-
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">result.<span style=\"color: #808000; text-decoration-color: #808000\">pq</span>=<span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.7192522800512962</span>\n",
255+
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">result.<span style=\"color: #808000; text-decoration-color: #808000\">pq</span>=<span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.719252280051296</span>\n",
188256
"</pre>\n"
189257
],
190258
"text/plain": [
191-
"result.\u001b[33mpq\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.7192522800512962\u001b[0m\n"
259+
"result.\u001b[33mpq\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.719252280051296\u001b[0m\n"
192260
]
193261
},
194262
"metadata": {},
@@ -216,14 +284,15 @@
216284
" <span style=\"color: #008000; text-decoration-color: #008000\">'fp'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3</span>,\n",
217285
" <span style=\"color: #008000; text-decoration-color: #008000\">'fn'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3</span>,\n",
218286
" <span style=\"color: #008000; text-decoration-color: #008000\">'rq'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.8636363636363636</span>,\n",
219-
" <span style=\"color: #008000; text-decoration-color: #008000\">'sq'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.8328184295330797</span>,\n",
220-
" <span style=\"color: #008000; text-decoration-color: #008000\">'sq_sd'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.1518606400451747</span>,\n",
221-
" <span style=\"color: #008000; text-decoration-color: #008000\">'pq'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.7192522800512962</span>,\n",
287+
" <span style=\"color: #008000; text-decoration-color: #008000\">'sq'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.8328184295330796</span>,\n",
288+
" <span style=\"color: #008000; text-decoration-color: #008000\">'sq_sd'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.15186064004517466</span>,\n",
289+
" <span style=\"color: #008000; text-decoration-color: #008000\">'pq'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.719252280051296</span>,\n",
222290
" <span style=\"color: #008000; text-decoration-color: #008000\">'sq_dsc'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.900292616009954</span>,\n",
223291
" <span style=\"color: #008000; text-decoration-color: #008000\">'sq_dsc_sd'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.10253566174957332</span>,\n",
224292
" <span style=\"color: #008000; text-decoration-color: #008000\">'pq_dsc'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.7775254410995057</span>,\n",
225-
" <span style=\"color: #008000; text-decoration-color: #008000\">'assd'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.250331887879225</span>,\n",
226-
" <span style=\"color: #008000; text-decoration-color: #008000\">'assd_sd'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.07696680402317076</span>\n",
293+
" <span style=\"color: #008000; text-decoration-color: #008000\">'sq_assd'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.250331887879225</span>,\n",
294+
" <span style=\"color: #008000; text-decoration-color: #008000\">'sq_assd_sd'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.07696680402317076</span>,\n",
295+
" <span style=\"color: #008000; text-decoration-color: #008000\">'pq_assd'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.2161957213502398</span>\n",
227296
"<span style=\"font-weight: bold\">}</span>\n",
228297
"</pre>\n"
229298
],
@@ -236,14 +305,15 @@
236305
" \u001b[32m'fp'\u001b[0m: \u001b[1;36m3\u001b[0m,\n",
237306
" \u001b[32m'fn'\u001b[0m: \u001b[1;36m3\u001b[0m,\n",
238307
" \u001b[32m'rq'\u001b[0m: \u001b[1;36m0.8636363636363636\u001b[0m,\n",
239-
" \u001b[32m'sq'\u001b[0m: \u001b[1;36m0.8328184295330797\u001b[0m,\n",
240-
" \u001b[32m'sq_sd'\u001b[0m: \u001b[1;36m0.1518606400451747\u001b[0m,\n",
241-
" \u001b[32m'pq'\u001b[0m: \u001b[1;36m0.7192522800512962\u001b[0m,\n",
308+
" \u001b[32m'sq'\u001b[0m: \u001b[1;36m0.8328184295330796\u001b[0m,\n",
309+
" \u001b[32m'sq_sd'\u001b[0m: \u001b[1;36m0.15186064004517466\u001b[0m,\n",
310+
" \u001b[32m'pq'\u001b[0m: \u001b[1;36m0.719252280051296\u001b[0m,\n",
242311
" \u001b[32m'sq_dsc'\u001b[0m: \u001b[1;36m0.900292616009954\u001b[0m,\n",
243312
" \u001b[32m'sq_dsc_sd'\u001b[0m: \u001b[1;36m0.10253566174957332\u001b[0m,\n",
244313
" \u001b[32m'pq_dsc'\u001b[0m: \u001b[1;36m0.7775254410995057\u001b[0m,\n",
245-
" \u001b[32m'assd'\u001b[0m: \u001b[1;36m0.250331887879225\u001b[0m,\n",
246-
" \u001b[32m'assd_sd'\u001b[0m: \u001b[1;36m0.07696680402317076\u001b[0m\n",
314+
" \u001b[32m'sq_assd'\u001b[0m: \u001b[1;36m0.250331887879225\u001b[0m,\n",
315+
" \u001b[32m'sq_assd_sd'\u001b[0m: \u001b[1;36m0.07696680402317076\u001b[0m,\n",
316+
" \u001b[32m'pq_assd'\u001b[0m: \u001b[1;36m0.2161957213502398\u001b[0m\n",
247317
"\u001b[1m}\u001b[0m\n"
248318
]
249319
},

0 commit comments

Comments
 (0)