Giter Club home page Giter Club logo

image_datasets's Introduction

OpenMVG (open Multiple View Geometry)

License Documentation Continuous Integration (Linux/MacOs/Windows) Build Code Quality Chat
GitHub license doc
Wiki
CI local/docker build tutorial CodeQL
CodeFactor
Join the chat

Our Mission

  • Extend awareness of the power of 3D reconstruction from images/photogrammetry by developing a C++ framework.

Our Vision

  • Simplify reproducible research with easy-to-read and accurate implementation of state of the art and "classic" algorithms.

Our Credo

  • "Keep it simple, keep it maintainable".
    • OpenMVG is designed to be easy to read, learn, modify and use.
    • Thanks to its strict test-driven development and samples, the library allows to build trusted larger systems.

Our codebase and pipeline

OpenMVG provides an end-to-end 3D reconstruction from images framework compounded of libraries, binaries, and pipelines.

  • The libraries provide easy access to features like: images manipulation, features description and matching, feature tracking, camera models, multiple-view-geometry, robust-estimation, structure-from-motion algorithms, ...
  • The binaries solve unit tasks that a pipeline could require: scene initialization, feature detection & matching and structure-from-motion reconstruction, export the reconstructed scene to others Multiple-View-Stereovision framework to compute dense point clouds or textured meshes.
  • The pipelines are created by chaining various binaries to compute image matching relation, solve the Structure from Motion problem (reconstruction, triangulation, localization) and ...

OpenMVG is developed in C++ and runs on Android, iOS, Linux, macOS, and Windows.

Tutorials

More information

Authors

See Authors text file

Contact

openmvg-team[AT]googlegroups.com

Citations

We are recommending citing OpenMVG if you are using the whole library or the adequate paper if you use only a submodule AContrario Ransac [3], AContrario SfM [1], GlobalSfM [4] or Tracks [2]:

@inproceedings{moulon2016openmvg,
  title={Open{MVG}: Open multiple view geometry},
  author={Moulon, Pierre and Monasse, Pascal and Perrot, Romuald and Marlet, Renaud},
  booktitle={International Workshop on Reproducible Research in Pattern Recognition},
  pages={60--74},
  year={2016},
  organization={Springer}
}

[1] Moulon Pierre, Monasse Pascal and Marlet Renaud. ACCV 2012. Adaptive Structure from Motion with a contrario model estimation.

@inproceedings{Moulon2012,
  doi = {10.1007/978-3-642-37447-0_20},
  year  = {2012},
  publisher = {Springer Berlin Heidelberg},
  pages = {257--270},
  author = {Pierre Moulon and Pascal Monasse and Renaud Marlet},
  title = {Adaptive Structure from Motion with a~Contrario Model Estimation},
  booktitle = {Proceedings of the Asian Computer Vision Conference (ACCV 2012)}
}

[2] Moulon Pierre and Monasse Pascal. CVMP 2012. Unordered feature tracking made fast and easy.

@inproceedings{moulon2012unordered,
  title={Unordered feature tracking made fast and easy},
  author={Moulon, Pierre and Monasse, Pascal},
  booktitle={CVMP 2012},
  pages={1},
  year={2012}
}

[3] Moisan Lionel, Moulon Pierre and Monasse Pascal. IPOL 2012. Automatic Homographic Registration of a Pair of Images, with A Contrario Elimination of Outliers.

@article{moisan2012automatic,
  title={Automatic homographic registration of a pair of images, with a contrario elimination of outliers},
  author={Moisan, Lionel and Moulon, Pierre and Monasse, Pascal},
  journal={Image Processing On Line},
  volume={2},
  pages={56--73},
  year={2012}
}

[4] Moulon Pierre, Monasse Pascal, and Marlet Renaud. ICCV 2013. Global Fusion of Relative Motions for Robust, Accurate and Scalable Structure from Motion.

@inproceedings{moulon2013global,
  title={Global fusion of relative motions for robust, accurate and scalable structure from motion},
  author={Moulon, Pierre and Monasse, Pascal and Marlet, Renaud},
  booktitle={Proceedings of the IEEE International Conference on Computer Vision},
  pages={3248--3255},
  year={2013}
}

Acknowledgements

openMVG authors would like to thanks libmv authors for providing an inspiring base to design openMVG. Authors also would like to thanks Mikros Image and LIGM-Imagine laboratory for support and authorization to make this library an opensource project.

image_datasets's People

Contributors

pmoulon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

image_datasets's Issues

instructions for 360 dataset no longer work

The instructions for processing 360 images (at Image_datasets/blob/main/360_dataset/README.md) appear to have become broken by a change to openMVG or openMVS.

line 20 of the readme reads:

$ openMVG_main_ComputeMatches -i $dataset_out/matches/sfm_data.json -o $dataset_out/matches -g a

running this command prints usage instructions and warns of an unrecognized option -g

$ openMVG_main_ComputeMatches -i $dataset_out/matches/sfm_data.json -o $dataset_out/matches -g a
INFO: [main_ComputeMatches.cpp:79] Usage: openMVG_main_ComputeMatches
[-i|--input_file]   A SfM_Data file
[-o|--output_file]  Output file where computed matches are stored
[-p|--pair_list]    Pairs list file

