Spaces:
Sleeping
Sleeping
Commit
·
a611015
1
Parent(s):
883b313
Update app.py
Browse files
app.py
CHANGED
@@ -1,7 +1,8 @@
|
|
1 |
import gradio as gr
|
2 |
import tensorflow as tf
|
3 |
import gdown
|
4 |
-
|
|
|
5 |
|
6 |
input_shape = (32, 32, 3)
|
7 |
resized_shape = (224, 224, 3)
|
@@ -41,15 +42,34 @@ def predict_class(image):
|
|
41 |
predicted_class = labels[class_index]
|
42 |
return predicted_class
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
# UI Design
|
45 |
def classify_image(image):
|
46 |
predicted_class = predict_class(image)
|
47 |
-
|
|
|
48 |
|
49 |
inputs = gr.inputs.Image(label="Upload an image")
|
50 |
-
outputs = gr.outputs.Image(label="
|
51 |
|
52 |
-
title = "Image Classifier"
|
53 |
-
description = "Upload an image and get the predicted class."
|
54 |
|
55 |
gr.Interface(fn=classify_image, inputs=inputs, outputs=outputs, title=title, description=description).launch(inline=True)
|
|
|
1 |
import gradio as gr
|
2 |
import tensorflow as tf
|
3 |
import gdown
|
4 |
+
import numpy as np
|
5 |
+
from PIL import Image, ImageDraw
|
6 |
|
7 |
input_shape = (32, 32, 3)
|
8 |
resized_shape = (224, 224, 3)
|
|
|
42 |
predicted_class = labels[class_index]
|
43 |
return predicted_class
|
44 |
|
45 |
+
# Perform object detection
|
46 |
+
def detect_objects(image):
|
47 |
+
img = image.copy()
|
48 |
+
img = tf.image.resize(img, [input_shape[0], input_shape[1]])
|
49 |
+
img = tf.expand_dims(img, axis=0)
|
50 |
+
prediction = model.predict(img)
|
51 |
+
boxes, scores, classes = prediction[0]['detection_boxes'], prediction[0]['detection_scores'], prediction[0]['detection_classes']
|
52 |
+
height, width, _ = img.shape
|
53 |
+
draw = ImageDraw.Draw(image)
|
54 |
+
for box, score, _class in zip(boxes, scores, classes):
|
55 |
+
if score > 0.5:
|
56 |
+
ymin, xmin, ymax, xmax = box
|
57 |
+
left, right, top, bottom = xmin * width, xmax * width, ymin * height, ymax * height
|
58 |
+
draw.rectangle([(left, top), (right, bottom)], outline='red', width=2)
|
59 |
+
draw.text((left, top - 10), labels[int(_class)], fill='red')
|
60 |
+
|
61 |
+
return image
|
62 |
+
|
63 |
# UI Design
|
64 |
def classify_image(image):
|
65 |
predicted_class = predict_class(image)
|
66 |
+
image_with_box = detect_objects(image)
|
67 |
+
return image_with_box, predicted_class
|
68 |
|
69 |
inputs = gr.inputs.Image(label="Upload an image")
|
70 |
+
outputs = gr.outputs.Image(label="Output Image"), gr.outputs.Textbox(label="Predicted Class", live=True)
|
71 |
|
72 |
+
title = "Image Classifier with Object Detection"
|
73 |
+
description = "Upload an image and get the predicted class with object detection."
|
74 |
|
75 |
gr.Interface(fn=classify_image, inputs=inputs, outputs=outputs, title=title, description=description).launch(inline=True)
|