All Projects → ShichenLiu → Softras

ShichenLiu / Softras

Licence: mit
Project page of paper "Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning"

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Softras

Pifu
This repository contains the code for the paper "PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization"
Stars: ✭ 1,021 (+42.8%)
Mutual labels:  computer-graphics, 3d-reconstruction, geometry-processing
Tf flame
Tensorflow framework for the FLAME 3D head model. The code demonstrates how to sample 3D heads from the model, fit the model to 2D or 3D keypoints, and how to generate textured head meshes from Images.
Stars: ✭ 193 (-73.01%)
Mutual labels:  computer-graphics, 3d-reconstruction
Voxelizer
Header only mesh voxelizer in c99
Stars: ✭ 487 (-31.89%)
Mutual labels:  computer-graphics, geometry-processing
PointCloudRegistrationTool
Automatically registers (aligns) and visualizes point clouds, or processes a whole bunch at once
Stars: ✭ 82 (-88.53%)
Mutual labels:  computer-graphics, 3d-reconstruction
Cnncomplete
[CVPR'17] Shape Completion using 3D-Encoder-Predictor CNNs and Shape Synthesis
Stars: ✭ 117 (-83.64%)
Mutual labels:  computer-graphics, 3d-reconstruction
Optcuts
OptCuts, a new parameterization algorithm, jointly optimizes arbitrary embeddings for seam quality and distortion. OptCuts requires no parameter tuning; automatically generating mappings that minimize seam-lengths while satisfying user-requested distortion bounds.
Stars: ✭ 145 (-79.72%)
Mutual labels:  computer-graphics, geometry-processing
Structured3d
[ECCV'20] Structured3D: A Large Photo-realistic Dataset for Structured 3D Modeling
Stars: ✭ 224 (-68.67%)
Mutual labels:  computer-graphics, 3d-reconstruction
Scannet
Stars: ✭ 860 (+20.28%)
Mutual labels:  computer-graphics, 3d-reconstruction
ICON
ICON: Implicit Clothed humans Obtained from Normals (CVPR 2022)
Stars: ✭ 641 (-10.35%)
Mutual labels:  computer-graphics, 3d-reconstruction
go-icp cython
Go-ICP for globally optimal 3D pointset registration
Stars: ✭ 79 (-88.95%)
Mutual labels:  computer-graphics, geometry-processing
instant-ngp
Instant neural graphics primitives: lightning fast NeRF and more
Stars: ✭ 1,863 (+160.56%)
Mutual labels:  computer-graphics, 3d-reconstruction
Sgnn
[CVPR'20] SG-NN: Sparse Generative Neural Networks for Self-Supervised Scene Completion of RGB-D Scans
Stars: ✭ 112 (-84.34%)
Mutual labels:  computer-graphics, 3d-reconstruction
Melt
Automatic conservative mesh occluder generation by box filling
Stars: ✭ 105 (-85.31%)
Mutual labels:  computer-graphics, geometry-processing
Flame pytorch
This is a implementation of the 3D FLAME model in PyTorch
Stars: ✭ 153 (-78.6%)
Mutual labels:  computer-graphics, 3d-reconstruction
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 (-62.38%)
Mutual labels:  computer-graphics, 3d-reconstruction
Scancomplete
[CVPR'18] ScanComplete: Large-Scale Scene Completion and Semantic Segmentation for 3D Scans
Stars: ✭ 213 (-70.21%)
Mutual labels:  computer-graphics, 3d-reconstruction
platonicgan
Escaping Plato’s Cave: 3D Shape from Adversarial Rendering [ICCV 2019]
Stars: ✭ 40 (-94.41%)
Mutual labels:  computer-graphics, 3d-reconstruction
3d Quickhull
Header only 3d quickhull in c99
Stars: ✭ 259 (-63.78%)
Mutual labels:  computer-graphics, geometry-processing
Cinolib
A generic programming header only C++ library for processing polygonal and polyhedral meshes
Stars: ✭ 407 (-43.08%)
Mutual labels:  computer-graphics, geometry-processing
Livescan3d
LiveScan3D is a system designed for real time 3D reconstruction using multiple Azure Kinect or Kinect v2 depth sensors simultaneously at real time speed.
Stars: ✭ 512 (-28.39%)
Mutual labels:  3d-reconstruction

Soft Rasterizer (SoftRas)

This repository contains the code (in PyTorch) for "Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning" (ICCV'2019 Oral) by Shichen Liu, Tianye Li, Weikai Chen and Hao Li.

Contents

  1. Introduction
  2. Usage
  3. Applications
  4. Contacts

Introduction

Soft Rasterizer (SoftRas) is a truly differentiable renderer framework with a novel formulation that views rendering as a differentiable aggregating process that fuses probabilistic contributions of all mesh triangles with respect to the rendered pixels. Thanks to such "soft" formulation, our framework is able to (1) directly render colorized mesh using differentiable functions and (2) back-propagate efficient supervision signals to mesh vertices and their attributes (color, normal, etc.) from various forms of image representations, including silhouette, shading and color images.

Usage

The code is built on Python3 and PyTorch 1.1.0. CUDA is needed in order to install the module. Our code is extended on the basis of this repo.

To install the module, using

python setup.py install

Applications

0. Rendering

We demonstrate the rendering effects provided by SoftRas. Realistic rendering results (1st and 2nd columns) can be achieved with a proper setting of sigma and gamma. With larger sigma and gamma, one can obtain renderings with stronger transparency and blurriness (3rd and 4th column).

CUDA_VISIBLE_DEVICES=0 python examples/demo_render.py

1. 3D Unsupervised Single-view Mesh Reconstruction

By incorporating SoftRas with a simple mesh generator, one can train the network with multi-view images only, without requiring any 3D supervision. At test time, one can reconstruct the 3D mesh, along with the mesh texture, from a single RGB image. Below we show the results of single-view mesh reconstruction on ShapeNet.

Download shapenet rendering dataset provided by NMR:

bash examples/recon/download_dataset.sh

To train the model:

CUDA_VISIBLE_DEVICES=0 python examples/recon/train.py -eid recon

To test the model:

CUDA_VISIBLE_DEVICES=0 python examples/recon/test.py -eid recon \
    -d 'data/results/models/recon/checkpoint_0200000.pth.tar'

2. Image-based Shape Deformation

SoftRas provides strong supervision for image-based mesh deformation. We visualize the deformation process from a sphere to a car model and then to a plane given supervision from multi-view silhouette images.

CUDA_VISIBLE_DEVICES=0 python examples/demo_deform.py

The optimized mesh is included in data/obj/plane/plane.obj

3. Pose Optimization for Rigid Objects

With scheduled blurry renderings, one can obtain smooth energy landscape that avoids local minima. Below we demonstrate how a color cube is fitted to the target image in the presence of large occlusions. The blurry rendering and the corresponding rendering losses are shown in the 3rd and 4th columns respectively.

4. Non-rigid Shape Fitting

We fit the parametric body model (SMPL) to a target image where the part (right hand) is entirely occluded in the input view.

Contacts

Shichen Liu: [email protected]

Any discussions or concerns are welcomed!

Citation

If you find our project useful in your research, please consider citing:

@article{liu2019softras,
  title={Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning},
  author={Liu, Shichen and Li, Tianye and Chen, Weikai and Li, Hao},
  journal={The IEEE International Conference on Computer Vision (ICCV)},
  month = {Oct},
  year={2019}
}
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].