コード例 #1
0
model = DeepVoxels(lifting_img_dims=proj_image_dims,
                   frustrum_img_dims=proj_image_dims,
                   grid_dims=grid_dims,
                   use_occlusion_net=not opt.no_occlusion_net,
                   num_grid_feats=opt.num_grid_feats,
                   nf0=opt.nf0,
                   img_sidelength=input_image_dims[0])
model.to(device)

# Projection module
projection = ProjectionHelper(projection_intrinsic=proj_intrinsic,
                              lifting_intrinsic=lift_intrinsic,
                              depth_min=depth_min,
                              depth_max=depth_max,
                              projection_image_dims=proj_image_dims,
                              lifting_image_dims=proj_image_dims,
                              grid_dims=grid_dims,
                              voxel_size=voxel_size,
                              device=device,
                              frustrum_depth=frustrum_depth,
                              near_plane=near_plane)

# L1 loss
criterionL1 = nn.L1Loss(reduction='mean').to(device)

# GAN loss
criterionGAN = GANLoss().to(device)
discriminator = PatchDiscriminator(input_nc=3).to(device)

# Optimizers
optimizerD = torch.optim.Adam(discriminator.parameters(), lr=opt.lr)
コード例 #2
0
proj_image_dims = [68, 50]
# TODO: load intrinsic from txt
intrinsic = util.make_intrinsic(opt.fx, opt.fy, opt.mx, opt.my)
intrinsic = util.adjust_intrinsic(intrinsic, [opt.intrinsic_image_width, opt.intrinsic_image_height], proj_image_dims)
intrinsic = intrinsic.cuda()
grid_dims = [opt.grid_dimX, opt.grid_dimY, opt.grid_dimZ]
column_height = opt.grid_dimZ
batch_size = opt.batch_size
num_images = opt.num_nearest_images
grid_centerX = opt.grid_dimX // 2
grid_centerY = opt.grid_dimY // 2
color_mean = ENET_TYPES[opt.model2d_type][1]
color_std = ENET_TYPES[opt.model2d_type][2]

num_classes = opt.num_classes
projection = ProjectionHelper(intrinsic, opt.depth_min, opt.depth_max, proj_image_dims, grid_dims, opt.voxel_size)

def load_frames_multi(data_path, frame_indices, depth_images, color_images, poses, color_mean, color_std):
    num_images = 1

    depth_files = [os.path.join(data_path, 'depth20.png')]
    color_files = [os.path.join(data_path, 'color20.jpg')]
    pose_files = [os.path.join(data_path,  'pose20.txt')]

    # TODO: change batch_size
    # batch_size = frame_indices.size(0) * num_images
    batch_size = 1
    depth_image_dims = [depth_images.shape[2], depth_images.shape[1]]
    color_image_dims = [color_images.shape[3], color_images.shape[2]]
    normalize = transforms.Normalize(mean=color_mean, std=color_std)
    # load data
コード例 #3
0
    mesh_vertices = np.delete(mesh_vertices, 3, 1)
    pts = np.ones((mesh_vertices.shape[0], 4))
    pts[:, 0:3] = mesh_vertices[:, 0:3]
    pts = np.dot(pts, axis_align_matrix.transpose())  # Nx4
    mesh_vertices[:, 0:3] = pts[:, 0:3]
    mesh_vertices = mesh_vertices.astype('float32')
    return mesh_vertices


if __name__ == '__main__':
    for scene_id in os.listdir(scene_path):
        intrinsic_str = read_lines_from_file(rawdata_path + scene_id +
                                             '/intrinsic_depth.txt')
        fx = float(intrinsic_str[0].split()[0])
        fy = float(intrinsic_str[1].split()[1])
        mx = float(intrinsic_str[0].split()[2])
        my = float(intrinsic_str[1].split()[2])
        intrinsic = util.make_intrinsic(fx, fy, mx, my)
        intrinsic = util.adjust_intrinsic(
            intrinsic, [opt.intrinsic_image_width, opt.intrinsic_image_height],
            proj_image_dims)
        intrinsic = intrinsic.cuda()
        projection = ProjectionHelper(intrinsic, opt.depth_min, opt.depth_max,
                                      proj_image_dims)
        vertices = scannet_projection(intrinsic, projection, scene_id)
        save_path = "/home/extra/extra/outputs/"
        if not os.path.exists(save_path):
            os.makedirs(save_path)
        np.save(save_path + scene_id + "_features.npy", vertices)
    print("finished")