Spaces:
Sleeping
Sleeping
Update app.py
Browse filesUpdated demo descriptor. Change to extra class
app.py
CHANGED
@@ -388,13 +388,13 @@ with gr.Blocks(theme=gr.themes.Soft(), css=custom_css, title="PEEB") as demo:
|
|
388 |
|
389 |
with gr.Column():
|
390 |
title_text = gr.Markdown("# A classifier with Part-based Explainable and Editable Bottleneck (PEEB) | Demo")
|
391 |
-
gr.Markdown("Here is a PEEB classifier pre-trained on Bird-11K and finetuned on CUB-200 (see our [NAACL 2024 paper](https://arxiv.org/abs/2403.05297) and [code](https://github.com/anguyen8/peeb/tree/inspect_ddp)).\n
|
392 |
gr.Markdown(
|
393 |
"""
|
394 |
Steps:
|
395 |
1. **Select an image**. Then, PEEB will show its grounded explanations and the top-1 predicted label with associated softmax confidence score.
|
396 |
2. **Hover mouse over text descriptors** to see the corresponding region used to match to each text descriptor.
|
397 |
-
3. **Edit the text under [
|
398 |
4. **Click on Predict** to see the grounded explanations and the top-1 label for the newly modified CUB-201 classifier.
|
399 |
"""
|
400 |
)
|
@@ -404,7 +404,7 @@ with gr.Blocks(theme=gr.themes.Soft(), css=custom_css, title="PEEB") as demo:
|
|
404 |
|
405 |
gr.Markdown("## Select an image to start!")
|
406 |
image_gallery = gr.Gallery(value=IMAGE_GALLERY, label=None, preview=False, allow_preview=False, columns=10, height=250)
|
407 |
-
gr.Markdown("###
|
408 |
|
409 |
with gr.Row():
|
410 |
with gr.Column():
|
@@ -415,14 +415,14 @@ with gr.Blocks(theme=gr.themes.Soft(), css=custom_css, title="PEEB") as demo:
|
|
415 |
with gr.Row():
|
416 |
# xclip_predict_button = gr.Button(label="Predict", value="Predict")
|
417 |
xclip_predict_button = gr.Button(value="Predict")
|
418 |
-
xclip_pred_label = gr.Markdown("###
|
419 |
xclip_explanation = gr.HTML()
|
420 |
|
421 |
with gr.Column():
|
422 |
# xclip_edit_button = gr.Button(label="Edit", value="Reset Descriptions")
|
423 |
xclip_edit_button = gr.Button(value="Reset Descriptions")
|
424 |
custom_pred_label = gr.Markdown(
|
425 |
-
"###
|
426 |
)
|
427 |
xclip_textbox = gr.Textbox(lines=12, placeholder="Edit the descriptions here", visible=False)
|
428 |
# ai_explanation = gr.Image(type="numpy", visible=True, show_label=False, height=500)
|
|
|
388 |
|
389 |
with gr.Column():
|
390 |
title_text = gr.Markdown("# A classifier with Part-based Explainable and Editable Bottleneck (PEEB) | Demo")
|
391 |
+
gr.Markdown("Here is a PEEB bird classifier pre-trained on Bird-11K and finetuned on CUB-200 (see our [NAACL 2024 paper](https://arxiv.org/abs/2403.05297) and [code](https://github.com/anguyen8/peeb/tree/inspect_ddp)).\n This demo shows how to run PEEB on an existing image and edit descriptors to update the classifier to detect one new bird species (without any re-training).")
|
392 |
gr.Markdown(
|
393 |
"""
|
394 |
Steps:
|
395 |
1. **Select an image**. Then, PEEB will show its grounded explanations and the top-1 predicted label with associated softmax confidence score.
|
396 |
2. **Hover mouse over text descriptors** to see the corresponding region used to match to each text descriptor.
|
397 |
+
3. **Edit the text under [Extra class]()** which correspond to one extra, new class (i.e. 200+1 = 201). Further editing will overwrite this class' descriptors.
|
398 |
4. **Click on Predict** to see the grounded explanations and the top-1 label for the newly modified CUB-201 classifier.
|
399 |
"""
|
400 |
)
|
|
|
404 |
|
405 |
gr.Markdown("## Select an image to start!")
|
406 |
image_gallery = gr.Gallery(value=IMAGE_GALLERY, label=None, preview=False, allow_preview=False, columns=10, height=250)
|
407 |
+
gr.Markdown("### Extra-class descriptors: \n The first row should be **class name: {some name};**, the name of your 201th class. \n For the 12 part descriptors, please use **;** to separate the descriptions for each part, and use the format **{part name}: {descriptions}**. \n Note: you can delete a row for some part (e.g. *nape*) completely and that part will be removed from all 201 classes in the classifier.")
|
408 |
|
409 |
with gr.Row():
|
410 |
with gr.Column():
|
|
|
415 |
with gr.Row():
|
416 |
# xclip_predict_button = gr.Button(label="Predict", value="Predict")
|
417 |
xclip_predict_button = gr.Button(value="Predict")
|
418 |
+
xclip_pred_label = gr.Markdown("### Top-1 class:")
|
419 |
xclip_explanation = gr.HTML()
|
420 |
|
421 |
with gr.Column():
|
422 |
# xclip_edit_button = gr.Button(label="Edit", value="Reset Descriptions")
|
423 |
xclip_edit_button = gr.Button(value="Reset Descriptions")
|
424 |
custom_pred_label = gr.Markdown(
|
425 |
+
"### Extra class:"
|
426 |
)
|
427 |
xclip_textbox = gr.Textbox(lines=12, placeholder="Edit the descriptions here", visible=False)
|
428 |
# ai_explanation = gr.Image(type="numpy", visible=True, show_label=False, height=500)
|