Planar Prior Assisted PatchMatch Multi-View Stereo

Related tags

Deep Learning ACMP
Overview

ACMP

[News] The code for ACMH is released!!!
[News] The code for ACMM is released!!!

About

This repository contains the code for the paper Planar Prior Assisted PatchMatch Multi-View Stereo, Qingshan Xu and Wenbing Tao, AAAI2020. If you find this project useful for your research, please cite:

@article{Xu2020ACMP,  
  title={Planar Prior Assisted PatchMatch Multi-View Stereo}, 
  author={Xu, Qingshan and Tao, Wenbing}, 
  journal={AAAI Conference on Artificial Intelligence (AAAI)},
  year={2020}
}
@article{Xu2019ACMM,  
  title={Multi-Scale Geometric Consistency Guided Multi-View Stereo}, 
  author={Xu, Qingshan and Tao, Wenbing}, 
  journal={Computer Vision and Pattern Recognition (CVPR)},
  year={2019}
}

Dependencies

The code has been tested on Ubuntu 14.04 with GTX Titan X.

Usage

  • Complie ACMP
cmake .  
make
  • Test
Use script colmap2mvsnet_acm.py to convert COLMAP SfM result to ACMP input   
Run ./ACMP $data_folder to get reconstruction results

Acknowledgemets

This code largely benefits from the following repositories: Gipuma and COLMAP. Thanks to their authors for opening source of their excellent works.

