Implementation for the "Surface Reconstruction from 3D Line Segments" paper.

Overview

Surface Reconstruction from 3D Line Segments

Surface reconstruction from 3d line segments.
Langlois, P. A., Boulch, A., & Marlet, R.
In 2019 International Conference on 3D Vision (3DV) (pp. 553-563). IEEE. Project banner

Installation

  • [IMPORTANT NOTE] The plane arrangement is given as a Linux x64 binary. Please let us know if you need it for an other platform/compiler or if you have issues with it.

  • MOSEK 8 :

    • Download
    • Installation instructions.
    • Request a license (free for academics), and put it in ~/mosek/mosek.lic.
    • Set the mosek directory in the MOSEK_DIR environment variable such that <MOSEK_DIR>/8/tools/platform/linux64x86/src/fusion_cxx is a valid path:

    export MOSEK_DIR=/path/to/mosek

    • Make sure that the binaries are available at runtime:

    export LD_LIBRARY_PATH=$MOSEK_DIR/8/tools/platform/linux64x86/bin:$LD_LIBRARY_PATH

  • Clone this repository: git clone https://github.com/palanglois/line-surface-reconstruction.git

  • Go to the directory: cd line-surface-reconstruction

  • CGAL : Version 4.11 is required:

git clone https://github.com/CGAL/cgal.git external/cgal
cd external/cgal
git checkout releases/CGAL-4.11.3
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
cd ../../..
  • Make a build directory: mkdir build
  • Go to the build directory: cd build
  • Prepare the project with cmake: cmake -DCMAKE_BUILD_TYPE=Release ..
  • Compile the project: make

Examples

  • Out of the box examples are available in demo.sh

  • An example of a full reconstruction procedure from a simple set of images is available here

  • A benchmark example for an artificial textureless scene (with quantitative evaluation) is available here.

Programs

For every program, a simple documentation is available by running ./<program_name> -h

  • ransac_on_lines detects planes in a line set.
  • line_based_recons_param performs reconstruction out of a set of lines and detected planes. Computing the linear program is time consuming, but optimizing is way faster. Therefore, this program 1st computes the linear program and enters a loop in which you can manually set the optimization parameters in order to find the optimal ones for your reconstruction.
  • line_based_recons does the same as line_based_recons_param but the optimization parameters are set directly in the command line. Use it only if you know the optimal parameters for the reconstruction.
  • mesh_metrics provides evaluation metrics between two meshes.

Visualization

Reconstruction .ply files can be visualized directly in programs such as Meshlab or CloudCompare.

A simple OpenGL viewer is available to directly visualize the json line files.

Raw data

The raw data for Andalusian and HouseInterior is available here. For both examples, it includes the raw images as well as the full calibration in .nvm (VisualSFM) format.

For HouseInterior, a ground truth mesh is also available.

License

Apart from the code located in the external directory, all the code is provided under the GPL license.

The binaries and code provided in the external/PolyhedralComplex directory is provided under the Creative Commons CC-BY-SA license.

If these licenses do not suit your needs, please get in touch with us.

Citing this work

