interpolated_common_label = _2common(interpolated_label, from_dataset) # (N1,) interpolated_color = _label_to_colors_by_name(interpolated_label, from_dataset) # (N1, 3) interpolated_common_color = _label_to_colors_by_name( interpolated_common_label, 'common') # (N1, 3) del interpolated_common_label # evaluate interpolation result if ground truth is available raw_label_path = os.path.join(raw_folder, fname_without_ext + '.labels') if from_dataset == to_dataset and os.path.exists(raw_label_path): label_gt = load_labels(raw_label_path) # (N1,) ConfusionMatrix = ConfusionMatrix(num_classes) ConfusionMatrix.increment_from_list(label_gt.flatten(), interpolated_label.flatten()) ConfusionMatrix.print_metrics() label_path = os.path.join(dense_folder, fname_without_ext + '.labels') np.savetxt(label_path, interpolated_label, fmt="%d") del interpolated_label print('writing labels for %s' % fname_without_ext) # output pcd with from_dataset label dense_pcd = open3d.geometry.PointCloud() dense_pcd.points = open3d.utility.Vector3dVector(raw_points) dense_pcd.colors = open3d.utility.Vector3dVector(interpolated_color) del interpolated_color dense_pcd_path = os.path.join( dense_folder, fname_without_ext + '_' + from_dataset + '.pcd') open3d.io.write_point_cloud(dense_pcd_path, dense_pcd) del dense_pcd
sparse_prob = np.array(pd_prob_collector).astype(float).reshape( -1, classes_in_model) # (B*N, num_classes) pd_probs_path = os.path.join(output_dir, file_prefix + ".prob") np.savetxt(pd_probs_path, sparse_prob, fmt="%f") print("Exported sparse probs to {}".format(pd_probs_path)) # save original labels and visulize them with from_dataset labels sparse_labels = np.array(pd_labels_collector).astype( int).flatten() # (B*N,) pcd_ori = open3d.geometry.PointCloud() pcd_ori.points = open3d.utility.Vector3dVector(sparse_points) pcd_ori.colors = open3d.utility.Vector3dVector( _label_to_colors_by_name(sparse_labels, flags.from_dataset)) pcd_ori_path = os.path.join( output_dir, file_prefix + '_' + flags.from_dataset + ".pcd") open3d.io.write_point_cloud(pcd_ori_path, pcd_ori) print("Exported sparse pcd to {}".format(pcd_ori_path)) pd_ori_labels_path = os.path.join( output_dir, file_prefix + '_' + flags.from_dataset + ".labels") np.savetxt(pd_ori_labels_path, sparse_labels, fmt="%d") print("Exported sparse labels to {}".format(pd_ori_labels_path)) print("the following is the result of common class:") common_cm.print_metrics() print("#" * 100) if flags.from_dataset == flags.to_dataset: print("the following is the result of original class:") cm.print_metrics()