Comments
  • ACMMP algorithm on ETH3D dataset

    ACMMP algorithm on ETH3D dataset

    Hi, in the paper Planar Prior Assisted PatchMatch Multi-View Stereo you say maybe you will combine ACMP with multi-scale strategy in the future, is the algorithm ACMMP the implementation? It looks like so from the name.

    If you do not know about ACMMP, do you implement ACMP + ACMM yourself? Will it be much better than ACMP? And how about the speed?

    opened by CanCanZeng 4
  • Unable to reproduce ETH3D results

    Unable to reproduce ETH3D results

    Thank you for making your code available!

    I am trying to use your ACMP code to reproduce your reconstruction results that are posted on the ETH3D website and that were published in your AAAI-20 paper. My methodology is:

    1. Build the ACMP code from this repository (including PR #4)
    2. Download the High-res multi-view training datasets (multi_view_training_dslr_undistorted.7z) from the ETH3D website
    3. Use colmap2mvsnet_acm.py with default parameters to convert the COLMAP files to MVSNet format
    4. Run the ACMP executable to reconstruct 3D point clouds
    5. Run ETH3DMultiViewEvaluation to compute the F1 score at 2 cm tolerance

    When I use your code to reconstruct and evaluate the point clouds in this manner, I get some F1 scores that differ significantly from those posted on the ETH3D website:

    | Dataset | F1 score
    (GitHub
    code)| F1 score
    (ETH3D
    website) | Δ | | ---------- | -------- | -------- | -------- | | courtyard | 84.09 | 85.61 | -1.52 | | delivery | 85.51 | 85.68 | -0.17 | | electro | 86.23 | 85.61 | +0.62 | | facade | 69.06 | 69.59 | -0.53 | | kicker | 72.83 | 77.33 | -4.50 | | meadow | 60.53 | 71.00 | -10.47 | | office | 74.17 | 74.45 | -0.28 | | pipes | 68.95 | 69.16 | -0.21 | | playground | 69.23 | 71.88 | -2.65 | | relief | 84.74 | 83.15 | +1.59 | | relief_2 | 84.21 | 83.37 | +0.84 | | terrace | 90.19 | 89.92 | +0.27 | | terrains | 88.67 | 90.57 | -1.90 |

    I realize that the algorithm is non-deterministic, and that F1 scores may vary slightly from one execution to the next. However, the F1 scores for the kicker and meadow datasets are much worse when I run this ACMP code, compared to the results posted on the ETH3D website.

    What are the differences between the code posted in this repository and the code that was used to generate the results in the paper and posted on the ETH3D website?

    opened by drkoller 4
  • Speed up fusion and patch match

    Speed up fusion and patch match

    Hi I would like to thank the author who did this awesome research. I can get very good results. Is there a way to speed up these patchmatch and fusion? Any reference or advice would be highly appreciated. Thank you

    opened by drsmartbot 2
  • Memory Requirements

    Memory Requirements

    Hey!

    Are there any memory requirements for this codebase? I'm working with (~4000) 918x1368 images and often find the codebase exists with "Killed" indicating that I am running out of memory (128G) at some random point during the geometric consistency phase. Is this related to #4?

    opened by shreyas23 2
  • Bug fixes (Memory leaks, default permissions...)

    Bug fixes (Memory leaks, default permissions...)

    • fix default permissions (777 is a bad idea as it's way too much permissive)
    • correct format for size_t
    • fix an out of array bounds access
    • fix leaks as cv::Mat does not take ownership of data pointer and thus cannot de allocate the underlying memory.

    same fixes hold for ACMM and ACMH. I'll make a dedicated PR for the two other repos as well if you are ok with that.

    opened by rjanvier 1
  • Quesiton about Equation (9) in ACMP paper P(Xij | Zj, Theta_i)

    Quesiton about Equation (9) in ACMP paper P(Xij | Zj, Theta_i)

    https://arxiv.org/pdf/1912.11744.pdf

    In your Graphical model of view selection, when you define the probability of having Xij given Zj and Theta_i, it seems to be independent from Zj. Since mij corresponds to the cost of a given Theta hypothesis

    In this case the view selection probability (Eq 11) is reduced to being proportional to P(Zj | Znj)

    I thus also don't get your Monte-Carlo sampling to define the weight for each source image Ij as wj.

    What am I missing ?

    Many thanks

    opened by ThomasParistech 0
  • Depth map visualization problem

    Depth map visualization problem

    Thanks for your great work! I get excellent result on my indoor dataset. But when I try to visualize the depth map, I find it's ugly compared with colmap depth map. I just normalize the depth map through (depthmap - depthmap.min)/(depthmap.max - depthmap.min). Is there anything better I can do? colmap depth map: image ACMP depth map: image Planar model: image

    opened by ItaloFan 1
  • unused code or bug?

    unused code or bug?

    Hi, I find a confusing code here, is this an unused code or a bug? https://github.com/GhiXu/ACMP/blob/604e2347f8a7d302ebaa4cb619b0bf2e87527853/ACMP.cu#L588

    this situation seems never happens. But if I change the code to while (depth_perturbed < params.depth_min || depth_perturbed > params.depth_max); the program will get stuck.

    opened by CanCanZeng 3
  •  an illegal memory access was encountered in....ACMP.cu

    an illegal memory access was encountered in....ACMP.cu

    @GhiXu First of all, thank you for opening up the novel algorithm-ACMP!When I executed the acmp program, an error occurred, which caused the data processing to fail,as shown in the figure below:

    The log displayed by the program seems to indicate that the memory of the GPU is not enough,and my computer GPU is RTX1070.If you can give some suggestions or solutions, I will be very grateful!The resolution of the image is 6000*4000.

    opened by fengyunxuan 2
  • about the fusion code

    about the fusion code

    Hi GhiXu, thank you for your great work! I tested the code and it really produce beautiful result! And Since I'm more familiar with colmap, so I modified your code to read colmap project directly, so I do not have to use the script to convert project type. I opened the project in https://github.com/CanCanZeng/ACMP_colmap, but I can delete it if you do not like it.

    I looked into the depth fusion code, it's very similar to the original fusion code in colmap, and I set the parameters to the same, but the fused point cloud is much different, I can't find the cause. Have you find this situation?

    The images I used is from https://github.com/openMVG/ImageDataset_SceauxCastle, and the SfM is done by colmap. the depth map is produced by ACMP on original resolution. the point cloud fused by ACMP and by colmap is much different Screenshot from 2021-06-16 21-50-52 Screenshot from 2021-06-16 21-51-08 the later is result from ACMP. I think the key parameters are reproj_error, relative_depth_diff, angle and num_consistent, I set them equal to colmap defaul value. I do not mean that the point cloud produced by colmap is better, I just want to know why they are so different.

    opened by CanCanZeng 2
Owner
Qingshan Xu
Ph.D. Candidate, HUST
Qingshan Xu
Python and C++ implementation of "MarkerPose: Robust real-time planar target tracking for accurate stereo pose estimation". Accepted at LXCV @ CVPR 2021.

MarkerPose: Robust real-time planar target tracking for accurate stereo pose estimation This is a PyTorch and LibTorch implementation of MarkerPose: a

Jhacson Meza 47 Nov 18, 2022
Multi-Scale Geometric Consistency Guided Multi-View Stereo

ACMM [News] The code for ACMH is released!!! [News] The code for ACMP is released!!! About ACMM is a multi-scale geometric consistency guided multi-vi

Qingshan Xu 118 Jan 4, 2023
Code for "Multi-View Multi-Person 3D Pose Estimation with Plane Sweep Stereo"

Multi-View Multi-Person 3D Pose Estimation with Plane Sweep Stereo This repository includes the source code for our CVPR 2021 paper on multi-view mult

Jiahao Lin 66 Jan 4, 2023
Pytorch implementation of paper: "NeurMiPs: Neural Mixture of Planar Experts for View Synthesis"

NeurMips: Neural Mixture of Planar Experts for View Synthesis This is the official repo for PyTorch implementation of paper "NeurMips: Neural Mixture

James Lin 101 Dec 13, 2022
Python scripts form performing stereo depth estimation using the high res stereo model in PyTorch .

PyTorch-High-Res-Stereo-Depth-Estimation Python scripts form performing stereo depth estimation using the high res stereo model in PyTorch. Stereo dep

Ibai Gorordo 26 Nov 24, 2022
RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching

RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching This repository contains the source code for our paper: RAFT-Stereo: Multilevel

Princeton Vision & Learning Lab 328 Jan 9, 2023
Pytorch codes for "Self-supervised Multi-view Stereo via Effective Co-Segmentation and Data-Augmentation"

Self-Supervised-MVS This repository is the official PyTorch implementation of our AAAI 2021 paper: "Self-supervised Multi-view Stereo via Effective Co

hongbin_xu 127 Jan 4, 2023
Code release of paper "Deep Multi-View Stereo gone wild"

Deep MVS gone wild Pytorch implementation of "Deep MVS gone wild" (Paper | website) This repository provides the code to reproduce the experiments of

François Darmon 53 Dec 24, 2022
[ICCV 2021 Oral] NerfingMVS: Guided Optimization of Neural Radiance Fields for Indoor Multi-view Stereo

NerfingMVS Project Page | Paper | Video | Data NerfingMVS: Guided Optimization of Neural Radiance Fields for Indoor Multi-view Stereo Yi Wei, Shaohui

Yi Wei 369 Dec 24, 2022
COLMAP - Structure-from-Motion and Multi-View Stereo

COLMAP About COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface.

null 4.7k Jan 7, 2023
Blender add-on: Add to Cameras menu: View → Camera, View → Add Camera, Camera → View, Previous Camera, Next Camera

Blender add-on: Camera additions In 3D view, it adds these actions to the View|Cameras menu: View → Camera : set the current camera to the 3D view Vie

German Bauer 11 Feb 8, 2022
Stereo Radiance Fields (SRF): Learning View Synthesis for Sparse Views of Novel Scenes

Stereo Radiance Fields (SRF): Learning View Synthesis for Sparse Views of Novel Scenes

null 111 Dec 29, 2022
git《Learning Pairwise Inter-Plane Relations for Piecewise Planar Reconstruction》(ECCV 2020) GitHub:

Learning Pairwise Inter-Plane Relations for Piecewise Planar Reconstruction Code for the ECCV 2020 paper by Yiming Qian and Yasutaka Furukawa Getting

null 37 Dec 4, 2022
This package is for running the semantic SLAM algorithm using extracted planar surfaces from the received detection

Semantic SLAM This package can perform optimization of pose estimated from VO/VIO methods which tend to drift over time. It uses planar surfaces extra

Hriday Bavle 125 Dec 2, 2022
A Planar RGB-D SLAM which utilizes Manhattan World structure to provide optimal camera pose trajectory while also providing a sparse reconstruction containing points, lines and planes, and a dense surfel-based reconstruction.

ManhattanSLAM Authors: Raza Yunus, Yanyan Li and Federico Tombari ManhattanSLAM is a real-time SLAM library for RGB-D cameras that computes the camera

null 117 Dec 28, 2022
Indoor Panorama Planar 3D Reconstruction via Divide and Conquer

HV-plane reconstruction from a single 360 image Code for our paper in CVPR 2021: Indoor Panorama Planar 3D Reconstruction via Divide and Conquer (pape

sunset 36 Jan 3, 2023
[ICCV 2021 (oral)] Planar Surface Reconstruction from Sparse Views

Planar Surface Reconstruction From Sparse Views Linyi Jin, Shengyi Qian, Andrew Owens, David F. Fouhey University of Michigan ICCV 2021 (Oral) This re

Linyi Jin 89 Jan 5, 2023
PyTorch implementation of HDN(Homography Decomposition Networks) for planar object tracking

Homography Decomposition Networks for Planar Object Tracking This project is the offical PyTorch implementation of HDN(Homography Decomposition Networ

CaptainHook 48 Dec 15, 2022
Code for the USENIX 2017 paper: kAFL: Hardware-Assisted Feedback Fuzzing for OS Kernels

kAFL: Hardware-Assisted Feedback Fuzzing for OS Kernels Blazing fast x86-64 VM kernel fuzzing framework with performant VM reloads for Linux, MacOS an

Chair for Sys­tems Se­cu­ri­ty 541 Nov 27, 2022