consider corner cases on gest
Browse files- handcrafted_solution.py +3 -0
handcrafted_solution.py
CHANGED
|
@@ -760,6 +760,8 @@ def prune_tall_short(all_3d_vertices, connections_3d, prune_tall_thr=1000, prune
|
|
| 760 |
def clean_gest(gest_seg_np):
|
| 761 |
bg_color = np.array(gestalt_color_mapping['unclassified'])
|
| 762 |
bg_mask = cv2.inRange(gest_seg_np, bg_color-10, bg_color+10)
|
|
|
|
|
|
|
| 763 |
fg_mask = cv2.bitwise_not(bg_mask)
|
| 764 |
if fg_mask.sum() > 0:
|
| 765 |
output = cv2.connectedComponentsWithStats(fg_mask, 8, cv2.CV_32S)
|
|
@@ -814,6 +816,7 @@ def predict(entry, visualize=False, prune_dist_thr=600, depth_scale=2.5, ) -> Tu
|
|
| 814 |
XYZ = np.stack([p.xyz for p in points3D.values()])
|
| 815 |
rgb = np.stack([p.rgb for p in points3D.values()])
|
| 816 |
XYZ, rgb = clean_PCD(XYZ, rgb)
|
|
|
|
| 817 |
vert_edge_per_image = {}
|
| 818 |
for i, (ade, gest, depth, K, R, t) in enumerate(zip(
|
| 819 |
good_entry['ade20k'],
|
|
|
|
| 760 |
def clean_gest(gest_seg_np):
|
| 761 |
bg_color = np.array(gestalt_color_mapping['unclassified'])
|
| 762 |
bg_mask = cv2.inRange(gest_seg_np, bg_color-10, bg_color+10)
|
| 763 |
+
if bg_mask.sum() == 0 or bg_mask.sum() == gest_seg_np.shape[0]*gest_seg_np.shape[1]:
|
| 764 |
+
return gest_seg_np
|
| 765 |
fg_mask = cv2.bitwise_not(bg_mask)
|
| 766 |
if fg_mask.sum() > 0:
|
| 767 |
output = cv2.connectedComponentsWithStats(fg_mask, 8, cv2.CV_32S)
|
|
|
|
| 816 |
XYZ = np.stack([p.xyz for p in points3D.values()])
|
| 817 |
rgb = np.stack([p.rgb for p in points3D.values()])
|
| 818 |
XYZ, rgb = clean_PCD(XYZ, rgb)
|
| 819 |
+
del points3D
|
| 820 |
vert_edge_per_image = {}
|
| 821 |
for i, (ade, gest, depth, K, R, t) in enumerate(zip(
|
| 822 |
good_entry['ade20k'],
|