All Projects → AIBluefisher → EGSfM

AIBluefisher / EGSfM

Licence: BSD-3-Clause license
The old implementation of GraphSfM based on openMVG.

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects
objective c
16641 projects - #2 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to EGSfM

Uav Mapper
UAV-Mapper is a lightweight UAV Image Processing System, Visual SFM reconstruction or Aerial Triangulation, Fast Ortho-Mosaic, Plannar Mosaic, Fast Digital Surface Map (DSM) and 3d reconstruction for UAVs.
Stars: ✭ 106 (+21.84%)
Mutual labels:  structure-from-motion, reconstruction
Mvstudio
An integrated SfM (Structure from Motion) and MVS (Multi-View Stereo) solution.
Stars: ✭ 154 (+77.01%)
Mutual labels:  structure-from-motion, reconstruction
Colmap
COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface. It offers a wide range of features for reconstruction of ordered and unordered image collections. The software is licensed under the new BSD license. If you use this project for your research, please cite:
Stars: ✭ 3,479 (+3898.85%)
Mutual labels:  structure-from-motion, reconstruction
Demon
DeMoN: Depth and Motion Network
Stars: ✭ 501 (+475.86%)
Mutual labels:  structure-from-motion
Boofcv
Fast computer vision library for SFM, calibration, fiducials, tracking, image processing, and more.
Stars: ✭ 706 (+711.49%)
Mutual labels:  structure-from-motion
Monocularsfm
Monocular Structure from Motion
Stars: ✭ 128 (+47.13%)
Mutual labels:  structure-from-motion
Deeptam
DeepTAM: Deep Tracking and Mapping https://lmb.informatik.uni-freiburg.de/people/zhouh/deeptam/
Stars: ✭ 198 (+127.59%)
Mutual labels:  structure-from-motion
Kapture
kapture is a file format as well as a set of tools for manipulating datasets, and in particular Visual Localization and Structure from Motion data.
Stars: ✭ 128 (+47.13%)
Mutual labels:  structure-from-motion
Blender Addon Photogrammetry Importer
Addon to import different photogrammetry formats into Blender
Stars: ✭ 292 (+235.63%)
Mutual labels:  structure-from-motion
Bundler sfm
Bundler Structure from Motion Toolkit
Stars: ✭ 1,296 (+1389.66%)
Mutual labels:  structure-from-motion
Ceres Solver
A large scale non-linear optimization library
Stars: ✭ 2,180 (+2405.75%)
Mutual labels:  structure-from-motion
Py3drec
3D modeling from uncalibrated images
Stars: ✭ 65 (-25.29%)
Mutual labels:  structure-from-motion
Meshroom
3D Reconstruction Software
Stars: ✭ 7,254 (+8237.93%)
Mutual labels:  structure-from-motion
Alicevision
Photogrammetric Computer Vision Framework
Stars: ✭ 2,029 (+2232.18%)
Mutual labels:  structure-from-motion
Theiasfm
An open source library for multiview geometry and structure from motion
Stars: ✭ 647 (+643.68%)
Mutual labels:  structure-from-motion
yeast-GEM
The consensus GEM for Saccharomyces cerevisiae
Stars: ✭ 72 (-17.24%)
Mutual labels:  reconstruction
Openmvg
open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.
Stars: ✭ 3,902 (+4385.06%)
Mutual labels:  structure-from-motion
carveme
CarveMe: genome-scale metabolic model reconstruction
Stars: ✭ 99 (+13.79%)
Mutual labels:  reconstruction
simple-sfm
A readable implementation of structure-from-motion
Stars: ✭ 19 (-78.16%)
Mutual labels:  structure-from-motion
realtime-2D-to-3D-faces
Reconstructing real-time 3D faces from 2D images using deep learning.
Stars: ✭ 92 (+5.75%)
Mutual labels:  reconstruction

Graph Structure from Motion (GraphSfM)

This project is not maintained anymore.

1. Overview of GraphSfM

