Brightsun10 commited on
Commit
e7f85d8
·
verified ·
1 Parent(s): 903dc87

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -16
app.py CHANGED
@@ -114,28 +114,27 @@ def predict(input_image):
114
 
115
  # Filter results by score and class
116
  segments_info = []
117
- scores = result['scores'].cpu().numpy()
118
- labels = result['labels'].cpu().numpy()
119
- masks = result['masks'].cpu().numpy()
120
-
121
- # Get bounding boxes from masks
122
- for i in range(len(scores)):
123
- score = scores[i]
124
- label_id = labels[i]
125
  label_name = model.config.id2label[label_id]
126
 
127
- # Filter out low-confidence scores and unwanted classes
128
  if score > 0.9 and label_name in TARGET_CLASSES:
129
- mask = masks[i]
130
-
 
131
  # Calculate bounding box from mask
132
  pos = np.where(mask)
133
- if pos[0].size > 0 and pos[1].size > 0: # Ensure mask is not empty
134
  xmin = np.min(pos[1])
135
  xmax = np.max(pos[1])
136
  ymin = np.min(pos[0])
137
  ymax = np.max(pos[0])
138
-
139
  segments_info.append({
140
  "score": score,
141
  "label": label_name,
@@ -158,9 +157,21 @@ def predict(input_image):
158
  # Load some example images
159
  # Note: You must upload these images to your Hugging Face Space repository in a folder named 'examples'
160
  example_paths = [
161
- "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/cats-vs-dogs.png",
162
- "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/instance-segmentation-input.jpg",
163
- "https://placehold.co/800x600/FFF/333?text=A+busy+street+scene", # Corrected URL (removed space)
 
 
 
 
 
 
 
 
 
 
 
 
164
  ]
165
 
166
 
 
114
 
115
  # Filter results by score and class
116
  segments_info = []
117
+ segmentation = result["segmentation"].cpu().numpy()
118
+ segments_info_raw = result["segments_info"]
119
+
120
+ for segment in segments_info_raw:
121
+ score = segment["score"]
122
+ label_id = segment["label_id"]
123
+ segment_id = segment["id"]
 
124
  label_name = model.config.id2label[label_id]
125
 
 
126
  if score > 0.9 and label_name in TARGET_CLASSES:
127
+ # Create a binary mask for this segment
128
+ mask = (segmentation == segment_id)
129
+
130
  # Calculate bounding box from mask
131
  pos = np.where(mask)
132
+ if pos[0].size > 0 and pos[1].size > 0:
133
  xmin = np.min(pos[1])
134
  xmax = np.max(pos[1])
135
  ymin = np.min(pos[0])
136
  ymax = np.max(pos[0])
137
+
138
  segments_info.append({
139
  "score": score,
140
  "label": label_name,
 
157
  # Load some example images
158
  # Note: You must upload these images to your Hugging Face Space repository in a folder named 'examples'
159
  example_paths = [
160
+ "examples/street1.jpeg",
161
+ "examples/street2.jpeg",
162
+ "examples/street3.jpeg",
163
+ "examples/street4.jpeg",
164
+ "examples/street5.jpeg",
165
+ "examples/street6.jpeg",
166
+ "examples/street7.jpeg",
167
+ "examples/street8.jpeg",
168
+ "examples/street9.jpeg",
169
+ "examples/street10.jpeg",
170
+ "examples/catsanddogs1.jpeg",
171
+ "examples/catsanddogs2.jpeg",
172
+ "examples/catsanddogs3.jpeg",
173
+ "examples/catsanddogs4.jpeg",
174
+ "examples/catsanddogs5.jpeg",
175
  ]
176
 
177