Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3D Object Reconstruction with TensoRF


This project implements efficient 3D reconstruction and novel view synthesis using TensoRF, a tensor decomposition-based variant of Neural Radiance Fields (NeRF).
TensoRF significantly accelerates training and rendering by replacing NeRF’s dense MLP with compact tensor factorization, while maintaining high-quality reconstruction.
We use this framework to reconstruct real-world objects from multi-view images captured with a handheld smartphone, and visualize the reconstruction via novel view rendering.

📦 Dataset Access

The real-world dataset used in this project, along with COLMAP-processed poses and the resulting outputs, can be downloaded via the following link:

🔗 Baidu Netdisk Download – TensoRF Dataset and Results (extraction code: 9buk)

🔗 Official TensoRF repo: https://github.com/apchenstu/TensoRF


📁 Project Structure

🔧 Main Components

  • train.py
    The main training script that initializes the tensor field, sets up loss functions, and performs optimization over iterations.

  • renderer/
    Contains rendering utilities and volumetric rendering logic using the decomposed tensor components.

  • models/
    Implements the TensorVMSplit and TensorCP models used for representing the radiance field via low-rank tensor factorization.

  • opt/
    Contains optimization tools, learning rate schedulers, and loss functions, including:

    • TV Loss for regularizing appearance and density fields.
    • SSIM and PSNR tracking for quality evaluation.
  • configs/
    YAML configuration files for different experiments (resolution, backbone, dataset, loss weights, etc.).

  • scripts/
    Shell scripts or command-line examples for launching training on different datasets.

  • test/
    Contains rendering and evaluation scripts for novel view synthesis after training.


🏗️ Workflow

📸 (1) Data Preparation

  • Capture multi-view images of an object with overlapping views using a handheld smartphone.
  • Use COLMAP to compute accurate camera poses.
  • Organize the images and camera intrinsics in NeRF-compatible format (e.g., LLFF-style or synthetic layout).
  • Resize images to a consistent resolution (optional, for speed).
  • Split dataset into training and test sets (e.g., 80/20).

🧠 (2) Model Training

  • Edit the YAML config (e.g., configs/hotcrush_tensorf.yaml) to specify:

    • Dataset path
    • Model type: TensorVMSplit or TensorCP
    • Number of iterations
    • Loss weights for TV, appearance, and density
    • Logging intervals
  • Run training:

python train.py --config configs/hotcrush_tensorf.yaml

About

This repo contains the codes for reconstruction using TensoRF on real-world dataset.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages