Ayesha-Majeed commited on
Commit
6d32870
·
verified ·
1 Parent(s): 855717d

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -28
app.py CHANGED
@@ -647,11 +647,11 @@ with gr.Blocks(theme=theme, title="Car Window Segmentation") as demo:
647
  **Custom Trained Models:**
648
 
649
  1. SegFormer
650
- 2. YOLO11x-seg
651
- 3. YOLOv8x-seg
652
- 4. Mask R-CNN
653
- 5. BiRefNet
654
- 6. SegFormer + Morphological
655
  7. SAM + YOLO (Strategy 1: Bbox + 5 Points)
656
  8. SAM + YOLO (Strategy 2: Mask + 5 Points)
657
  9. SAM + YOLO (Strategy 3: Direct Mask Prompting)
@@ -687,40 +687,40 @@ with gr.Blocks(theme=theme, title="Car Window Segmentation") as demo:
687
  seq_segf_stats = gr.Textbox(label="SegFormer Stats", interactive=False)
688
 
689
  gr.Markdown("---")
690
- gr.Markdown("### 2️⃣ YOLO11x-seg")
 
 
 
 
 
 
 
691
  with gr.Row():
692
  seq_yolo11_img = gr.Image(label="YOLO11x Overlay", interactive=False)
693
  seq_yolo11_bw = gr.Image(label="YOLO11x Binary Mask", interactive=False, image_mode="L")
694
  seq_yolo11_stats = gr.Textbox(label="YOLO11x Stats", interactive=False)
695
 
696
  gr.Markdown("---")
697
- gr.Markdown("### 3️⃣ YOLOv8x-seg")
698
  with gr.Row():
699
  seq_yolo_img = gr.Image(label="YOLO Overlay", interactive=False)
700
  seq_yolo_bw = gr.Image(label="YOLO Binary Mask", interactive=False, image_mode="L")
701
  seq_yolo_stats = gr.Textbox(label="YOLO Stats", interactive=False)
702
 
703
  gr.Markdown("---")
704
- gr.Markdown("### 4️⃣ Mask R-CNN (ResNet50-FPN)")
705
  with gr.Row():
706
  seq_mrcnn_img = gr.Image(label="Mask R-CNN Overlay", interactive=False)
707
  seq_mrcnn_bw = gr.Image(label="Mask R-CNN Binary Mask", interactive=False, image_mode="L")
708
  seq_mrcnn_stats = gr.Textbox(label="Mask R-CNN Stats", interactive=False)
709
 
710
  gr.Markdown("---")
711
- gr.Markdown("### 5️⃣ BiRefNet (Boundary-Aware Model)")
712
  with gr.Row():
713
  seq_biref_img = gr.Image(label="BiRefNet Overlay", interactive=False)
714
  seq_biref_bw = gr.Image(label="BiRefNet Binary Mask", interactive=False, image_mode="L")
715
  seq_biref_stats = gr.Textbox(label="BiRefNet Stats", interactive=False)
716
 
717
- gr.Markdown("---")
718
- gr.Markdown("### 6️⃣ SegFormer + Morphological Cleanup (Holes Filled + Sharp Borders)")
719
- with gr.Row():
720
- seq_segf_morph_img = gr.Image(label="SegFormer + Morph Overlay", interactive=False)
721
- seq_segf_morph_bw = gr.Image(label="SegFormer + Morph Binary Mask", interactive=False, image_mode="L")
722
- seq_segf_morph_stats = gr.Textbox(label="SegFormer + Morph Stats", interactive=False)
723
-
724
  gr.Markdown("---")
725
  gr.Markdown("### 7️⃣ SAM + YOLO (Strategy 1: Bbox + 5 Points)")
726
  with gr.Row():
@@ -770,31 +770,36 @@ with gr.Blocks(theme=theme, title="Car Window Segmentation") as demo:
770
  yield tuple([None]*36)
771
  return
772
 
773
- # Initialize empty array for all 36 outputs
 