@inproceedings{langlois:hal-02344362,
TITLE = {{Surface Reconstruction from 3D Line Segments}},
AUTHOR = {Langlois, Pierre-Alain and Boulch, Alexandre and Marlet, Renaud},
URL = {https://hal.archives-ouvertes.fr/hal-02344362},
BOOKTITLE = {{2019 International Conference on 3D Vision (3DV)}},
ADDRESS = {Qu{\'e}bec City, Canada},
PUBLISHER = {{IEEE}},
PAGES = {553-563},
YEAR = {2019},
MONTH = Sep,
DOI = {10.1109/3DV.2019.00067},
} 
Code for CVPR2021 paper 'Where and What? Examining Interpretable Disentangled Representations'.

PS-SC GAN This repository contains the main code for training a PS-SC GAN (a GAN implemented with the Perceptual Simplicity and Spatial Constriction c

Xinqi/Steven Zhu 40 Dec 16, 2022
Proof-Of-Concept Piano-Drums Music AI Model/Implementation

Rock Piano "When all is one and one is all, that's what it is to be a rock and not to roll." ---Led Zeppelin, "Stairway To Heaven" Proof-Of-Concept Pi

Alex 4 Nov 28, 2021
Official code for "Eigenlanes: Data-Driven Lane Descriptors for Structurally Diverse Lanes", CVPR2022

[CVPR 2022] Eigenlanes: Data-Driven Lane Descriptors for Structurally Diverse Lanes Dongkwon Jin, Wonhui Park, Seong-Gyun Jeong, Heeyeon Kwon, and Cha

Dongkwon Jin 106 Dec 29, 2022
Easily pull telemetry data and create beautiful visualizations for analysis.

This repository is a work in progress. Anything and everything is subject to change. Porpo Table of Contents Porpo Table of Contents General Informati

Ryan Dawes 33 Nov 30, 2022
Calibrate your listeners! Robust communication-based training for pragmatic speakers. Findings of EMNLP 2021.

Calibrate your listeners! Robust communication-based training for pragmatic speakers Rose E. Wang, Julia White, Jesse Mu, Noah D. Goodman Findings of

Rose E. Wang 3 Apr 02, 2022
Papers about explainability of GNNs

Papers about explainability of GNNs

Dongsheng Luo 236 Jan 04, 2023
領域を指定し、キーを入力することで画像を保存するツールです。クラス分類用のデータセット作成を想定しています。

image-capture-class-annotation 領域を指定し、キーを入力することで画像を保存するツールです。 クラス分類用のデータセット作成を想定しています。 Requirement OpenCV 3.4.2 or later Usage 実行方法は以下です。 起動後はマウスクリック4

KazuhitoTakahashi 5 May 28, 2021
Kaggleship: Kaggle Notebooks

Kaggleship: Kaggle Notebooks This repository contains my Kaggle notebooks. They are generally about data science, machine learning, and deep learning.

Erfan Sobhaei 1 Jan 25, 2022
Structure-Preserving Deraining with Residue Channel Prior Guidance (ICCV2021)

SPDNet Structure-Preserving Deraining with Residue Channel Prior Guidance (ICCV2021) Requirements Linux Platform NVIDIA GPU + CUDA CuDNN PyTorch == 0.

41 Dec 12, 2022
Official implementation of the article "Unsupervised JPEG Domain Adaptation For Practical Digital Forensics"

Unsupervised JPEG Domain Adaptation for Practical Digital Image Forensics @WIFS2021 (Montpellier, France) Rony Abecidan, Vincent Itier, Jeremie Boulan

Rony Abecidan 6 Jan 06, 2023
The code release of paper 'Domain Generalization for Medical Imaging Classification with Linear-Dependency Regularization' NIPS 2020.

Domain Generalization for Medical Imaging Classification with Linear Dependency Regularization The code release of paper 'Domain Generalization for Me

Yufei Wang 56 Dec 28, 2022
CausalNLP is a practical toolkit for causal inference with text as treatment, outcome, or "controlled-for" variable.

CausalNLP CausalNLP is a practical toolkit for causal inference with text as treatment, outcome, or "controlled-for" variable. Install pip install -U

Arun S. Maiya 95 Jan 03, 2023
Transferable Unrestricted Attacks, which won 1st place in CVPR’21 Security AI Challenger: Unrestricted Adversarial Attacks on ImageNet.

Transferable Unrestricted Adversarial Examples This is the PyTorch implementation of the Arxiv paper: Towards Transferable Unrestricted Adversarial Ex

equation 16 Dec 29, 2022
SCNet: Learning Semantic Correspondence

SCNet Code Region matching code is contributed by Kai Han ([email protected]). Dense

Kai Han 34 Sep 06, 2022
Workshop Materials Delivered on 28/02/2022

intro-to-cnn-p1 Repo for hosting workshop materials delivered on 28/02/2022 Questions you will answer in this workshop Learning Objectives What are co

Beginners Machine Learning 5 Feb 28, 2022
Pytorch implementation of AREL

Status: Archive (code is provided as-is, no updates expected) Agent-Temporal Attention for Reward Redistribution in Episodic Multi-Agent Reinforcement

8 Nov 25, 2022
[ACM MM 2021] Diverse Image Inpainting with Bidirectional and Autoregressive Transformers

Diverse Image Inpainting with Bidirectional and Autoregressive Transformers Installation pip install -r requirements.txt Dataset Preparation Given the

Yingchen Yu 25 Nov 09, 2022
😇A pyTorch implementation of the DeepMoji model: state-of-the-art deep learning model for analyzing sentiment, emotion, sarcasm etc

------ Update September 2018 ------ It's been a year since TorchMoji and DeepMoji were released. We're trying to understand how it's being used such t

Hugging Face 865 Dec 24, 2022
Adversarial Self-Defense for Cycle-Consistent GANs

Adversarial Self-Defense for Cycle-Consistent GANs This is the official implementation of the CycleGAN robust to self-adversarial attacks used in pape

Dina Bashkirova 10 Oct 10, 2022
This is RFA-Toolbox, a simple and easy-to-use library that allows you to optimize your neural network architectures using receptive field analysis (RFA) and create graph visualizations of your architecture.

ReceptiveFieldAnalysisToolbox This is RFA-Toolbox, a simple and easy-to-use library that allows you to optimize your neural network architectures usin

84 Nov 23, 2022