[Optional]
[-f|--force] Force to recompute data]
[-r|--ratio] Distance ratio to discard non meaningful matches
   0.8: (default).
[-n|--nearest_matching_method]
  AUTO: auto choice from regions type,
  For Scalar based regions descriptor:
    BRUTEFORCEL2: L2 BruteForce matching,
    HNSWL2: L2 Approximate Matching with Hierarchical Navigable Small World graphs,
    HNSWL1: L1 Approximate Matching with Hierarchical Navigable Small World graphs
      tailored for quantized and histogram based descriptors (e.g uint8 RootSIFT)
    ANNL2: L2 Approximate Nearest Neighbor matching,
    CASCADEHASHINGL2: L2 Cascade Hashing matching.
    FASTCASCADEHASHINGL2: (default)
      L2 Cascade Hashing with precomputed hashed regions
     (faster than CASCADEHASHINGL2 but use more memory).
  For Binary based descriptor:
    BRUTEFORCEHAMMING: BruteForce Hamming matching,
    HNSWHAMMING: Hamming Approximate Matching with Hierarchical Navigable Small World graphs
[-c|--cache_size]
  Use a regions cache (only cache_size regions will be stored in memory)
  If not used, all regions will be load in memory.
[Pre-emptive matching:]
[-P|--preemptive_feature_count] <NUMBER> Number of feature used for pre-emptive matching
INFO: [main_ComputeMatches.cpp:109] Unrecognized option -g

running the command without -g a results in invalid region file error:

INFO: [main_ComputeMatches.cpp:113]  You called : 
openMVG_main_ComputeMatches
--input_file /home/96fps/project/Image_datasets/360_dataset/360_Flat/matches/sfm_data.json
--output_file /home/96fps/project/Image_datasets/360_dataset/360_Flat/matches
--pair_list 
Optional parameters:
--force 0
--ratio 0.8
--nearest_matching_method AUTO
--cache_size unlimited
--preemptive_feature_used/count 0 / 200
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010217.JPG
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010211.JPG
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010214.JPG
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010215.JPG
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010220.JPG
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010212.JPG
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010213.JPG
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010210.JPG
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010218.JPG
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010219.JPG
ERROR: [sfm_regions_provider.hpp:124] Invalid regions files for the view: /home/96fps/project/Image_datasets/360_dataset/360_Flat/images/R0010216.JPG
INFO: [loggerprogress.hpp:79] [- Regions Loading -] 100%
ERROR: [main_ComputeMatches.cpp:194] Cannot load view regions from: /home/96fps/project/Image_datasets/360_dataset/360_Flat.

failed reloading header created with openMVGSpherical2Cubic

Hello @pmoulon,

First of all, many thanks for all the work, it is always a pleasure to work with openMVG.
I am trying to densify a model computed with 591 spherical images. I followed the steps listed here. The incremental reconstruction of the sparse model worked fine. I am looking for a way to get a dense model now, I performed all the steps but DensifyPointCloud does not work.
I run the following command :

./openMVG_main_openMVG2openMVS -i $dataset/omvs/cubic/sfm_data_perspective.bin -o $dataset/omvs/scene.mvs -d $dataset/omvs/cubic/

and then

./DensifyPointCloud -i $dataset/omvs/scene.mvs

When I do so I get the following error :

12:58:19 [App     ] Build date: Nov 11 2020, 19:17:06
12:58:19 [App     ] CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz (48 cores)
12:58:19 [App     ] RAM: 251.81GB Physical Memory 1.91GB Virtual Memory
12:58:19 [App     ] OS: Linux 4.15.0-96-generic (x86_64)
12:58:19 [App     ] SSE & AVX compatible CPU & OS detected
12:58:20 [App     ] Command line: -i /media/scanvan/model/camera_40008603-40009302/20201001/20201001-175336_20200220-155037_sion-loop-1-normalized/omvs/scene.mvs
12:58:20 [App     ] CUDA device 0 initialized: GeForce GTX TITAN X (compute capability 5.2; memory 11.93GB)
12:58:20 [App     ] Camera model loaded: platform 0; camera  0; f 0.000x0.000; poses 3546
libpng error: Not a PNG file
12:58:20 [App     ] error: failed loading image header
12:58:20 [App     ] error: failed reloading image '/media/scanvan/model/camera_40008603-40009302/20201001/20201001-175336_20200220-155037_sion-loop-1-normalized/omvs/cubic/20200220-155037-476283_perspective_00000000.png'
12:58:20 [App     ] error: invalid project

I am using the most recent versions of openMVG and openMVS.
Do you know why I get the following error?
Also, when I pass the original spherical images as input (-d $dataset/omvs/images_tif/ ) of openMVG_main_openMVG2openMVS instead of the cubic ones, I get the same error. Which ones should I use when running this command?

Many thanks in advance!

generating pano error

  1. openMVG_main_ComputeMatches -i $dataset_out/matches/sfm_data.json -o $dataset_out/matches -g a
    INFO: [main_ComputeMatches.cpp:110] Unrecognized option -g
    it occurs a info when i execute this line.
    2.openMVG_main_SfM -i $dataset_out/matches/sfm_data.json -m $dataset_out/matches -o $dataset_out/reconstruction
    ERROR: [main_SfM.cpp:409] Cannot load the match file.

How should i do? I run it on windows11.

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.