https://github.com/aim-uofa/frozenrecon

[ICCV2023] đź§ŠFrozenRecon: Pose-free 3D Scene Reconstruction with Frozen Depth Models

https://github.com/aim-uofa/frozenrecon

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • â—‹
    CITATION.cff file
  • âś“
    codemeta.json file
    Found codemeta.json file
  • â—‹
    .zenodo.json file
  • â—‹
    DOI references
  • âś“
    Academic publication links
    Links to: arxiv.org, scholar.google
  • â—‹
    Committers with academic emails
  • â—‹
    Institutional organization owner
  • â—‹
    JOSS paper metadata
  • â—‹
    Scientific vocabulary similarity
    Low similarity (10.0%) to scientific vocabulary

Keywords

3d-reconstruction 3d-scene-reconstruction monocular-depth-estimation pose-estimation
Last synced: 6 months ago · JSON representation

Repository

[ICCV2023] đź§ŠFrozenRecon: Pose-free 3D Scene Reconstruction with Frozen Depth Models

Basic Info
Statistics
  • Stars: 127
  • Watchers: 15
  • Forks: 5
  • Open Issues: 6
  • Releases: 1
Topics
3d-reconstruction 3d-scene-reconstruction monocular-depth-estimation pose-estimation
Created over 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

[ICCV2023] đź§Š FrozenRecon: Pose-free 3D Scene Reconstruction with Frozen Depth Models

