ChantalPellegrini
commited on
Commit
•
16c60f0
1
Parent(s):
06257c8
updated demo
Browse files- app.py +8 -2
- article.md +31 -0
- description.md +3 -0
app.py
CHANGED
@@ -105,6 +105,10 @@ def process_input(image_path, prompt_names: list, disease_name: str, descriptors
|
|
105 |
|
106 |
return output
|
107 |
|
|
|
|
|
|
|
|
|
108 |
|
109 |
# Define the Gradio interface
|
110 |
iface = gr.Interface(
|
@@ -118,14 +122,16 @@ iface = gr.Interface(
|
|
118 |
'Custom'],
|
119 |
default=['Enlarged Cardiomediastinum', 'Cardiomegaly', 'Lung Opacity', 'Lung Lesion', 'Edema', 'Consolidation', 'Pneumonia',
|
120 |
'Atelectasis', 'Pneumothorax', 'Pleural Effusion', 'Pleural Other', 'Fracture', 'Support Devices'],
|
121 |
-
label='
|
122 |
gr.inputs.Textbox(lines=2, placeholder="Name of pathology for which you want to define custom observations", label='Pathology:'),
|
123 |
gr.inputs.Textbox(lines=2, placeholder="Add your custom (positive) observations separated by a new line"
|
124 |
"\n Note: Each descriptor will automatically be embedded into our prompt format: There is/are (no) <observation> indicating <pathology>"
|
125 |
"\n Example:\n\n Opacity\nPleural Effusion\nConsolidation"
|
126 |
, label='Custom Observations:')],
|
|
|
|
|
127 |
outputs=gr.outputs.Image(type="filepath")
|
128 |
)
|
129 |
|
130 |
# Launch the interface
|
131 |
-
iface.launch()
|
|
|
105 |
|
106 |
return output
|
107 |
|
108 |
+
with open("article.md", "r") as f:
|
109 |
+
article = f.read()
|
110 |
+
with open("description.md", "r") as f:
|
111 |
+
description = f.read()
|
112 |
|
113 |
# Define the Gradio interface
|
114 |
iface = gr.Interface(
|
|
|
122 |
'Custom'],
|
123 |
default=['Enlarged Cardiomediastinum', 'Cardiomegaly', 'Lung Opacity', 'Lung Lesion', 'Edema', 'Consolidation', 'Pneumonia',
|
124 |
'Atelectasis', 'Pneumothorax', 'Pleural Effusion', 'Pleural Other', 'Fracture', 'Support Devices'],
|
125 |
+
label='Select to use predefined disease descriptors. Select "Custom" to define your own observations.'),
|
126 |
gr.inputs.Textbox(lines=2, placeholder="Name of pathology for which you want to define custom observations", label='Pathology:'),
|
127 |
gr.inputs.Textbox(lines=2, placeholder="Add your custom (positive) observations separated by a new line"
|
128 |
"\n Note: Each descriptor will automatically be embedded into our prompt format: There is/are (no) <observation> indicating <pathology>"
|
129 |
"\n Example:\n\n Opacity\nPleural Effusion\nConsolidation"
|
130 |
, label='Custom Observations:')],
|
131 |
+
article=article,
|
132 |
+
description=description,
|
133 |
outputs=gr.outputs.Image(type="filepath")
|
134 |
)
|
135 |
|
136 |
# Launch the interface
|
137 |
+
iface.launch()
|
article.md
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
We propose a new way of explainability for zero-shot diagnosis prediction in the clinical domain. Instead of directly predicting a diagnosis, we prompt the model to classify the existence of descriptive observations, which a radiologist would look for on an X-Ray scan, and use the descriptor probabilities to estimate the likelihood of a diagnosis, making our model explainable by design. For this we leverage BioVil, a pretrained CLIP model for X-rays and apply contrastive observation-based prompting. We evaluate Xplainer on two chest X-ray
|
3 |
+
datasets, CheXpert and ChestX-ray14, and demonstrate its effectiveness
|
4 |
+
in improving the performance and explainability of zero-shot diagnosis.
|
5 |
+
**Authors**: [Chantal Pellegrini][cp], [Matthias Keicher][mk], [Ege Özsoy][eo], [Petra Jiraskova][pj], [Rickmer Braren][rb], [Nassir Navab][nn]
|
6 |
+
|
7 |
+
[cp]:https://www.cs.cit.tum.de/camp/members/chantal-pellegrini/
|
8 |
+
[eo]:https://www.cs.cit.tum.de/camp/members/ege-oezsoy/
|
9 |
+
[mk]:https://www.cs.cit.tum.de/camp/members/matthias-keicher/
|
10 |
+
[pj]:https://campus.tum.de/tumonline/ee/ui/ca2/app/desktop/#/pl/ui/$ctx/visitenkarte.show_vcard?$ctx=design=ca2;header=max;lang=de&pPersonenGruppe=3&pPersonenId=46F3A857F258DEE6
|
11 |
+
[rb]:https://radiologie.mri.tum.de/de/person/prof-dr-rickmer-f-braren
|
12 |
+
[nn]:https://www.cs.cit.tum.de/camp/members/cv-nassir-navab/nassir-navab/
|
13 |
+
|
14 |
+
**License**: MIT
|
15 |
+
|
16 |
+
**Where to send questions or comments about the model**: Open an issue on [`Xplainer`](https://github.com/ChantalMP/Xplainer) repo.
|
17 |
+
|
18 |
+
**Intended Use**: This model is intended to be used solely for (I) future research on visual-language processing and (II) reproducibility of the experimental results reported in the reference paper.
|
19 |
+
|
20 |
+
**Primary intended uses/users**: Vision-Language and CAD researchers
|
21 |
+
|
22 |
+
|
23 |
+
## Citation
|
24 |
+
```bib
|
25 |
+
@article{pellegrini2023xplainer,
|
26 |
+
title={Xplainer: From X-Ray Observations to Explainable Zero-Shot Diagnosis},
|
27 |
+
author={Pellegrini, Chantal and Keicher, Matthias and {\"O}zsoy, Ege and Jiraskova, Petra and Braren, Rickmer and Navab, Nassir},
|
28 |
+
journal={arXiv preprint arXiv:2303.13391},
|
29 |
+
year={2023}
|
30 |
+
}
|
31 |
+
```
|
description.md
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
This demo provides a playground for the testing the model of our paper "Xplainer: From X-Ray Observations to Explainable Zero-Shot Diagnosis", which was accepted for publication at MICCAI 2023. You can test our pre-defined prompts and define your own prompts and diseases.
|
2 |
+
|
3 |
+
**Paper**: [arxiv](https://arxiv.org/pdf/2303.13391.pdf), **Code**: [Github](https://github.com/ChantalMP/Xplainer)
|