Giter VIP home page Giter VIP logo

fov-3dgs's Introduction

FoV-3DGS

Official Implementation of RTGS: Enabling Real-Time Gaussian Splatting on Mobile Devices Using Efficiency-Guided Pruning and Foveated Rendering. [Paper]

(1) Setup

  • Clone the repo
git clone https://github.com/horizon-research/FoV-3DGS.git
  • Prepare Dataset

  • Prepare Dense 3DGS for pruning

    • Original 3DGS: download from 3DGS
    • Mini-Splatting-D: We provide our reprodeuced model of m360 bicycle here, for other scenes, you can reproduce using their code.
    • move the dense model to the scene folder and name it "ms_d", structure under the folder should be like:
    |-- cameras.json
    |-- cfg_args
    |-- chkpnt30000.pth
    |-- input.ply
    `-- point_cloud
        `-- iteration_30000
            `-- point_cloud.ply
  • Prepare environment:

    • We use docker:
    # pull the docker (this is for x86 machine, for jetson you will need other prbuilt, see https://github.com/dusty-nv/jetson-containers/tree/master and find one that suitable for tour jetpack.)
    docker pull pytorch/pytorch:2.3.0-cuda11.8-cudnn8-devel
    # run docker
    bash ./run_docker.sh
    # go in to docker and install all submodules
    bash update_submodules.sh
    • install some packages
        pip install plyfile opencv-python matplotlib icecream
        apt-get update
        apt-get install libgl1-mesa-glx libglib2.0-0 -y

(2) Run the pruning & FR (Foveated Rendering) Masking pipeline

# we only leave bicycle, uncomment other scenes for batch test
 python3 combined_training_script.py 

The result will be stored in the scene folder.

(3) Measure Objective Metric for PS=1 model.

python3 quality_eval.py 

The result will be in ./full_eval_results/ours-Q

(4) Generate the FoV model & Measure its FPS

bash batch_ours_fps.sh 

Baselines

  • SM (Shared Model) FR: Generate + Measure the Layer-Wise Quality & FPS
# we only leave bicycle, uncomment other scenes for batch test
bash batch_gen_naive_FR.sh # generate SMFR
python3 quality_eval_layers_naive.py # measure qulaity in each layer, result will be in ./layers_eval_results/naiveFR
bash batch_naive_fps.sh #measure fps, result will be in ./fps
  • MM (Multi-Model) FR : Generate + Measure the Layer-Wise Quality & FPS this one need LightGS for Pruning Multiple Models, we already include it in our repo
bash batch_pnum_analyzer.sh  # analyze pnum of our model in each layer
cd ../LightGaussian
bash ./batch_gen_mmFR.sh # the result will be in ./MMFR/ours-Q
cd ../fov3dgs
python3 quality_eval_layers_mmfr.py # measure qulaity in each layer, result will be in ./layers_eval_results/MMFR
bash ./batch_mmfr_fps.sh #measure fps, result will be in ./fps

Acknowledgements

  • Our 3D Gaussian Splatting (3DGS) related code is based on the work from 3DGS.
  • Our Human Visual System (HVS) model code is adapted from the Perception library in Odak.

fov-3dgs's People

Contributors

linwk20 avatar

Stargazers

Chaojian Li avatar Jian avatar Xiaobing Han avatar KEMSHIM avatar AI/ML Engineer avatar  avatar Junhua Liu avatar Kai avatar Kunxiong ZHU avatar wjt avatar double Eric avatar ManGyu Gong avatar  avatar slam_study avatar Weidong Liu avatar  avatar WuKe avatar Tifer King avatar zcq avatar (Rice) Shung-An avatar  avatar YifanZhu avatar  avatar Fu Lian avatar  avatar Philips avatar YiChenCityU avatar Chongshan avatar  avatar  avatar SD avatar Yu Feng avatar  avatar

Watchers

Yuhao Zhu avatar Chao Wen avatar  avatar  avatar

fov-3dgs's Issues

VRAM of GPUs for training and reasoning

Hello! I noticed that you completed the training on the Nvidia Jetson Xavier board, and I would like to ask you how much VRAM is used in the training and reasoning process?
waiting for your reply!

输出结果查看

作者:
您们好!请问是输出ply格式文件吗?能用原始的高斯查看器打开吗?非常期待您的回复,谢谢!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.