Eric P. Nusbaum commited on
Commit
cb58d33
·
1 Parent(s): 076eeb1

Benchmarking

Browse files
Files changed (1) hide show
  1. app.py +12 -4
app.py CHANGED
@@ -4,6 +4,7 @@ import onnx
4
  import onnxruntime
5
  from PIL import Image, ImageDraw, ImageFont
6
  import gradio as gr
 
7
 
8
  # Constants
9
  PROB_THRESHOLD = 0.5 # Minimum probability to show results
@@ -44,9 +45,15 @@ class Model:
44
  if not self.is_range255:
45
  input_array = input_array / 255.0 # Normalize to [0,1]
46
 
47
- # Run inference
 
48
  outputs = self.session.run(self.output_names, {self.input_name: input_array.astype(self.input_type)})
49
- return {name: outputs[i] for i, name in enumerate(self.output_names)}
 
 
 
 
 
50
 
51
  def draw_boxes(image: Image.Image, outputs: dict):
52
  draw = ImageDraw.Draw(image, "RGBA") # Use RGBA for transparency
@@ -115,7 +122,7 @@ def draw_boxes(image: Image.Image, outputs: dict):
115
  model = Model(MODEL_PATH)
116
 
117
  def detect_objects(image):
118
- outputs = model.predict(image)
119
  annotated_image = draw_boxes(image.copy(), outputs)
120
 
121
  # Prepare detection summary
@@ -131,6 +138,7 @@ def detect_objects(image):
131
  detections.append(f"{label}: {score:.2f}")
132
 
133
  detection_summary = "\n".join(detections) if detections else "No objects detected."
 
134
 
135
  return annotated_image, detection_summary
136
 
@@ -153,4 +161,4 @@ iface = gr.Interface(
153
  )
154
 
155
  if __name__ == "__main__":
156
- iface.launch()
 
4
  import onnxruntime
5
  from PIL import Image, ImageDraw, ImageFont
6
  import gradio as gr
7
+ import time # Import time for benchmarking
8
 
9
  # Constants
10
  PROB_THRESHOLD = 0.5 # Minimum probability to show results
 
45
  if not self.is_range255:
46
  input_array = input_array / 255.0 # Normalize to [0,1]
47
 
48
+ # Run inference with benchmarking
49
+ start_time = time.time() # Start timing
50
  outputs = self.session.run(self.output_names, {self.input_name: input_array.astype(self.input_type)})
51
+ end_time = time.time() # End timing
52
+
53
+ execution_time = (end_time - start_time) * 1000 # Convert to milliseconds
54
+ print(f"Inference time: {execution_time:.2f} ms")
55
+
56
+ return {name: outputs[i] for i, name in enumerate(self.output_names)}, execution_time
57
 
58
  def draw_boxes(image: Image.Image, outputs: dict):
59
  draw = ImageDraw.Draw(image, "RGBA") # Use RGBA for transparency
 
122
  model = Model(MODEL_PATH)
123
 
124
  def detect_objects(image):
125
+ outputs, execution_time = model.predict(image)
126
  annotated_image = draw_boxes(image.copy(), outputs)
127
 
128
  # Prepare detection summary
 
138
  detections.append(f"{label}: {score:.2f}")
139
 
140
  detection_summary = "\n".join(detections) if detections else "No objects detected."
141
+ detection_summary += f"\n\nInference Time: {execution_time:.2f} ms"
142
 
143
  return annotated_image, detection_summary
144
 
 
161
  )
162
 
163
  if __name__ == "__main__":
164
+ iface.launch()