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

Function visualize_sample_radar

tools/render.py:109–205  ·  view source on GitHub ↗

Visualizes a sample from BEV with annotations and detection results. :param nusc: NuScenes object. :param sample_token: The nuScenes sample token. :param gt_boxes: Ground truth boxes grouped by sample. :param pred_boxes: Prediction grouped by sample. :param nsweeps: Number o

(nusc: NuScenes,
                     sample_token: str,
                     gt_boxes: EvalBoxes,
                     pred_boxes: EvalBoxes,
                     nsweeps: int = 1,
                     conf_th: float = 0.15,
                     eval_range: float = 50,
                     verbose: bool = True,
                     savepath: str = None)

Source from the content-addressed store, hash-verified

107 plt.show()
108
109def visualize_sample_radar(nusc: NuScenes,
110 sample_token: str,
111 gt_boxes: EvalBoxes,
112 pred_boxes: EvalBoxes,
113 nsweeps: int = 1,
114 conf_th: float = 0.15,
115 eval_range: float = 50,
116 verbose: bool = True,
117 savepath: str = None) -> None:
118 """
119 Visualizes a sample from BEV with annotations and detection results.
120 :param nusc: NuScenes object.
121 :param sample_token: The nuScenes sample token.
122 :param gt_boxes: Ground truth boxes grouped by sample.
123 :param pred_boxes: Prediction grouped by sample.
124 :param nsweeps: Number of sweeps used for lidar visualization.
125 :param conf_th: The confidence threshold used to filter negatives.
126 :param eval_range: Range in meters beyond which boxes are ignored.
127 :param verbose: Whether to print to stdout.
128 :param savepath: If given, saves the the rendering here instead of displaying.
129 """
130 # Retrieve sensor & pose records.
131 sample_rec = nusc.get('sample', sample_token)
132 ref_sd_record = nusc.get('sample_data', sample_rec['data']['LIDAR_TOP'])
133 cs_record = nusc.get('calibrated_sensor', ref_sd_record['calibrated_sensor_token'])
134 pose_record = nusc.get('ego_pose', ref_sd_record['ego_pose_token'])
135
136 # Get boxes.
137 boxes_gt_global = gt_boxes[sample_token]
138 boxes_est_global = pred_boxes[sample_token]
139
140 # Map GT boxes to lidar.
141 boxes_gt = boxes_to_sensor(boxes_gt_global, pose_record, cs_record)
142
143 # Map EST boxes to lidar.
144 boxes_est = boxes_to_sensor(boxes_est_global, pose_record, cs_record)
145
146 # Add scores to EST boxes.
147 for box_est, box_est_global in zip(boxes_est, boxes_est_global):
148 box_est.score = box_est_global.detection_score
149
150 rad_types = [
151 'RADAR_FRONT', 'RADAR_FRONT_LEFT', 'RADAR_FRONT_RIGHT',
152 'RADAR_BACK_LEFT', 'RADAR_BACK_RIGHT'
153 ]
154
155 points = np.zeros((18,0))
156 new_times = np.zeros((1,0))
157
158 for token in rad_types:
159
160 sd_record = nusc.get('sample_data', sample_rec['data'][token])
161 chan = sd_record['channel']
162
163 pc, times = RadarPointCloud_v2.from_file_multisweep(nusc,
164 sample_rec, sample_rec, chan, 'LIDAR_TOP', nsweeps=nsweeps)
165
166 points = np.concatenate([points, pc.points], axis=1)

Callers 1

lidar_renderFunction · 0.90

Calls 1

from_file_multisweepMethod · 0.80

Tested by

no test coverage detected