All Projects → google → Stereo Magnification

google / Stereo Magnification

Licence: apache-2.0
Code accompanying the SIGGRAPH 2018 paper "Stereo Magnification: Learning View Synthesis using Multiplane Images"

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Stereo Magnification

stumpy core
Core components for working with images
Stars: ✭ 28 (-90.28%)
Mutual labels:  computer-graphics
creative-production-coding
⚙️ Coding for creative productions.
Stars: ✭ 14 (-95.14%)
Mutual labels:  computer-graphics
CPURasterizer
CPU Based Rasterizer Engine
Stars: ✭ 99 (-65.62%)
Mutual labels:  computer-graphics
go-icp cython
Go-ICP for globally optimal 3D pointset registration
Stars: ✭ 79 (-72.57%)
Mutual labels:  computer-graphics
trace.moe-media
Media server for serving video preview for trace.moe
Stars: ✭ 28 (-90.28%)
Mutual labels:  computer-graphics
ACVD
a program to perform fast simplification of 3D surface meshes
Stars: ✭ 124 (-56.94%)
Mutual labels:  computer-graphics
DOT
Decomposed Optimization Time Integration (DOT) is a domain-decomposed optimization method for fast, reliable simulation of deformation dynamics. DOT efficiently converges with frame-rate time-steps across a wide range of extreme conditions.
Stars: ✭ 37 (-87.15%)
Mutual labels:  computer-graphics
Flame Fitting
Example code for the FLAME 3D head model. The code demonstrates how to sample 3D heads from the model, fit the model to 3D keypoints and 3D scans.
Stars: ✭ 269 (-6.6%)
Mutual labels:  computer-graphics
awesome-glsl
🎇 Compilation of the best resources to learn programming OpenGL Shaders
Stars: ✭ 700 (+143.06%)
Mutual labels:  computer-graphics
CLUSEK-RT
Vulkan based C++ ray-tracing game engine.
Stars: ✭ 24 (-91.67%)
Mutual labels:  computer-graphics
StudyNotes
学习笔记
Stars: ✭ 17 (-94.1%)
Mutual labels:  computer-graphics
clumpy
create or transform numpy images from the command line
Stars: ✭ 38 (-86.81%)
Mutual labels:  computer-graphics
SuperShapes
A tiny macOS app showing how to use Satin, Forge, Youi and SwiftUI to visualize super shapes in 3D.
Stars: ✭ 42 (-85.42%)
Mutual labels:  computer-graphics
OpenGL MPMSnowSimulation2D
2D Implementation of Material Point Method for Snow Simulation
Stars: ✭ 26 (-90.97%)
Mutual labels:  computer-graphics
instant-ngp
Instant neural graphics primitives: lightning fast NeRF and more
Stars: ✭ 1,863 (+546.88%)
Mutual labels:  computer-graphics
vktut
Shabi's Vulkan Tutorials
Stars: ✭ 88 (-69.44%)
Mutual labels:  computer-graphics
PbfVs
Implementation of Macklin, Miles, and Matthias Müller. "Position based fluids.". Visual Studio 2015 + CUDA 8.0
Stars: ✭ 100 (-65.28%)
Mutual labels:  computer-graphics
Mvcnn
Multi-view CNN (MVCNN) for shape recognition
Stars: ✭ 285 (-1.04%)
Mutual labels:  computer-graphics
3d Quickhull
Header only 3d quickhull in c99
Stars: ✭ 259 (-10.07%)
Mutual labels:  computer-graphics
Book-list-of-computational-geometry-and-computer-graphics
Book list of computational geometry and computer graphics 计算几何和计算机图形学必读书单与经典书籍
Stars: ✭ 374 (+29.86%)
Mutual labels:  computer-graphics

Stereo Magnification: Learning View Synthesis using Multiplane Images

This code accompanies the paper

Stereo Magnification: Learning View Synthesis using Multiplane Images
Tinghui Zhou, Richard Tucker, John Flynn, Graham Fyffe, Noah Snavely
SIGGRAPH 2018

Please note that this is not an officially supported Google product.

Training the MPI model

The entry python script for training is train.py. The input flags are specified in two places: 1) train.py and 2) stereomag/loader.py.

The input flag which_color_pred specifies how to predict the color image at each MPI plane:

bg [default] - Our default model. The network predicts: 1) weights for blending the background and foreground (reference source image) color images at each plane, 2) the alphas at each plane. 3) a background color image fgbg - Instead of using the reference source as the foreground image, the network predicts an extra foreground image for blending with the background alpha_only - No color image (or blending weights) is predicted by the network. The reference source image is used as the color image at each MPI plane. single - The network predicts a single color image shared for all MPI planes. all - The network directly outputs the color image at each MPI plane.

You can also specify which loss to use for training: pixel or vgg (i.e., the perceptual loss as measured by differences in VGG features). Note that when using the VGG loss, you will need to download the pre-trained VGG model imagenet-vgg-verydeep-19.mat available at

http://www.vlfeat.org/matconvnet/pretrained/#downloading-the-pre-trained-models

The path to this file can be set by the vgg_model_file flag in train.py.

Testing the MPI model

The entry python script for testing the models is test.py.

One could specify what to output to disk by concatenating one or more of the following (e.g. with '_'): src_images, ref_image, tgt_image, psv, fgbg, poses, intrinsics, blend_weights, rgba_layers.

psv - the plane sweep volume used as input to the network. fgbg - foreground and background color images (only valid when which_color_pred is either fgbg or bg) blend_weights - weights for blending foreground and backgroud color images (only valid when which_color_pred is either fgbg or bg)

Quantitative evaluation

evaluate.py contains sample code for evaluating the view synthesis performance based on the SSIM and PSNR metrics. It assumes that each scene result folder contains a ground-truth target image tgt_image_*.png and the synthesized image output_image_*.png. The script will output a text file summarizing the metrics inside the folder FLAGS.result_root.

Pre-trained models from SIGGRAPH'18 paper

Our pre-trained model can be downloaded into the models subdirectory by running the script bash scripts/download_model.sh.

Running the model on a single image pair

To run a trained model on a single image pair to generate an MPI, use mpi_from_images.py. This tool assumes images with the same orientation (as with a rectified stereo pair), but allows for specifying the (x, y, z) offset between the images.

You can find example input stereo pairs and command lines for generating results in the examples directory.

(You must first download the pretrained model or train your own model and place in the models/ subdirectory)

Reference examples and results

For reference, you can find additional example input stereo pairs, as well as corresponding output multi-plane images and view synthesis results used in the paper in this Google drive link (772 MB).

RealEstate10K dataset

We have released the RealEstate10K dataset suitable for training and testing the MPI model. Note that due to data restrictions, this is not the same version used in our SIGGRAPH'18 paper. However, we are working on updating the results using this public version.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].