Commit 5e21e428 authored by Shaoshuai Shi's avatar Shaoshuai Shi
Browse files

support to USE_CENTER_TO_FILTER in mask_points_and_boxes_outside_range

parent 6bd8be71
...@@ -86,7 +86,7 @@ class DataProcessor(object): ...@@ -86,7 +86,7 @@ class DataProcessor(object):
if data_dict.get('gt_boxes', None) is not None and config.REMOVE_OUTSIDE_BOXES and self.training: if data_dict.get('gt_boxes', None) is not None and config.REMOVE_OUTSIDE_BOXES and self.training:
mask = box_utils.mask_boxes_outside_range_numpy( mask = box_utils.mask_boxes_outside_range_numpy(
data_dict['gt_boxes'], self.point_cloud_range, min_num_corners=config.get('min_num_corners', 1), data_dict['gt_boxes'], self.point_cloud_range, min_num_corners=config.get('min_num_corners', 1),
filter_z=config.get('FILTER_Z', False) use_center_to_filter=config.get('USE_CENTER_TO_FILTER', True)
) )
data_dict['gt_boxes'] = data_dict['gt_boxes'][mask] data_dict['gt_boxes'] = data_dict['gt_boxes'][mask]
return data_dict return data_dict
......
...@@ -90,7 +90,7 @@ def corners_rect_to_camera(corners): ...@@ -90,7 +90,7 @@ def corners_rect_to_camera(corners):
return camera_rect return camera_rect
def mask_boxes_outside_range_numpy(boxes, limit_range, min_num_corners=1, filter_z=True): def mask_boxes_outside_range_numpy(boxes, limit_range, min_num_corners=1, use_center_to_filter=True):
""" """
Args: Args:
boxes: (N, 7) [x, y, z, dx, dy, dz, heading, ...], (x, y, z) is the box center boxes: (N, 7) [x, y, z, dx, dy, dz, heading, ...], (x, y, z) is the box center
...@@ -102,13 +102,14 @@ def mask_boxes_outside_range_numpy(boxes, limit_range, min_num_corners=1, filter ...@@ -102,13 +102,14 @@ def mask_boxes_outside_range_numpy(boxes, limit_range, min_num_corners=1, filter
""" """
if boxes.shape[1] > 7: if boxes.shape[1] > 7:
boxes = boxes[:, 0:7] boxes = boxes[:, 0:7]
corners = boxes_to_corners_3d(boxes) # (N, 8, 3) if use_center_to_filter:
if filter_z: box_centers = boxes[:, 0:3]
mask = ((corners >= limit_range[0:3]) & (corners <= limit_range[3:6])).all(axis=2) mask = ((box_centers >= limit_range[0:3]) & (box_centers <= limit_range[3:6])).all(axis=-1)
else: else:
corners = boxes_to_corners_3d(boxes) # (N, 8, 3)
corners = corners[:, :, 0:2] corners = corners[:, :, 0:2]
mask = ((corners >= limit_range[0:2]) & (corners <= limit_range[3:5])).all(axis=2) mask = ((corners >= limit_range[0:2]) & (corners <= limit_range[3:5])).all(axis=2)
mask = mask.sum(axis=1) >= min_num_corners # (N) mask = mask.sum(axis=1) >= min_num_corners # (N)
return mask return mask
......
...@@ -62,7 +62,7 @@ POINT_FEATURE_ENCODING: { ...@@ -62,7 +62,7 @@ POINT_FEATURE_ENCODING: {
DATA_PROCESSOR: DATA_PROCESSOR:
- NAME: mask_points_and_boxes_outside_range - NAME: mask_points_and_boxes_outside_range
REMOVE_OUTSIDE_BOXES: True REMOVE_OUTSIDE_BOXES: True
FILTER_Z: False USE_CENTER_TO_FILTER: True
- NAME: shuffle_points - NAME: shuffle_points
SHUFFLE_ENABLED: { SHUFFLE_ENABLED: {
......
...@@ -72,7 +72,7 @@ POINT_FEATURE_ENCODING: { ...@@ -72,7 +72,7 @@ POINT_FEATURE_ENCODING: {
DATA_PROCESSOR: DATA_PROCESSOR:
- NAME: mask_points_and_boxes_outside_range - NAME: mask_points_and_boxes_outside_range
REMOVE_OUTSIDE_BOXES: True REMOVE_OUTSIDE_BOXES: True
FILTER_Z: False USE_CENTER_TO_FILTER: True
- NAME: shuffle_points - NAME: shuffle_points
SHUFFLE_ENABLED: { SHUFFLE_ENABLED: {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment