A collection of methods I experimented with for reconstructing 3D structure from 2D images, from neural radiance fields to implicit-surface and position-map approaches. Each method lives in its own folder with its notebooks/code and, where it came from an existing implementation, its original README.
NeRF style neural radiance fields. Takes multiple 2D images of an object along with the camera poses they were captured at, and learns a single 3D representation you can render from new viewpoints.
Tiny_Nerf.ipynb— minimal NeRFComplete_NeRF.ipynb— fuller implementation
PIFuHD from Facebook Research. Reconstructs a 3D model of a person from a single human image.
PIFuHD_v1_Demo_try.ipynb
Joint 3D face reconstruction and dense alignment with a Position Map Regression Network (PRN). An unofficial Python implementation with some changes of my own, used to experiment with the model. PRN regresses 3D facial geometry and dense alignment end-to-end from a single image, bypassing 3DMM fitting, and runs faster than real time. See the folder's README for details and usage.
Differentiable Volumetric Rendering (Niemeyer et al., CVPR 2020), which learns implicit 3D representations without 3D supervision. Here it's used with models trained on the ShapeNet dataset to reconstruct 3D objects from single 2D images. I tested the pre-trained models with some changes to the original code. See the folder's README and Steps to run.docx for usage.