Official PyTorch implementation of the SDF-Renderer used in CVPR 2020 paper "Autolabeling 3D Objects With Differentiable Rendering of SDF Shape Priors" by the ML Team at Toyota Research Institute (TRI), cf. References below. [Full paper] [YouTube]
Download the data folder containing the pretrained DeepSDF network. To test the renderer using the pretrained DeepSDF network, run the following code:
python main.py --model ../data/nets/deepsdf.pt
Alternatively you can use just the surfel part of the renderer to render 3D models. To test it, specify the path to the provided car model from the HomebrewedDB dataset.
python main.py --model ../data/db/car.ply
To obtain surface points we apply zero-isosurface projection on the grid points using regressed by DeepSDF SDF values.
# Get DeepSDF output
pred_sdf_grid = dsdf(inputs)
# Get surface points using 0-isosurface projection
points, nocs, normals = grid_3d.get_surface_points(pred_sdf_grid)
The source code is released under the MIT license.
Sergey Zakharov*, Wadim Kehl*, Arjun Bhargava, Adrien Gaidon
@inproceedings{sdflabel,
author = {Sergey Zakharov and Wadim Kehl and Arjun Bhargava and Adrien Gaidon},
title = {Autolabeling 3D Objects with Differentiable Rendering of SDF Shape Priors},
booktitle = {IEEE Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2020}
}
The repository uses parts of the DeepSDF project