Load points from multiple sweeps. This is usually used for nuScenes dataset to utilize previous sweeps. Args: sweeps_num (int): Number of sweeps. Defaults to 10. load_dim (int): Dimension number of the loaded points. Defaults to 5. use_dim (list[int]): Which dimensi
| 515 | |
| 516 | @PIPELINES.register_module() |
| 517 | class LoadPointsFromMultiSweeps(object): |
| 518 | """Load points from multiple sweeps. |
| 519 | |
| 520 | This is usually used for nuScenes dataset to utilize previous sweeps. |
| 521 | |
| 522 | Args: |
| 523 | sweeps_num (int): Number of sweeps. Defaults to 10. |
| 524 | load_dim (int): Dimension number of the loaded points. Defaults to 5. |
| 525 | use_dim (list[int]): Which dimension to use. Defaults to [0, 1, 2, 4]. |
| 526 | file_client_args (dict): Config dict of file clients, refer to |
| 527 | https://github.com/open-mmlab/mmcv/blob/master/mmcv/fileio/file_client.py |
| 528 | for more details. Defaults to dict(backend='disk'). |
| 529 | pad_empty_sweeps (bool): Whether to repeat keyframe when |
| 530 | sweeps is empty. Defaults to False. |
| 531 | remove_close (bool): Whether to remove close points. |
| 532 | Defaults to False. |
| 533 | test_mode (bool): If test_model=True used for testing, it will not |
| 534 | randomly sample sweeps but select the nearest N frames. |
| 535 | Defaults to False. |
| 536 | """ |
| 537 | |
| 538 | def __init__(self, |
| 539 | sweeps_num=10, |
| 540 | load_dim=5, |
| 541 | use_dim=[0, 1, 2, 4], |
| 542 | file_client_args=dict(backend='disk'), |
| 543 | pad_empty_sweeps=False, |
| 544 | remove_close=False, |
| 545 | test_mode=False, |
| 546 | point_cloud_angle_range=None): |
| 547 | self.load_dim = load_dim |
| 548 | self.sweeps_num = sweeps_num |
| 549 | self.use_dim = use_dim |
| 550 | self.file_client_args = file_client_args.copy() |
| 551 | self.file_client = None |
| 552 | self.pad_empty_sweeps = pad_empty_sweeps |
| 553 | self.remove_close = remove_close |
| 554 | self.test_mode = test_mode |
| 555 | |
| 556 | if point_cloud_angle_range is not None: |
| 557 | self.filter_by_angle = True |
| 558 | self.point_cloud_angle_range = point_cloud_angle_range |
| 559 | print(point_cloud_angle_range) |
| 560 | else: |
| 561 | self.filter_by_angle = False |
| 562 | # self.point_cloud_angle_range = point_cloud_angle_range |
| 563 | |
| 564 | def _load_points(self, pts_filename): |
| 565 | """Private function to load point clouds data. |
| 566 | |
| 567 | Args: |
| 568 | pts_filename (str): Filename of point clouds data. |
| 569 | |
| 570 | Returns: |
| 571 | np.ndarray: An array containing point clouds data. |
| 572 | """ |
| 573 | if self.file_client is None: |
| 574 | self.file_client = mmcv.FileClient(**self.file_client_args) |
no outgoing calls