Computer Vision News - October 2022
10 Computer Vision Tools !pip install nerf-pytorch from nerf.model import NeRF from nerf.dataset import PixelRayDataset # build the NeRF model with default parameters model = NeRF(normalize_position=6.0).cuda() nerf_optimizer = optim.Adam(model.parameters(), lr=0.0001) poses = tform_cam2world # create a dataset of pixels and corresponding rays for NeRF dataset = PixelRayDataset (images.to (device), poses.to( device), focal_length) data_loader = datatorch.DataLoader(dataset, batch_size=1024, shuf- fle=True) train_features = next(iter(data_loader)) print(train_features.keys()) num_samples_per_ray = 64 randomly_sample = True density_noise_std = 1.0 psnrs = [] iternums = [] iteration = 0 for epoch in range(100): for batch in iter(data_loader): # render a pixel for each ray using NeRF pixels = model.render_rays( batch['rays_o'], batch['rays_d'], near_thresh, far_thresh, num_samples_per_ray, randomly_sample=randomly_sample, density_noise_std=density_noise_std) nerf_optimizer.zero_grad() # mean squared error in pixels loss = ((pixels - batch['pixels']) ** 2).mean() loss.backward() nerf_optimizer.step() if iteration % 100 == 0: with torch.no_grad(): test_render = model.render_image( testpose[..., :3, 3], testpose[..., :3, :3], height, width, focal_length.item(), 2.0, 6.0, 64)
Made with FlippingBook
RkJQdWJsaXNoZXIy NTc3NzU=