[Guangkai Xu](https://github.com/guangkaixu/)1*,   [Wei Yin](https://yvanyin.net/)2*,   [Hao Chen](https://stan-haochen.github.io/)3,   [Chunhua Shen](https://cshen.github.io/)3,   [Kai Cheng](https://cklibra.github.io/)1,   [Feng Zhao](https://scholar.google.co.uk/citations?user=r6CvuOUAAAAJ&hl=en/)1 1University of Science and Technology of China    2DJI Technology    3Zhejiang University, China ### [Project Page](https://aim-uofa.github.io/FrozenRecon/), [arXiv](https://arxiv.org/abs/2308.05733), [Paper](https://openaccess.thecvf.com/content/ICCV2023/papers/Xu_FrozenRecon_Pose-free_3D_Scene_Reconstruction_with_Frozen_Depth_Models_ICCV_2023_paper.pdf), [Supplementary](https://openaccess.thecvf.com/content/ICCV2023/supplemental/Xu_FrozenRecon_Pose-free_3D_ICCV_2023_supplemental.pdf) #### Reconstruct your pose-free video with đź§Š FrozenRecon in ~20 minutes
image

We propose a novel test-time optimization approach that can transfer the robustness of affine-invariant depth models such as LeReS to challenging diverse scenes while ensuring inter-frame consistency, with only dozens of parameters to optimize per video frame. Specifically, our approach involves freezing the pre-trained affine-invariant depth model's depth predictions, rectifying them by optimizing the unknown scale-shift values with a geometric consistency alignment module, and employing the resulting scale-consistent depth maps to robustly obtain camera poses and camera intrinsic simultaneously. Dense scene reconstruction demo is shown as below.

Prerequisite

Pre-trained Checkpoints

In this project, we use LeReS to predict affine-invariant depth maps. Please download the pre-trained checkpoint of LeReS, and place it in FrozenRecon/LeReS/res101.pth. If optimize outdoor scenes, the checkpoint of Segformer should also be downloaded and placed in FrozenRecon/SegFormer/segformer.b3.512x512.ade.160k.pth

Demo Data

We provide one demo data for each scene, and another in-the-wild video captured from iPhone14 Pro without any lidar sensor information. Download from BaiduNetDisk, and place it in FrozenRecon/demo_data.

Installation

```bash git clone --recursive https://github.com/aim-uofa/FrozenRecon.git cd FrozenRecon conda create -y -n frozenrecon python=3.8 conda activate frozenrecon pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 -f https://download.pytorch.org/whl/torch_stable.html # pytorch 1.7.1 for SegFormer pip install -r requirements.txt

(Optional) For outdoor scenes, we recommand to mask the sky regions and cars (potential dynamic objects)

pip install timm==0.3.2 pip install --upgrade mmcv-full==1.2.7 -f https://download.openmmlab.com/mmcv/dist/cu110/torch171/index.html

pip install "mmsegmentation==0.11.0"

pip install ipython attr git clone https://github.com/NVlabs/SegFormer.git cd SegFormer && pip install -e . & cd ..

After installing SegFormer, please downlaod segformer.b3.512x512.ade.160k.pth checkpoint following https://github.com/NVlabs/SegFormer, and place it in SegFormer/

(Optional) Install lietorch. It can make optimization faster.

git clone --recursive https://github.com/princeton-vl/lietorch.git cd lietorch && python setup.py install & cd .. ```

Optimization

1. In-the-wild Video Input

```bash

Take demo data as an example

python src/optimize.py --videopath demodata/IMG_8765.MOV

# For self-captured videos

python src/optimize.py --videopath PATHTOVIDEO --scenename SCENE_NAME

```

2. In-the-wild Extracted Images Input

bash python src/optimize.py --img_root PATH_TO_IMG_FOLDER --scene_name SCENE_NAME

3. Datasets (Optional with GT Priors)

```bash

Export ground-truth data root here.

export GTROOT='./demodata' # PATHTOGTDATAROOT, you can download demo_data following "Data" subsection.

FrozenRecon with datasets, take NYUDepthVideo classroom_0004 as example.

python src/optimize.py --datasetname NYUDepthVideo --gtroot $GTROOT --scenename classroom_0004

FrozenRecon with GT priors.

python src/optimize.py --datasetname NYUDepthVideo --gtroot $GTROOT --gtintrinsicflag --savesuffix gtintrinsic --scenename classroom0004 python src/optimize.py --datasetname NYUDepthVideo --gtroot $GTROOT --gtposeflag --savesuffix gtpose --scenename classroom0004 python src/optimize.py --datasetname NYUDepthVideo --gtroot $GTROOT --gtdepthflag --savesuffix gtdepth --scenename classroom0004 python src/optimize.py --datasetname NYUDepthVideo --gtroot $GTROOT --gtintrinsicflag --gtposeflag --savesuffix gtintrinsicgtpose --scenename classroom0004 python src/optimize.py --datasetname NYUDepthVideo --gtroot $GTROOT --gtposeflag --gtdepthflag --savesuffix gtdepthgtpose --scenename classroom0004 python src/optimize.py --datasetname NYUDepthVideo --gtroot $GTROOT --gtintrinsicflag --gtdepthflag --savesuffix gtintrinsicgtdepth --scenename classroom0004 python src/optimize.py --datasetname NYUDepthVideo --gtroot $GTROOT --gtintrinsicflag --gtposeflag --gtdepthflag --savesuffix gtintrinsicgtdepthgtpose --scenename classroom_0004 ```

4. Outdoor Scenes

```bash export GTROOT='./demodata' # PATHTOGTDATAROOT, you can download demo_data following "Data" subsection.

We suggest to use GT intrinsic for stable optimization.

python src/optimize.py --datasetname NYUDepthVideo --scenename SCENENAME --gtroot $GTROOT --gtintrinsicflag --scenename 20110926drive0001sync --outdoorscenes ```

🎫 License

For non-commercial academic use, this project is licensed under the 2-clause BSD License. For commercial use, please contact Chunhua Shen.

🖊️ Citation

If you find this project useful in your research, please cite:

BibTeX @inproceedings{xu2023frozenrecon, title={FrozenRecon: Pose-free 3D Scene Reconstruction with Frozen Depth Models}, author={Xu, Guangkai and Yin, Wei and Chen, Hao and Shen, Chunhua and Cheng, Kai and Zhao, Feng}, booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision}, pages={9310--9320}, year={2023} }

Owner

  • Name: Advanced Intelligent Machines (AIM)
  • Login: aim-uofa
  • Kind: organization
  • Location: China

A research team at Zhejiang University, focusing on Computer Vision and broad AI research ...

GitHub Events

Total
  • Issues event: 1
  • Watch event: 9
Last Year
  • Issues event: 1
  • Watch event: 9

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 15
  • Total Committers: 3
  • Avg Commits per committer: 5.0
  • Development Distribution Score (DDS): 0.533
Past Year
  • Commits: 6
  • Committers: 1
  • Avg Commits per committer: 6.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
GuangkaiXu g****u@g****m 7
C Shen 1****n 6
chhshen c****n@y****m 2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 6
  • Total pull requests: 2
  • Average time to close issues: 21 days
  • Average time to close pull requests: 5 minutes
  • Total issue authors: 6
  • Total pull request authors: 1
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • 942411526 (1)
  • alikesierzhao (1)
  • 9796l (1)
  • RenieWell (1)
  • han12580 (1)
  • GaoHchen (1)
Pull Request Authors
  • kxwangzju (2)
  • mini-full (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

requirements.txt pypi
  • numba *
  • pycuda *
  • pykitti *
  • scikit-image ==0.16.2
  • scipy *
  • tqdm *
  • xlwt *