def visualize_one_sample(self, old_points, expand_points, gt_box_3d, prop_box_3d, box2d_center_rect): import mayavi.mlab as mlab from mayavi_utils import draw_lidar, draw_lidar_simple, draw_gt_boxes3d # fig = draw_lidar(pc_in_prop_box, pts_color=(1,1,1)) fig = draw_lidar(expand_points[:, :3], pts_color=(1, 1, 1)) fig = draw_lidar(old_points[:, :3], pts_color=(0, 1, 0), fig=fig) fig = draw_gt_boxes3d([gt_box_3d], fig, color=(1, 0, 0)) fig = draw_gt_boxes3d([prop_box_3d], fig, draw_text=False, color=(1, 1, 1)) # roi_feature_map # roi_features_size = 7 * 7 * 32 # img_roi_features = prop.roi_features[0:roi_features_size].reshape((7, 7, -1)) # bev_roi_features = prop.roi_features[roi_features_size:].reshape((7, 7, -1)) # img_roi_features = np.amax(img_roi_features, axis=-1) # bev_roi_features = np.amax(bev_roi_features, axis=-1) # fig1 = mlab.figure(figure=None, bgcolor=(0,0,0), # fgcolor=None, engine=None, size=(500, 500)) # fig2 = mlab.figure(figure=None, bgcolor=(0,0,0), # fgcolor=None, engine=None, size=(500, 500)) # mlab.imshow(img_roi_features, colormap='gist_earth', name='img_roi_features', figure=fig1) # mlab.imshow(bev_roi_features, colormap='gist_earth', name='bev_roi_features', figure=fig2) mlab.plot3d([0, box2d_center_rect[0][0]], [0, box2d_center_rect[0][1]], [0, box2d_center_rect[0][2]], color=(1, 1, 1), tube_radius=None, figure=fig) raw_input()
def visualize_proposals(self, pc_rect, prop_boxes, neg_boxes, gt_boxes, pc_seg=None): import mayavi.mlab as mlab from mayavi_utils import draw_lidar, draw_gt_boxes3d fig = draw_lidar(pc_rect) if pc_seg: fig = draw_lidar(pc_rect[pc_seg==1], fig=fig, pts_color=(1, 1, 1)) fig = draw_gt_boxes3d(prop_boxes, fig, draw_text=False, color=(1, 0, 0)) fig = draw_gt_boxes3d(neg_boxes, fig, draw_text=False, color=(0, 1, 0)) fig = draw_gt_boxes3d(gt_boxes, fig, draw_text=False, color=(1, 1, 1)) raw_input()
def viz_frame(self, pc_rect, mask, gt_boxes): import mayavi.mlab as mlab from mayavi_utils import draw_lidar, draw_lidar_simple, draw_gt_boxes3d fig = draw_lidar(pc_rect) fig = draw_lidar(pc_rect[mask == 1], fig=fig, pts_color=(1, 1, 1)) fig = draw_gt_boxes3d(gt_boxes, fig, draw_text=False, color=(1, 1, 1)) raw_input()
def visualize(dataset, frame_id, prediction, seg_mask=None, show_3d=False, output_dir=None): fig_size = (12.42, 3.75) is_video = type(dataset).__name__ == 'kitti_object_video' # pred_fig, pred_2d_axes, pred_3d_axes = \ # vis_utils.visualization(dataset.image_dir, # int(frame_id), # display=False, # fig_size=fig_size) pred_fig, pred_3d_axes = vis_utils.visualize_single_plot(dataset.image_dir, int(frame_id), is_video, flipped=False, display=False, fig_size=fig_size) calib = dataset.get_calibration(frame_id) # 3 by 4 matrix # 2d visualization # draw groundtruth # labels = dataset.get_label_objects(frame_id) # labels = filter(lambda obj: obj.type in type_whitelist and obj.difficulty in difficulties_whitelist, labels) # draw_boxes(labels, calib, pred_2d_axes) # draw prediction on second image pred_corners = draw_boxes(prediction, calib, pred_3d_axes) if output_dir: filename = os.path.join(output_dir, 'result_2d_image/%06d.png' % frame_id) plt.savefig(filename) plt.close(pred_fig) else: plt.show() raw_input() if seg_mask is not None: img = dataset.get_image(frame_id) img = cv2.resize(img, (1200, 360)) seg_img = add_mask_to_img(img, seg_mask) filename = os.path.join(output_dir, 'result_seg_image/%06d.png' % frame_id) cv2.imwrite(filename, seg_img) if show_3d: # 3d visualization pc_velo = dataset.get_lidar(frame_id) image = dataset.get_image(frame_id) img_height, img_width = image.shape[0:2] _, _, img_fov_inds = get_lidar_in_image_fov(pc_velo[:, 0:3], calib, 0, 0, img_width, img_height, True) pc_velo = pc_velo[img_fov_inds, :] boxes3d_velo = [] mask = np.zeros((len(pc_velo), )) for corners in pred_corners: pts_velo = calib.project_rect_to_velo(corners) boxes3d_velo.append(pts_velo) _, obj_mask = extract_pc_in_box3d(pc_velo, pts_velo) mask = np.logical_or(mask, obj_mask) fig = draw_lidar(pc_velo, pts_color=(1, 1, 1)) fig = draw_lidar(pc_velo[mask == 1], fig=fig, pts_color=(1, 0, 0)) fig = draw_gt_boxes3d(boxes3d_velo, fig, draw_text=False, color=(1, 1, 1)) # raw_input() if output_dir: filename = os.path.join(output_dir, 'result_3d_image/%06d.png' % frame_id) mlab.savefig(filename, figure=fig)