Skip to content

[ICME 2025] ICG-MVSNet: Learning Intra-view and Cross-view Relationships for Guidance in Multi-View Stereo

License

Notifications You must be signed in to change notification settings

YuhsiHu/ICG-MVSNet

Repository files navigation

ICG-MVSNet: Learning Intra-view and Cross-view Relationships for Guidance in Multi-View Stereo (ICME 2025)


Publication Paper Pytorch

πŸ“Œ Introduction

This repository contains the official implementation of ICG-MVSNet: Learning Intra-view and Cross-view Relationships for Guidance in Multi-View Stereo.

πŸš€ Pipeline

Pipeline

πŸ”§ Setup

1.1 Requirements

Use the following commands to build the conda environment.

conda create -n icgmvsnet python=3.10.8
conda activate icgmvsnet
pip install -r requirements.txt

1.2 Datasets

Download the following datasets and modify the corresponding local path in scripts/data_path.sh.

DTU Dataset

Training data. We use the same DTU training data as mentioned in MVSNet and CasMVSNet, please refer to DTU training data and Depth raw for data download. You should download the Recitfied raw if you want to train the model in raw image resolution. Unzip and organize them as:

dtu_training/
β”œβ”€β”€ Cameras
β”œβ”€β”€ Depths
β”œβ”€β”€ Depths_raw
β”œβ”€β”€ Rectified
└── Rectified_raw (optional)

Testing data. Download DTU testing data. Unzip it as:

dtu_test/
β”œβ”€β”€ scan1
β”œβ”€β”€ scan4
β”œβ”€β”€ ...

BlendedMVS Dataset

Download the low image resolution version of BlendedMVS dataset and unzip it as:

blendedmvs/
└── dataset_low_res
    β”œβ”€β”€ ...
    └── 5c34529873a8df509ae57b58

Tanks and Temples Dataset

Download the intermediate and advanced subsets of Tanks and Temples dataset. We use the camera parameters of short depth range version, you can download processed data here and change cams_1 to cams.

tanksandtemples/
β”œβ”€β”€ advanced
β”‚   β”œβ”€β”€ ...
β”‚   └── Temple
β”‚       β”œβ”€β”€ cams
β”‚       β”œβ”€β”€ images
β”‚       β”œβ”€β”€ pair.txt
β”‚       └── Temple.log
└── intermediate
    β”œβ”€β”€ ...
    └── Train
        β”œβ”€β”€ cams
        β”œβ”€β”€ cams_train
        β”œβ”€β”€ images
        β”œβ”€β”€ pair.txt
        └── Train.log

🧠 Training

You can train ICG-MVSNet from scratch on DTU dataset and then fine-tune on BlendedMVS dataset. Please make sure to set the dataset path in scripts/data_path.sh before running training or testing.

2.1 DTU

To train ICG-MVSNet on DTU dataset, you can refer to scripts/dtu/train_dtu.sh, and run:

bash scripts/dtu/train_dtu.sh exp_name

2.2 BlendedMVS

To fine-tune the model on BlendedMVS dataset, you can refer to scripts/blend/train_bld_ft.sh, and also specify THISNAME, BLD_CKPT_FILE, and run:

bash scripts/blend/train_bld_ft.sh expname

πŸ“Š Testing

3.1 DTU

For DTU testing, we use model trained on DTU training dataset. You can perform depth map estimation, point cloud fusion, and result evaluation according to the following steps.

  1. Depth map estimation and point cloud fusion. Run:
bash scripts/dtu/test_dtu.sh exp_name
  1. Download the ObsMask and Points of DTU GT point clouds from the official website and organize them as:
evaluation/
    β”œβ”€β”€ ObsMask
    └── Points
  1. Result evaluation. Setup Matlab in command line mode, and run bash scripts/dtu/matlab_quan_dtu.sh. You can adjust the num_at_once config according to your machine's CPU and memory ceiling. After quantitative evaluation, you will get [FUSION_METHOD]_quantitative/ and [THISNAME].log just store the quantitative results.

3.2 Tanks and Temples

For testing on Tanks and Temples benchmark, you can use any of the following configurations:

  • Only train on DTU training dataset.
  • Only train on BlendedMVS dataset.
  • Pretrained on DTU training dataset and finetune on BlendedMVS dataset. (Recommend)

After your training, please follow these steps:

  1. To generate point cloud results, run:
bash scripts/tnt/test_tnt_inter.sh exp_name
bash scripts/tnt/test_tnt_adv.sh exp_name
  1. Follow the Upload Instructions on the Tanks and Temples official website to make online submissions.

3.3 Custom Data

ICG-MVSNet can also reconstruct on custom data. You can refer to MVSNet to organize your data, and run:

bash scripts/custom/test_custom.sh exp_name

🎯 Results

Qualitative Results

Results

Quantitative Results

Our results on DTU and Tanks and Temples (T&T) Dataset are listed in the tables.

DTU Acc. ↓ Comp. ↓ Overall ↓
Ours 0.327 0.251 0.289
T&T (Intermediate) Mean ↑ Family Francis Horse Lighthouse M60 Panther Playground Train
Ours 65.53 81.73 68.92 56.59 66.10 64.86 64.41 62.33 59.26

You can download point clouds here.

πŸ”— Citation

If you find this work useful in your research, please consider citing:

@inproceedings{hu2025icg,
  title={ICG-MVSNet: Learning Intra-view and Cross-view Relationships for Guidance in Multi-View Stereo},
  author={Hu, Yuxi and Zhang, Jun and Zhang, Zhe and Weilharter, Rafael and Rao, Yuchen and Chen, Kuangyi and Yuan, Runze and Fraundorfer, Friedrich},
  booktitle={IEEE International Conference on Multimedia and Expo (ICME)},
  year={2025}
}

❀️ Acknowledgements

This repository builds upon the great work of the following projects:

We sincerely thank the authors for their contributions to the MVS community.

About

[ICME 2025] ICG-MVSNet: Learning Intra-view and Cross-view Relationships for Guidance in Multi-View Stereo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published