gatesla commited on
Commit
bd93c04
·
1 Parent(s): 1857544

Still trying to understand how it is split

Browse files
Files changed (1) hide show
  1. understand.py +48 -0
understand.py CHANGED
@@ -4,6 +4,7 @@ import torch
4
  import pathlib
5
  import numpy as np
6
  from PIL import Image
 
7
 
8
  from transformers import DetrFeatureExtractor, DetrForSegmentation, MaskFormerImageProcessor, MaskFormerForInstanceSegmentation
9
  # from transformers.models.detr.feature_extraction_detr import rgb_to_id
@@ -214,6 +215,53 @@ array([[False, False, False, ..., False, False, False],
214
  """
215
 
216
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  """
218
  import cv2 as cv
219
  contours, hierarchy = cv.findContours(visual_mask, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)
 
4
  import pathlib
5
  import numpy as np
6
  from PIL import Image
7
+ import cv2 as cv
8
 
9
  from transformers import DetrFeatureExtractor, DetrForSegmentation, MaskFormerImageProcessor, MaskFormerForInstanceSegmentation
10
  # from transformers.models.detr.feature_extraction_detr import rgb_to_id
 
215
  """
216
 
217
 
218
+ def contour_map(map_to_use, label_id):
219
+ """
220
+ map_to_use: You have to pass in `results["segmentation"]`
221
+ """
222
+ if torch.cuda.is_available():
223
+ mask = (map_to_use.cpu().numpy() == label_id)
224
+ else:
225
+ mask = (map_to_use.numpy() == label_id)
226
+
227
+ visual_mask = (mask* 255).astype(np.uint8)
228
+
229
+ """
230
+ >>> mask = (results["segmentation"].cpu().numpy() == 1)
231
+ >>> visual_mask = (mask* 255).astype(np.uint8)
232
+ >>> import cv2 as cv
233
+ >>> contours, hierarchy = cv.findContours(visual_mask, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)
234
+ >>> contours.shape
235
+ Traceback (most recent call last):
236
+ File "<stdin>", line 1, in <module>
237
+ AttributeError: 'tuple' object has no attribute 'shape'
238
+ >>> contours[0].shape
239
+ (7, 1, 2)
240
+ >>> shrunk = contours[0][:, 0, :]
241
+ >>> shrunk
242
+ array([[400, 340],
243
+ [399, 341],
244
+ [400, 342],
245
+ [401, 342],
246
+ [402, 341],
247
+ [403, 341],
248
+ [402, 340]], dtype=int32)
249
+ >>> get_coordinates_for_bb_simple(results["segmentation"], 1)
250
+ ((300, 399), (392, 538))
251
+ >>> shrunk = contours[1][:, 0, :]
252
+ >>> max(shrunk[:, 0])
253
+ 538
254
+ >>> min(shrunk[:, 0])
255
+ 409
256
+ >>> min(shrunk[:, 1])
257
+ 300
258
+ >>> max(shrunk[:, 1])
259
+ 392
260
+ >>>
261
+ """
262
+
263
+
264
+
265
  """
266
  import cv2 as cv
267
  contours, hierarchy = cv.findContours(visual_mask, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)