774
  results = [None] * 36
 
 
 
 
775
 
776
  # 1. SegFormer
777
  results[0], results[1], results[2] = run_segformer(img, morph_cleanup=False)
778
  yield tuple(results)
779
 
780
- # 2. YOLO11x-seg
781
- results[3], results[4], results[5] = process_image(img, "YOLO11x-seg", "", False)
782
  yield tuple(results)
783
 
784
- # 3. YOLOv8x-seg
785
- results[6], results[7], results[8] = process_image(img, "YOLOv8x-seg", "", False)
786
  yield tuple(results)
787
 
788
- # 4. Mask R-CNN
789
- results[9], results[10], results[11] = process_image(img, "Mask R-CNN", "", False)
790
  yield tuple(results)
791
 
792
- # 5. BiRefNet
793
- results[12], results[13], results[14] = run_birefnet(img)
794
  yield tuple(results)
795
 
796
- # 6. SegFormer + Morphology
797
- results[15], results[16], results[17] = run_segformer(img, morph_cleanup=True)
798
  yield tuple(results)
799
 
800
  # 7. SAM + YOLO Strat 1
@@ -825,11 +830,11 @@ with gr.Blocks(theme=theme, title="Car Window Segmentation") as demo:
825
  fn=run_all_models,
826
  inputs=[input_image_seq],
