MCPcopy Create free account
hub / github.com/cxmomo/RaCFormer / LoadMultiViewImageFromMultiSweeps

Class LoadMultiViewImageFromMultiSweeps

loaders/pipelines/loading.py:599–725  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

597
598@PIPELINES.register_module()
599class LoadMultiViewImageFromMultiSweeps(object):
600 def __init__(self,
601 sweeps_num=5,
602 color_type='color',
603 test_mode=False):
604 self.sweeps_num = sweeps_num
605 self.color_type = color_type
606 self.test_mode = test_mode
607
608 self.train_interval = [4, 8]
609 self.test_interval = 6
610
611 try:
612 mmcv.use_backend('turbojpeg')
613 except ImportError:
614 mmcv.use_backend('cv2')
615
616 def load_offline(self, results):
617 cam_types = [
618 'CAM_FRONT', 'CAM_FRONT_RIGHT', 'CAM_FRONT_LEFT',
619 'CAM_BACK', 'CAM_BACK_LEFT', 'CAM_BACK_RIGHT'
620 ]
621
622 if len(results['sweeps']['prev']) == 0:
623 for _ in range(self.sweeps_num):
624 for j in range(len(cam_types)):
625 results['img'].append(results['img'][j])
626 results['img_timestamp'].append(results['img_timestamp'][j])
627 results['filename'].append(results['filename'][j])
628 results['lidar2img'].append(np.copy(results['lidar2img'][j]))
629 results['intrinsics'].append(np.copy(results['intrinsics'][j]))
630 else:
631 if self.test_mode:
632 interval = self.test_interval
633 choices = [(k + 1) * interval - 1 for k in range(self.sweeps_num)]
634 elif len(results['sweeps']['prev']) <= self.sweeps_num:
635 pad_len = self.sweeps_num - len(results['sweeps']['prev'])
636 choices = list(range(len(results['sweeps']['prev']))) + [len(results['sweeps']['prev']) - 1] * pad_len
637 else:
638 max_interval = len(results['sweeps']['prev']) // self.sweeps_num
639 max_interval = min(max_interval, self.train_interval[1])
640 min_interval = min(max_interval, self.train_interval[0])
641 interval = np.random.randint(min_interval, max_interval + 1)
642
643 # interval = 6 # here
644
645 choices = [(k + 1) * interval - 1 for k in range(self.sweeps_num)]
646
647 for idx in sorted(list(choices)):
648 sweep_idx = min(idx, len(results['sweeps']['prev']) - 1)
649 sweep = results['sweeps']['prev'][sweep_idx]
650
651 if len(sweep.keys()) < len(cam_types):
652 sweep = results['sweeps']['prev'][sweep_idx - 1]
653
654 for sensor in cam_types:
655 results['img'].append(mmcv.imread(sweep[sensor]['data_path'], self.color_type))
656 results['img_timestamp'].append(sweep[sensor]['timestamp'] / 1e6)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected