GithubHelp home page GithubHelp logo

enriquesolarte / 360-mlc Goto Github PK

View Code? Open in Web Editor NEW
9.0 3.0 1.0 289 KB

[NeurIPS'22] 360-MLC: Multi-view Layout Consistency for Self-training and Hyper-parameter Tuning

Home Page: https://enriquesolarte.github.io/360-mlc/

Python 100.00%
360 360-camera layout-estimation

360-mlc's Introduction

360-MLC: Multi-view Layout Consistency for Self-training and Hyper-parameter Tuning

This is the official implementation of 360-MLC, where we propose a novel approach to fine-tune and evaluate pre-trained layout estimation models on new datasets with domain shifts, and, more importantly, no ground truth is required.

For more detailed information, please refer to:

360-MLC: Multi-view Layout Consistency for Self-training and Hyper-parameter Tuning
Bolivar Solarte, Chin-Hsuan Wu, Yueh-Cheng Liu, Yi-Hsuan Tsai, Min Sun
NeurIPS 2022
[Paper], [Project Page], [Video]

For fixed issues and change in the implementation, please refer to CHANGELOG

Video

Installation

The current implementation uses python 3.7 and Pytorch 1.13. For convenience, we recommend using conda, miniconda, pyenv or any environment tool to keep isolate this implementation.

# Create and activate conda env (mlc) 
conda create -n mlc python=3.7 
conda activate mlc 

# Install Pytorch
conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia

# Assuming $HOME directory by default
cd ~/
# clone 360-MLC (Note that we have added HorizonNet as a submodule)
git clone --recurse-submodules [email protected]:EnriqueSolarte/360-mlc.git

cd ~/360-mlc

# Install python dependencies
pip install -r requirements.txt

# Install MLC library
pip install .

Dataset

The dataset used in this implementation is the MP3D-FPE dataset released by (Solarte et al. 2019 RA-L). To process this dataset, we have prepared a script for you data/process_mp3d_fpe_data.py -h. Please follow the next commands:

MP3D_FPE_DIR="<MP3D_FPE dataset directory>"
python data/process_mp3d_fpe_data.py --path $MP3D_FPE_DIR

How to create 360-mlc labels

To create pseudo labels based on a pre-trained model, you must use main_create_mlc_labels.py -h by following the next commands:

CKPT=zind # e.g. mp3d, zind, st3d or panos2d3d
python main_create_mlc_labels.py --ckpt $CKPT --cfg ./config/create_mlc_labels.yaml

To download ckpt pre-trained models, you can refer to the official pre-trained models in HorizonNet.

After to download a ckpt model, you need to modify accordingly the cfg file config/trained_models.yaml. Finally, after to generate your mlc-labels (e.g. hn_mp3d__mp3d_fpe__mlc), you may have to update the cfg file config/mvl_data.yaml.

Self-training

To self-trained a model into a new dataset, e.g MP3D-FPE, you need two main requirements: (1) a pre-trained models and (2) generated mlc pseudo labels. Please check How to create 360-mlc labels for more information.

For self-training using 360-MLC, we have prepared two scripts main_train_w_iou_val.py -h and main_train.py -h. To self-train, follow the next commands:

python main_train_w_iou_val.py --ckpt $CKPT --cfg ./config/train_mlc.yaml --mlc hn_${CKPT}__mp3d_fpe__mlc

python main_train.py --ckpt $CKPT --cfg ./config/train_mlc.yaml --mlc hn_${CKPT}__mp3d_fpe__mlc

Global directories

All data is saved at .assets/ by default. However, you can modify this in ./config/train_mlc.yaml and ./config/create_mlc_labels.yaml by editing the parameter dirs, e.g.:

dirs: 
  mp3d_fpe_dir: ${workspace_dir}/assets/mp3d_fpe_dataset
  mlc_label_dir: ${workspace_dir}/assets/mlc_labels
  output_dir: ${workspace_dir}/assets/mlc_results

Citation

@inproceedings{solarte2022mlc,
    author={Solarte, Bolivar and Wu, Chin-Hsuan and Liu, Yueh-Cheng and Tsai, Yi-Hsuan and Sun, Min},
    title={360-MLC: Multi-view Layout Consistency for Self-training and Hyper-parameter Tuning},
    booktitle={Advances in Neural Information Processing Systems},
    year={2022},
}

360-mlc's People

Contributors

chinhsuanwu avatar enriquesolarte avatar jcjhang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

jcjhang

360-mlc's Issues

How is the ceiling height induced?

Hi, thanks for your great work first.

I made a figure to understand your Eq. (3) in supplementary.

But I don't understand how r^c, r^f can be wiped out.

Is there something wrong on the figure?

image

For process mp3d_fpe data and others

Thank you for your nice work!

I have two problems:

  1. When I run 'process_mp3d_fpe_data.py' for mp3d_fpe data in google drive, it requires 'room_gt.yaml' but it doesn't exist.
  2. When I run your code on my real data, It also doesn't have 'gt.yaml' .

To solve this, should I remove that part including 'room_gt.yaml' ?
And, for run your main code, the gt file is also required?

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.