BenK0y commited on
Commit
d481956
·
verified ·
1 Parent(s): 8ef58cd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +3 -29
app.py CHANGED
@@ -78,40 +78,14 @@ def generate_gemini_response(input_prompt, image):
78
 
79
  # Object detection part
80
  def detect_objects(image):
81
- # Ensure the image is in RGB mode
82
- if image.mode != "RGB":
83
- image = image.convert("RGB")
84
-
85
- # Convert the image to a numpy array
86
- image_np = np.array(image)
87
-
88
- # Load the processor and model
89
  processor = DetrImageProcessor.from_pretrained("facebook/detr-resnet-50", revision="no_timm")
90
  model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", revision="no_timm")
91
-
92
- # Process the image for detection
93
- inputs = processor(images=image_np, return_tensors="pt")
94
  outputs = model(**inputs)
95
 
96
  target_sizes = torch.tensor([image.size[::-1]])
97
- results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.9)[0]
98
-
99
- detected_cars = []
100
- draw = ImageDraw.Draw(image)
101
-
102
- # Loop through detections and filter only "car" class (ID 3 for COCO dataset)
103
- for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
104
- if model.config.id2label[label.item()] == 'car' and score.item() > 0.9:
105
- box = [round(i, 2) for i in box.tolist()]
106
- # Crop the detected car
107
- cropped_car = image.crop(box)
108
- # Convert the cropped image to bytes
109
- cropped_car_bytes = image_to_bytes(cropped_car)
110
- detected_cars.append((cropped_car_bytes, box))
111
-
112
- # Draw bounding box around the car
113
- draw.rectangle(box, outline="red", width=3)
114
- draw.text((box[0], box[1]), f"Car: {round(score.item(), 2)}", fill="red")
115
 
116
  return image, detected_cars
117
 
 
78
 
79
  # Object detection part
80
  def detect_objects(image):
 
 
 
 
 
 
 
 
81
  processor = DetrImageProcessor.from_pretrained("facebook/detr-resnet-50", revision="no_timm")
82
  model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", revision="no_timm")
83
+
84
+ inputs = processor(images=image, return_tensors="pt")
85
+
86
  outputs = model(**inputs)
87
 
88
  target_sizes = torch.tensor([image.size[::-1]])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
 
90
  return image, detected_cars
91