827
  outputs=[seq_segf_img, seq_segf_bw, seq_segf_stats,
 
828
  seq_yolo11_img, seq_yolo11_bw, seq_yolo11_stats,
829
  seq_yolo_img, seq_yolo_bw, seq_yolo_stats,
830
  seq_mrcnn_img, seq_mrcnn_bw, seq_mrcnn_stats,
831
  seq_biref_img, seq_biref_bw, seq_biref_stats,
832
- seq_segf_morph_img, seq_segf_morph_bw, seq_segf_morph_stats,
833
  seq_sam1_img, seq_sam1_bw, seq_sam1_stats,
834
  seq_sam2_img, seq_sam2_bw, seq_sam2_stats,
835
  seq_sam3_img, seq_sam3_bw, seq_sam3_stats,
 
647
  **Custom Trained Models:**
648
 
649
  1. SegFormer
650
+ 2. SegFormer + Morphological
651
+ 3. YOLO11x-seg
652
+ 4. YOLOv8x-seg
653
+ 5. Mask R-CNN
654
+ 6. BiRefNet
655
  7. SAM + YOLO (Strategy 1: Bbox + 5 Points)
656
  8. SAM + YOLO (Strategy 2: Mask + 5 Points)
657
  9. SAM + YOLO (Strategy 3: Direct Mask Prompting)
 
687
  seq_segf_stats = gr.Textbox(label="SegFormer Stats", interactive=False)
688
 
689
  gr.Markdown("---")
690
+ gr.Markdown("### 2️⃣ SegFormer + Morphological Cleanup (Holes Filled + Sharp Borders)")
691
+ with gr.Row():
692
+ seq_segf_morph_img = gr.Image(label="SegFormer + Morph Overlay", interactive=False)
693
+ seq_segf_morph_bw = gr.Image(label="SegFormer + Morph Binary Mask", interactive=False, image_mode="L")
694
+ seq_segf_morph_stats = gr.Textbox(label="SegFormer + Morph Stats", interactive=False)
695
+
696
+ gr.Markdown("---")
697
+ gr.Markdown("### 3️⃣ YOLO11x-seg")
698
  with gr.Row():
699
  seq_yolo11_img = gr.Image(label="YOLO11x Overlay", interactive=False)
700
  seq_yolo11_bw = gr.Image(label="YOLO11x Binary Mask", interactive=False, image_mode="L")
701
  seq_yolo11_stats = gr.Textbox(label="YOLO11x Stats", interactive=False)
702
 
703
  gr.Markdown("---")
704
+ gr.Markdown("### 4️⃣ YOLOv8x-seg")
705
  with gr.Row():
706
  seq_yolo_img = gr.Image(label="YOLO Overlay", interactive=False)
707
  seq_yolo_bw = gr.Image(label="YOLO Binary Mask", interactive=False, image_mode="L")
708
  seq_yolo_stats = gr.Textbox(label="YOLO Stats", interactive=False)
709
 
710
  gr.Markdown("---")
711
+ gr.Markdown("### 5️⃣ Mask R-CNN (ResNet50-FPN)")
712
  with gr.Row():
713
  seq_mrcnn_img = gr.Image(label="Mask R-CNN Overlay", interactive=False)
714
  seq_mrcnn_bw = gr.Image(label="Mask R-CNN Binary Mask", interactive=False, image_mode="L")
715
  seq_mrcnn_stats = gr.Textbox(label="Mask R-CNN Stats", interactive=False)
716
 
717
  gr.Markdown("---")
718
+ gr.Markdown("### 6️⃣ BiRefNet (Boundary-Aware Model)")
719
  with gr.Row():
720
  seq_biref_img = gr.Image(label="BiRefNet Overlay", interactive=False)
721
  seq_biref_bw = gr.Image(label="BiRefNet Binary Mask", interactive=False, image_mode="L")
722
  seq_biref_stats = gr.Textbox(label="BiRefNet Stats", interactive=False)
723
 
 
 
 
 
 
 
 
724
  gr.Markdown("---")
725
  gr.Markdown("### 7️⃣ SAM + YOLO (Strategy 1: Bbox + 5 Points)")
726
  with gr.Row():
 
770
  yield tuple([None]*36)
771
  return
772
 
773
+ # ── Step 0: Show "Processing..." in ALL textboxes immediately ──
774
+ PENDING = "⏳ Processing..."
775
  results = [None] * 36
776
+ # Set all stats textboxes to pending state
777
+ for i in [2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35]:
778
+ results[i] = PENDING
779
+ yield tuple(results)
780
 
781
  # 1. SegFormer
782
  results[0], results[1], results[2] = run_segformer(img, morph_cleanup=False)
783
  yield tuple(results)
784
 
785
+ # 2. SegFormer + Morphology
786
+ results[3], results[4], results[5] = run_segformer(img, morph_cleanup=True)
787
  yield tuple(results)
788
 
789
+ # 3. YOLO11x-seg
790
+ results[6], results[7], results[8] = process_image(img, "YOLO11x-seg", "", False)
791
  yield tuple(results)
792
 
793
+ # 4. YOLOv8x-seg
794
+ results[9], results[10], results[11] = process_image(img, "YOLOv8x-seg", "", False)
795
  yield tuple(results)
796
 
797
+ # 5. Mask R-CNN
798
+ results[12], results[13], results[14] = process_image(img, "Mask R-CNN", "", False)
799
  yield tuple(results)
800
 
801
+ # 6. BiRefNet
802
+ results[15], results[16], results[17] = run_birefnet(img)
803
  yield tuple(results)
804
 
805
  # 7. SAM + YOLO Strat 1
 
830
  fn=run_all_models,
831
  inputs=[input_image_seq],
832
  outputs=[seq_segf_img, seq_segf_bw, seq_segf_stats,
833
+ seq_segf_morph_img, seq_segf_morph_bw, seq_segf_morph_stats,
834
  seq_yolo11_img, seq_yolo11_bw, seq_yolo11_stats,
835
  seq_yolo_img, seq_yolo_bw, seq_yolo_stats,
836
  seq_mrcnn_img, seq_mrcnn_bw, seq_mrcnn_stats,
837
  seq_biref_img, seq_biref_bw, seq_biref_stats,
 
838
  seq_sam1_img, seq_sam1_bw, seq_sam1_stats,
839
  seq_sam2_img, seq_sam2_bw, seq_sam2_stats,
840
  seq_sam3_img, seq_sam3_bw, seq_sam3_stats,