Our Structure from Motion approach, named Graph Structure from Motion, is aimed at large scale 3D reconstruction. Besides, we aimed at exploring the computation ability of computer and making SfM easily transferred to distributed system. Our work is partially based on an early version of OpenMVG.

In our work, 3D reconstruction is deemed as a divide-and-conquer problem. Our adaptive graph cluster algorithm divides images into different clusters, while images with high relativity remained in the same group. The strong/weak spanning tree (ST) conditions enhance the connectivity between clusters, and make multiple point clouds alignment more robust. After the completion of local SfM in all clusters, an elaborate graph initialization and MST construction algorithm is designed to accurately merge clusters, and cope well with drift problems. The two proposed graph-based algorithms make SfM more efficient and robust - the graph cluster algorithm accelerate the SfM step while guarantee the robustness of clusters merging, and the MST construction makes point clouds alignment as accurate as possible. Our approach can reconstruct large scale data-set in one single machine with very high accuracy and efficiency.

2. How to Build

2.1 Required

## Global Required(For development: GLOG, GFlags, GTest)
sudo apt-get install libgoogle-glog-dev libgflags-dev libgtest-dev

cd /usr/src/gtest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo cp libgtest* /usr/lib/
cd ..
sudo rm -rf build

git clone https://github.com/gflags/gflags
cd gflags
mkdir build && cd build
cmake ..
make -j4
sudo make install

## Eigen 3
hg clone https://bitbucket.org/eigen/eigen
mkdir eigen_build && cd eigen_build
cmake . ../eigen
make && sudo make install
cd ..

## Ceres-Solver (Required by both COLMAP and TheiaSfM and OpenMVG)
sudo apt-get install libatlas-base-dev libsuitesparse-dev
git clone https://github.com/ceres-solver/ceres-solver.git
cd ceres-solver
git checkout $(git describe --tags) # Checkout the latest release
mkdir build
cd build
cmake .. -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF
make
sudo make install

## Required by openMVG
sudo apt-get install libpng-dev libjpeg-dev libtiff-dev libxxf86vm1 libxxf86vm-dev libxi-dev libxrandr-dev graphviz

## Required by COLMAP
sudo apt-get install \
    git \
    cmake \
    build-essential \
    libboost-program-options-dev \
    libboost-filesystem-dev \
    libboost-graph-dev \
    libboost-regex-dev \
    libboost-system-dev \
    libboost-test-dev \
    libeigen3-dev \
    libsuitesparse-dev \
    libfreeimage-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    libglew-dev \
    qtbase5-dev \
    libqt5opengl5-dev \
    libcgal-dev \
    libcgal-qt5-dev


## Configure and compile COLMAP (Optional)
git clone https://github.com/colmap/colmap.git
cd colmap
git checkout dev
mkdir build
cd build
cmake ..
make
sudo make install

#GLFW3 (Optional)
sudo apt-get -y install freeglut3-dev libglew-dev libglfw3-dev

2.2 Build

cd EGSfM
mkdir build && cd build
cmake -D CUDA_USE_STATIC_CUDA_RUNTIME=OFF ..
make -j4

3. Usage

All the parameters required for running your sfm tasks should be provided in a yaml file. There is template named config.yaml in app subfolder. Then you may run the command

./bin/sfm_reconstruction --config_filename=$yourpath/config.yaml

However, the old version to run sfm tasks is also provided is scripts subfolder:

For small scale reconstruction, just use the incremental SfM pipeline of OpenMVG

python scripts/sfm/openmvg_sequential_pipeline.py $image_dir $output_dir

For large scale reconstruction, our GSfM is highly recommended.

python scripts/sfm/sfm_divide_and_conquer_pipeline.py $image_dir $output_dir $max_img_num
  • $image_dir: The directory that stores images
  • $output_dir: The directory that stores the reconstruciton results
  • $max_img_num: The maximum image number in each cluster. For example, 80~120.

4. License

BSD 3-Clause License

Copyright (c) 2019, 陈煜 All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].