Skip to content

Daisy-butter/TensoRF_reconstruction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages