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
Beispiel #2
0
        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()