Spaces:
Runtime error
Runtime error
Commit
·
3a88b8f
1
Parent(s):
7022682
Change tab order
Browse files
app.py
CHANGED
|
@@ -424,31 +424,11 @@ image_name = "dusseldorf_000012_000019_leftImg8bit.png"
|
|
| 424 |
default_image = os.path.join(data_folder, "images", image_name)
|
| 425 |
|
| 426 |
my_theme = gr.Theme.from_hub("YenLai/Superhuman")
|
|
|
|
| 427 |
with gr.Blocks(title="Preuve de concept", theme=my_theme) as demo:
|
| 428 |
gr.Markdown("# Projet 10 - Développer une preuve de concept")
|
| 429 |
-
with gr.Tab("
|
| 430 |
-
gr.Markdown("##
|
| 431 |
-
gr.Markdown(
|
| 432 |
-
"### Sélectionnez une image pour voir la comparaison entre le masque réel, la prédiction FPN et la prédiction SegFormer."
|
| 433 |
-
)
|
| 434 |
-
|
| 435 |
-
image_input = gr.Dropdown(choices=image_list, label="Sélectionnez une image")
|
| 436 |
-
|
| 437 |
-
gallery_output = gr.Gallery(
|
| 438 |
-
label="Résultats de segmentation",
|
| 439 |
-
show_label=True,
|
| 440 |
-
elem_id="gallery",
|
| 441 |
-
columns=[2],
|
| 442 |
-
rows=[2],
|
| 443 |
-
object_fit="contain",
|
| 444 |
-
height="512px",
|
| 445 |
-
min_width="1024px",
|
| 446 |
-
)
|
| 447 |
-
|
| 448 |
-
image_input.change(fn=process_image, inputs=image_input, outputs=gallery_output)
|
| 449 |
-
|
| 450 |
-
with gr.Tab("EDA"):
|
| 451 |
-
gr.Markdown("## Analyse Exploratoire des données Cityscapes")
|
| 452 |
gr.Markdown(
|
| 453 |
"### Visualisations de la distribution de chaque classe selon l'image choisie."
|
| 454 |
)
|
|
@@ -471,31 +451,6 @@ with gr.Blocks(title="Preuve de concept", theme=my_theme) as demo:
|
|
| 471 |
],
|
| 472 |
)
|
| 473 |
|
| 474 |
-
with gr.Tab("Explication SegFormer"):
|
| 475 |
-
gr.Markdown("## Explication du modèle SegFormer")
|
| 476 |
-
gr.Markdown(
|
| 477 |
-
"### La méthode Grad-CAM est une technique populaire de visualisation qui est utile pour comprendre comment un réseau neuronal convolutif a été conduit à prendre une décision de classification. Elle est spécifique à chaque classe, ce qui signifie qu’elle peut produire une visualisation distincte pour chaque classe présente dans l’image."
|
| 478 |
-
)
|
| 479 |
-
gr.Markdown(
|
| 480 |
-
"### NB: Si l'image s'affiche sans masque, c'est que le modèle ne trouve pas de zones significatives pour une catégorie donnée."
|
| 481 |
-
)
|
| 482 |
-
|
| 483 |
-
with gr.Row():
|
| 484 |
-
explain_image_input = gr.Dropdown(
|
| 485 |
-
choices=image_list, label="Sélectionnez une image"
|
| 486 |
-
)
|
| 487 |
-
explain_category_input = gr.Dropdown(
|
| 488 |
-
choices=category_list, label="Sélectionnez une catégorie"
|
| 489 |
-
)
|
| 490 |
-
|
| 491 |
-
explain_button = gr.Button("Expliquer")
|
| 492 |
-
explain_output = gr.Plot(label="Explication SegFormer", min_width=200)
|
| 493 |
-
explain_button.click(
|
| 494 |
-
fn=explain_model,
|
| 495 |
-
inputs=[explain_image_input, explain_category_input],
|
| 496 |
-
outputs=explain_output,
|
| 497 |
-
)
|
| 498 |
-
|
| 499 |
with gr.Tab("Data Augmentation"):
|
| 500 |
gr.Markdown("## Visualisation de l'augmentation de données")
|
| 501 |
gr.Markdown(
|
|
@@ -538,6 +493,52 @@ with gr.Blocks(title="Preuve de concept", theme=my_theme) as demo:
|
|
| 538 |
outputs=augmented_image,
|
| 539 |
)
|
| 540 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 541 |
|
| 542 |
# Lancer l'application
|
| 543 |
demo.launch(favicon_path="static/favicon.ico", share=True)
|
|
|
|
| 424 |
default_image = os.path.join(data_folder, "images", image_name)
|
| 425 |
|
| 426 |
my_theme = gr.Theme.from_hub("YenLai/Superhuman")
|
| 427 |
+
|
| 428 |
with gr.Blocks(title="Preuve de concept", theme=my_theme) as demo:
|
| 429 |
gr.Markdown("# Projet 10 - Développer une preuve de concept")
|
| 430 |
+
with gr.Tab("Distriburion"):
|
| 431 |
+
gr.Markdown("## Distriburion des classes Cityscapes")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 432 |
gr.Markdown(
|
| 433 |
"### Visualisations de la distribution de chaque classe selon l'image choisie."
|
| 434 |
)
|
|
|
|
| 451 |
],
|
| 452 |
)
|
| 453 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 454 |
with gr.Tab("Data Augmentation"):
|
| 455 |
gr.Markdown("## Visualisation de l'augmentation de données")
|
| 456 |
gr.Markdown(
|
|
|
|
| 493 |
outputs=augmented_image,
|
| 494 |
)
|
| 495 |
|
| 496 |
+
with gr.Tab("Prédictions"):
|
| 497 |
+
gr.Markdown("## Comparaison de segmentation d'images Cityscapes")
|
| 498 |
+
gr.Markdown(
|
| 499 |
+
"### Sélectionnez une image pour voir la comparaison entre le masque réel, la prédiction FPN (pré-enregistré) et la prédiction de SegFormer."
|
| 500 |
+
)
|
| 501 |
+
|
| 502 |
+
image_input = gr.Dropdown(choices=image_list, label="Sélectionnez une image")
|
| 503 |
+
|
| 504 |
+
gallery_output = gr.Gallery(
|
| 505 |
+
label="Résultats de segmentation",
|
| 506 |
+
show_label=True,
|
| 507 |
+
elem_id="gallery",
|
| 508 |
+
columns=[2],
|
| 509 |
+
rows=[2],
|
| 510 |
+
object_fit="contain",
|
| 511 |
+
height="512px",
|
| 512 |
+
min_width="1024px",
|
| 513 |
+
)
|
| 514 |
+
|
| 515 |
+
image_input.change(fn=process_image, inputs=image_input, outputs=gallery_output)
|
| 516 |
+
|
| 517 |
+
with gr.Tab("Explication SegFormer"):
|
| 518 |
+
gr.Markdown("## Explication du modèle SegFormer")
|
| 519 |
+
gr.Markdown(
|
| 520 |
+
"### La méthode Grad-CAM est une technique populaire de visualisation qui est utile pour comprendre comment un réseau neuronal convolutif a été conduit à prendre une décision de classification. Elle est spécifique à chaque classe, ce qui signifie qu’elle peut produire une visualisation distincte pour chaque classe présente dans l’image."
|
| 521 |
+
)
|
| 522 |
+
gr.Markdown(
|
| 523 |
+
"### NB: Si l'image s'affiche sans masque, c'est que le modèle ne trouve pas de zones significatives pour une catégorie donnée."
|
| 524 |
+
)
|
| 525 |
+
|
| 526 |
+
with gr.Row():
|
| 527 |
+
explain_image_input = gr.Dropdown(
|
| 528 |
+
choices=image_list, label="Sélectionnez une image"
|
| 529 |
+
)
|
| 530 |
+
explain_category_input = gr.Dropdown(
|
| 531 |
+
choices=category_list, label="Sélectionnez une catégorie"
|
| 532 |
+
)
|
| 533 |
+
|
| 534 |
+
explain_button = gr.Button("Expliquer")
|
| 535 |
+
explain_output = gr.Plot(label="Explication SegFormer", min_width=200)
|
| 536 |
+
explain_button.click(
|
| 537 |
+
fn=explain_model,
|
| 538 |
+
inputs=[explain_image_input, explain_category_input],
|
| 539 |
+
outputs=explain_output,
|
| 540 |
+
)
|
| 541 |
+
|
| 542 |
|
| 543 |
# Lancer l'application
|
| 544 |
demo.launch(favicon_path="static/favicon.ico", share=True)
|