コード例 #1
0
ファイル: test-iou.py プロジェクト: AnonymousUser1111/URA
def eval_iou(predicted_v,predicted_f,voxels):
    faces_ = srf.face_vertices(predicted_v, predicted_f).data
    faces_norm = faces_ * 1. * (32. - 1) / 32. + 0.5
    voxels_predict = srf.voxelization(faces_norm, 32, False).cpu().numpy()
    voxels_predict = voxels_predict.transpose(0, 2, 1, 3)[:, :, :, ::-1]
    iou = (voxels * voxels_predict).sum((1, 2, 3)) / (0 < (voxels + voxels_predict)).sum((1, 2, 3))
    return iou
コード例 #2
0
 def evaluate_iou(self, images, voxels):
     vertices, faces, textures = self.reconstruct(images)
     faces_ = srf.face_vertices(vertices, faces).data
     faces_norm = faces_ * 1. * (32. - 1) / 32. + 0.5
     voxels_predict = srf.voxelization(faces_norm, 32, False).cpu().numpy()
     voxels_predict = voxels_predict.transpose(0, 2, 1, 3)[:, :, :, ::-1]
     iou = (voxels * voxels_predict).sum((1, 2, 3)) / (0 < (voxels + voxels_predict)).sum((1, 2, 3))
     return iou, vertices, faces, textures
コード例 #3
0
            vertices_real = [vertices_real for _ in range(num_rendered_images)]
            faces_real = [faces_real for _ in range(num_rendered_images)]

            vertices_real = torch.cat(vertices_real, dim=0)
            faces_real = torch.cat(faces_real, dim=0)

            vertices_generate, faces_generate = model.reconstruct(
                rendered_images_i)

            # srf.save_obj('/mnt/zhengwen/model_synthesis/shapeNetCore/test_generate.obj', vertices_generate[0], faces_generate[0])
            # srf.save_obj('/mnt/zhengwen/model_synthesis/shapeNetCore/test_real.obj', vertices_real[0], faces_real[0])

            faces_real_ = srf.face_vertices(vertices_real, faces_real).data
            faces_real_norm = faces_real_ * 1. * (32. - 1) / 32. + 0.5
            voxels_real = srf.voxelization(faces_real_norm, 32,
                                           False).cpu().numpy()

            faces_generate_ = srf.face_vertices(vertices_generate,
                                                faces_generate).data
            faces_generate_norm = faces_generate_ * 1. * (32. - 1) / 32. + 0.5
            voxels_generate = srf.voxelization(faces_generate_norm, 32,
                                               False).cpu().numpy()
            voxels_generate = voxels_generate.transpose(0, 2, 1,
                                                        3)[:, :, :, ::-1]

            iou = (voxels_real * voxels_generate).sum(
                (1, 2, 3)) / (0 < (voxels_real + voxels_generate)).sum(
                    (1, 2, 3))
            category_to_IoU[sub_root_dir].append(np.mean(iou))
            obj_count += 1
    sub_root_count += 1
コード例 #4
0
ファイル: mesh.py プロジェクト: JinlongYANG/vis
 def voxelize(self, voxel_size=32):
     face_vertices_norm = self.face_vertices * voxel_size / (voxel_size -
                                                             1) + 0.5
     return srf.voxelization(face_vertices_norm, voxel_size, False)