DHEIVER commited on
Commit
4498ea8
1 Parent(s): 4fa5671

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -5
app.py CHANGED
@@ -1,7 +1,8 @@
1
  import gradio as gr
2
  import torch
3
  from transformers import AutoFeatureExtractor, AutoModelForImageClassification
4
- from PIL import Image
 
5
 
6
  class ThyroidTumorClassifierApp:
7
  def __init__(self):
@@ -31,17 +32,45 @@ class ThyroidTumorClassifierApp:
31
  # Predicted class label
32
  predicted_label = class_labels[predicted_class]
33
 
34
- # Return the predicted label and probability as plain text
35
- return predicted_label, probabilities[0].tolist()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  def run_interface(self):
38
  # Create a Gradio interface
39
  input_interface = gr.Interface(
40
  fn=self.classify_image,
41
  inputs=gr.inputs.Image(),
42
- outputs=["text", "text"],
43
  title="Tumor da Tireoide Classificação",
44
- description="Faça o upload de uma imagem de um tumor da tireoide para classificação. A saída inclui o rótulo da classe prevista e as probabilidades.",
45
  )
46
 
47
  # Launch the Gradio interface
 
1
  import gradio as gr
2
  import torch
3
  from transformers import AutoFeatureExtractor, AutoModelForImageClassification
4
+ from PIL import Image, ImageDraw, ImageFont
5
+ import numpy as np
6
 
7
  class ThyroidTumorClassifierApp:
8
  def __init__(self):
 
32
  # Predicted class label
33
  predicted_label = class_labels[predicted_class]
34
 
35
+ # Add information to the output image
36
+ output_image_with_info = self.add_info_to_image(image, predicted_label, probabilities)
37
+
38
+ # Return the modified output image as an array
39
+ return output_image_with_info
40
+
41
+ def add_info_to_image(self, image, predicted_label, probabilities):
42
+ # Convert the image to Pillow image format
43
+ image_pil = Image.fromarray(image)
44
+
45
+ # Create a drawing object to add text to the image
46
+ draw = ImageDraw.Draw(image_pil)
47
+
48
+ # Choose the font and text size
49
+ font = ImageFont.truetype("arial.ttf", 20)
50
+
51
+ # Add the predicted class label to the image
52
+ draw.text((10, 10), f"Classe Prevista: {predicted_label}", fill="white", font=font)
53
+
54
+ # Add the probabilities to the image
55
+ for i, prob in enumerate(probabilities):
56
+ y_offset = 40 + i * 30
57
+ class_name = f"Classe {i}:"
58
+ probability = f"{prob:.2f}"
59
+ draw.text((10, y_offset), f"{class_name} {probability}", fill="white", font=font)
60
+
61
+ # Convert back to numpy format
62
+ image_with_info = np.array(image_pil)
63
+
64
+ return image_with_info
65
 
66
  def run_interface(self):
67
  # Create a Gradio interface
68
  input_interface = gr.Interface(
69
  fn=self.classify_image,
70
  inputs=gr.inputs.Image(),
71
+ outputs=gr.outputs.Image(),
72
  title="Tumor da Tireoide Classificação",
73
+ description="Faça o upload de uma imagem de um tumor da tireoide para classificação. A saída inclui o rótulo da classe prevista e as probabilidades com informações adicionais.",
74
  )
75
 
76
  # Launch the Gradio interface