Giter Club home page Giter Club logo

colmap's Introduction

COLMAP

About

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:

@inproceedings{schoenberger2016sfm,
    author={Sch\"{o}nberger, Johannes Lutz and Frahm, Jan-Michael},
    title={Structure-from-Motion Revisited},
    booktitle={Conference on Computer Vision and Pattern Recognition (CVPR)},
    year={2016},
}

@inproceedings{schoenberger2016mvs,
    author={Sch\"{o}nberger, Johannes Lutz and Zheng, Enliang and Pollefeys, Marc and Frahm, Jan-Michael},
    title={Pixelwise View Selection for Unstructured Multi-View Stereo},
    booktitle={European Conference on Computer Vision (ECCV)},
    year={2016},
}

If you use the image retrieval / vocabulary tree engine, please also cite:

@inproceedings{schoenberger2016vote,
    author={Sch\"{o}nberger, Johannes Lutz and Price, True and Sattler, Torsten and Frahm, Jan-Michael and Pollefeys, Marc},
    title={A Vote-and-Verify Strategy for Fast Spatial Verification in Image Retrieval},
    booktitle={Asian Conference on Computer Vision (ACCV)},
    year={2016},
}

The latest source code is available at https://github.com/colmap/colmap. COLMAP builds on top of existing works and when using specific algorithms within COLMAP, please also cite the original authors, as specified in the source code, and consider citing relevant third-party dependencies.

Download

Getting Started

  1. Download pre-built binaries or build from source.
  2. Download one of the provided datasets at https://demuc.de/colmap/datasets/ or use your own images.
  3. Use the automatic reconstruction to easily build models with a single click or command.

Documentation

The documentation is available at https://colmap.github.io/.

Support

Please, use GitHub Discussions at https://github.com/colmap/colmap/discussions for questions and the GitHub issue tracker at https://github.com/colmap/colmap for bug reports, feature requests/additions, etc.

Acknowledgments

COLMAP was originally written by Johannes Schönberger with funding provided by his PhD advisors Jan-Michael Frahm and Marc Pollefeys.

The Python bindings in PyCOLMAP were originally added by Mihai Dusmanu, Philipp Lindenberger, and Paul-Edouard Sarlin.

The project has also benefitted from countless community contributions, including bug fixes, improvements, new features, third-party tooling, and community support (special credits to Torsten Sattler).

Contribution

Contributions (bug reports, bug fixes, improvements, etc.) are very welcome and should be submitted in the form of new issues and/or pull requests on GitHub.

License

The COLMAP library is licensed under the new BSD license. Note that this text refers only to the license for COLMAP itself, independent of its thirdparty dependencies, which are separately licensed. Building COLMAP with these dependencies may affect the resulting COLMAP license.

Copyright (c) 2023, ETH Zurich and UNC Chapel Hill.
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 ETH Zurich and UNC Chapel Hill 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 HOLDERS 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.

colmap's People

Contributors

ahojnnes avatar alexmyczko avatar anmatako avatar b1ueber2y avatar clementpinard avatar daniilsnikulin avatar drkoller avatar elmirjagudin avatar ferreram avatar heimsi avatar is03wlei avatar jbeich avatar mihaidusmanu avatar oleg-alexandrov avatar pascal-so avatar puzzlepaint avatar rmbrualla avatar sarlinpe avatar sbcv avatar simonlynen avatar skydes avatar sniklaus avatar somealphabetguy avatar tmnku avatar tompollok avatar trueprice avatar tsattler avatar wesleyliwei avatar whuaegeanse avatar xiedufang 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  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  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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

colmap's Issues

Failed to build on Arch Linux.

[ 45%] Linking CXX executable warp_test
../util/libutil.a(bitmap.cc.o): In function `char const* boost::re_detail_106100::re_is_set_member<char const*, char, boost::regex_traits<char, boost::cpp_regex_traits<char> >, unsigned int>(char const*, char const*, boost::re_detail_106100::re_set_long<unsigned int> const*, boost::re_detail_106100::regex_data<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, bool)':
bitmap.cc:(.text._ZN5boost16re_detail_10610016re_is_set_memberIPKccNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEjEET_S8_S8_PKNS0_11re_set_longIT2_EERKNS0_10regex_dataIT0_T1_EEb[_ZN5boost16re_detail_10610016re_is_set_memberIPKccNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEjEET_S8_S8_PKNS0_11re_set_longIT2_EERKNS0_10regex_dataIT0_T1_EEb]+0x114): undefined reference to `boost::re_detail_106100::cpp_regex_traits_implementation<char>::transform_primary(char const*, char const*) const'
bitmap.cc:(.text._ZN5boost16re_detail_10610016re_is_set_memberIPKccNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEjEET_S8_S8_PKNS0_11re_set_longIT2_EERKNS0_10regex_dataIT0_T1_EEb[_ZN5boost16re_detail_10610016re_is_set_memberIPKccNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEjEET_S8_S8_PKNS0_11re_set_longIT2_EERKNS0_10regex_dataIT0_T1_EEb]+0x2b5): undefined reference to `boost::re_detail_106100::cpp_regex_traits_implementation<char>::transform(char const*, char const*) const'
collect2: error: ld returned 1 exit status
make[2]: *** [src/base/CMakeFiles/warp_test.dir/build.make:154: src/base/warp_test] Error 1
make[1]: *** [CMakeFiles/Makefile2:266: src/base/CMakeFiles/warp_test.dir/all] Error 2
make: *** [Makefile:139: all] Error 2

Command line issue when running MVS in COLMAP

Hi @ahojnnes,

I try to run whole COLMAP pipeline by command line shown in the document, SFM part works, but MVS part has a problem. The details show below:

database dir: /home/ubuntu/colmap_test/test/colmap.db
image_dir: /home/ubuntu/colmap_test/test/image (11 images (1.jpg, … , 11.jpg) dimension: 2832 × 2128)
sparse output dir: /home/ubuntu/colmap_test/test/sparse
dense output dir: /home/ubuntu/colmap_test/test/dense

Command line:

./database_creator --General.database_path /home/ubuntu/colmap_test/test/colmap.db

./feature_extractor --General.database_path /home/ubuntu/colmap_test/test/colmap.db --General.image_path /home/ubuntu/colmap_test/test/image --use_gpu 0

./exhaustive_matcher --General.database_path /home/ubuntu/colmap_test/test/colmap.db

./mapper --General.database_path /home/ubuntu/colmap_test/test/colmap.db --General.image_path /home/ubuntu/colmap_test/test/image --export_path /home/ubuntu/colmap_test/test/sparse

./model_converter --input_path /home/ubuntu/colmap_test/test/sparse/0 --output_path /home/ubuntu/colmap_test/test/sparse/points.ply --output_type PLY

./image_undistorter --General.image_path /home/ubuntu/colmap_test/test/image --input_path /home/ubuntu/colmap_test/test/sparse/0 --output_path /home/ubuntu/colmap_test/test/dense --output_type COLMAP --max_image_size 2000

./dense_mapper --workspace_path home/ubuntu/colmap_test/test/dense --workspace_format COLMAP --DenseMapperOptions.max_image_size 0 --DenseMapperOptions.patch_match_filter false --DenseMapperOptions.patch_match_geom_consistency false --DenseMapperOptions.patch_match_num_iterations 4

./dense_fuser --workspace_path /home/ubuntu/colmap_test/test/dense --workspace_format COLMAP --input_type geometric --output_path /home/ubuntu/colmap_test/test/dense/point-cloud.ply

./dense_mesher --input_path /home/ubuntu/colmap_test/test/dense/point-cloud.ply --output_path /home/ubuntu/colmap_test/test/dense/mesh.ply

SFM part works well, I obtain the ply outputs. Only thing is under the ~/sparse folder, there is a subfolder named 0 which includes SFM outputs: cameras.txt images.txt points3D.txt

For MVS part dense_mapper works, got the outputs in ~/dense: dense-reconstruction.sh images sparse stereo. And in ~/dense/stereo/depth_maps: 10.jpg.photometric.bin 1.jpg.photometric.bin 3.jpg.photometric.bin 5.jpg.photometric.bin 7.jpg.photometric.bin 9.jpg.photometric.bin
11.jpg.photometric.bin 2.jpg.photometric.bin 4.jpg.photometric.bin 6.jpg.photometric.bin 8.jpg.photometric.bin

But dense_fuser has problem with the error:


StereoFusion::Options

min_num_pixels: 3
max_num_pixels: 1000
max_traversal_depth: 100
max_reproj_error: 2
max_depth_error: 0.01
max_normal_error: 10

Reading model...
Reading configuration...
Loading image 8.jpgF1207 23:32:15.494607 5177 mat.h:130] Check failed: text_file.is_open() /home/ubuntu/colmap_test/test/dense/stereo/depth_maps/8.jpg.geometric.bin

I check the folder and make sure /home/ubuntu/colmap_test/test/dense/stereo/depth_maps/8.jpg.geometric.bin exists. So could you please help what this error means? Also I try to make sure I used command line with parameters in the correct way.

Thanks

CUDA_VERSION_MAJOR in CMAKE

In here and here

elseif(CUDA_VERSION_MAJOR LESS 7)

should be replaced by

elseif(CUDA_VERSION_MAJOR GREATER 7)

I think that's why I have error "invalid device function" with GTX 1070 and CUDA 8.0 when running sparse reconstruction.

Segfault with command line matcher tools

Running the command line tools sequential_matcher, or vocab_tree_matcher, and I presume the other matchers too, fails with a seqmentation fault.

*** Aborted at 1462060976 (unix time) try "date -d @1462060976" if you are using GNU date ***
PC: @     0x7fff9aee3c30 glGetString
*** SIGSEGV (@0x3b0) received by PID 61514 (TID 0x700000081000) stack trace: ***
    @     0x7fff9164c52a _sigtramp
    @        0x106656010 glewIsSupported
    @        0x1066289b1 glewInit
    @        0x1059b1e2d GlobalUtil::InitGLParam()
    @        0x1059ce339 SiftMatchGL::InitSiftMatch()
    @        0x1059d0022 SiftMatchGPU::_VerifyContextGL()
    @        0x10573202f colmap::FeatureMatcher::SetupWorkers()
    @        0x1057319c6 colmap::FeatureMatcher::run()
    @        0x1074e857a QThreadPrivate::start()
    @     0x7fff90e1c99d _pthread_body
    @     0x7fff90e1c91a _pthread_start
    @     0x7fff90e1a351 thread_start

Some notes about the build and system:

  • This is on my mac osx 10.11
  • Using the latest source.
  • The GUI version runs fine without fault.
  • CUDA is version 7.5.
  • CUDA was successfully detected by cmake, and enabled.

I did some digging and got it working for me, but I wonder if I missed something, that lets me avoid all this.

The following is my digging, I hope it is useful:
This seems to be caused by line 388 in src/ext/SiftGPU/GlobalUtil.cpp

const char * vendor = (const char * )glGetString(GL_VENDOR);

It seems that a glContext is not initialised.

If I initialise a glContext using SiftGPU's own methods:

sift_gpu_->CreateContextGL();
sift_match_gpu_->CreateContextGL();

Just after line 153 of src/base/feature_matching.cc
The code then runs from the command line without fault. It does briefly produce a window, which may fail on servers but this was the only way I could get any data.

I should note that although cmake enabled CUDA, SiftGPU may be disabling it for macs, given that SiftGPU's cmake contains the following on line 52 of src/ext/SiftGPU/CMakeLists.txt.

if(CUDA_ENABLED AND NOT APPLE)

What's the best CUDA version for COLMAP ?

Hi,

I have built colmap with CUDA 7.5 on windows 7 platform using VS 2013. However, the mvs_cuda project could not be compiled successfully with following errors.

patch_match_cuda.cu
1>

1>D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\concrt.h(5658): error C2015: too many characters in constant
1>

1>D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\concrt.h(5658): error C2146: syntax error : missing ')' before identifier 'q'
1>

1>D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\concrt.h(5658): error C2001: newline in constant
1>

1>D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\concrt.h(5671): error C2143: syntax error : missing ';' before '{'
1>

1>D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\concrt.h(5671): error C2143: syntax error : missing ')' before ';'

Model Scale Problem

Hi, all, I used the colmap to reconstruct some objects, there is a scale problem.

  1. Which coordinates system is used in the Colmap ?
  2. May I input the focal length (mm) to get the model which is at the same scale compared with the real object? Or I need to write my own code.

Thanks!

OS X version does not run

You can't open the application "COLMAP.app" because it may be damaged or incomplete

Version: OS X 10.11.6

"feature extraction" has a problem

when I make Feature extraction, I select cpu, then I click the extract, the program will be stopped.I don't know why,can you give me some advice?

feature_extractor.exe error when no display available

Hi Johannes,

I am running the executables from the command line on a server with no GUI. Although it doesn't actually open a GUI to run, feature_extractor.exe aborts when a display is not available. I suspect it's the Qt dependency.

Command:
/usr/local/bin/feature_extractor --General.database_path /playpen/projects/reconstructions/GOPR0297/GOPR0297.db --General.image_path /playpen/projects/data/images/GOPR0297 --ExtractionOptions.camera_model OPENCV --ExtractionOptions.single_camera 1 --ExtractionOptions.camera_params 1194.505955,1194.375495,639.754357,343.475637,-0.274884,0.113541,0.0,0.0

Error output:
QXcbConnection: Could not connect to display *** Aborted at 1468349147 (unix time) try "date -d @1468349147" if you are using GNU date *** PC: @ 0x7fed4270ec37 (unknown) *** SIGABRT (@0x2c2000001e7e) received by PID 7806 (TID 0x7fed46db7840) from PID 7806; stack trace: *** @ 0x7fed461c7330 (unknown) @ 0x7fed4270ec37 (unknown) @ 0x7fed42712028 (unknown) @ 0x7fed45992655 (unknown) @ 0x7fecc0b3a9f2 (unknown) @ 0x7fecc0b3c401 (unknown) @ 0x7fecc0b4bebb (unknown) @ 0x7fed444353d1 (unknown) @ 0x7fed4443e73d (unknown) @ 0x7fed4443f2ed (unknown) @ 0x7fed45b790d1 (unknown) @ 0x7fed45b79146 (unknown) @ 0x7fed44440119 (unknown) @ 0x7fed45220edd (unknown) @ 0x4e2037 main @ 0x7fed426f9f45 (unknown) @ 0x4e7417 (unknown) @ 0x0 (unknown) Aborted (core dumped)

For command line runs, is it possible to remove this dependency or catch/suppress this error?

Suggestion: split project creation and image adding

There's just one somewhat confusing dialog box for creating a new project and adding images to it. Leaving aside the confusing issue of choosing a directory instead of individual images, these two functions should be split. Have users create a new project in one step, then add images to it in another. (I also think that ideally the projects should be bundles on a Mac, instead of separate files.)

feature_extraction can't read txt file

std::getline (istream& is, string& str, char delim);
This function will not remove whitespace automatically, il will only discard it and wait you to call it again to read next word.

So, should add
header_line_stream >> std::ws; before this

and add feature_line_stream >> std::ws; before all following std::getline

Homography decomposition

In the article "Deeper understanding of the homography decomposition
for vision-based control", the decomposition of the homography matrix has two possible solutions.

In your code PoseFromHomographyMatrix, you keep only the one that provides you more 3D points that respect cheirality. Are you sure that this solution is always the correct one ?

I've implemented the article and I have a case where when I select the solution with the largest number of points that respect the cheirality, the solution is not the best If I'm considering the reprojection errors of all points. The other solution is better.

When I have a possible solution, I refine it with a bundle adjustment on the motion and I'm computing the reprojection errors after that I can select the correct one

Cannot import custom features

Using the pre-built Windows binary, I am unable to load my custom features into the project. Regardless of the path entered, it gives a "Path is a not a directory" error on pressing "Extract." However, if I switch between the 'extract' and 'import' tabs and then try to press the "Extract" button, it begins to run, but then colmap stops responding and shuts down.

My images are in a dataset_root/images folder (e.g. dataset_root/images/_MG_9859.JPG).
My features are 4096 dimensional and formatted according to the documentation (x y scale orientation dim_1 ...dim_4096) and located in dataset_root/features (e.g. dataset_root/images/_MG_9859.JPG.txt).

colmap

Project.ini file from command line results doesn't load DB

When running a reconstruction using the command-line instructions given in the documentation, everything works fine. However, when I want to visualize the resulting sparse reconstruction, or even just manage the DB using the GUI, I can't just load the *.ini file that is created during the command-line sequence. Going to File >> Open Project >> Select project.ini does appear to open the project. However, when one clicks Processing >> Manage Database, an error appears saying "You must create or open a valid project." Additionally trying to restart the reconstruction gives the same error.

A work-around is to go to File >> New Project, click Open for the Database field, and select the *.db file for the desired project. Then click Select for the Images field and select the directory containing the images for that project. Then click Create. This at least properly loads the DB, but to visualize the reconstruction, you must run Reconstruction >> Start / resume reconstruction all over again.

At least the features and inliers are loaded with the DB, saving you the lion's share of the reconstruction time, but it's frustrating having to register the cameras again in the GUI a second time. That being said, the registration isn't stored in the DB so it may be more of a feature request than a bug report.

Basically what this bug boils down to is that the project.ini file that is created when running the pipeline from the command line does not properly reference the database. Yes, the user can make it work, but it should just be loaded with the project file.

Can't build with CUDA on mac os 10.12.1 -- "nvcc fatal : Stray '"' character"

nvcc fatal : Stray '"' character
nvcc fatal : Stray '"' character
nvcc fatal : Stray '"' character
nvcc fatal : Stray '"' character
CMake Error at sift_gpu_generated_ProgramCU.cu.o.RelWithDebInfo.cmake:222 (message):
Error generating
/Users/yingliang/Projects/MVS/colmap_modified/build_unix/src/ext/SiftGPU/CMakeFiles/sift_gpu.dir//./sift_gpu_generated_ProgramCU.cu.o

CMake Error at pba_generated_ProgramCU.cu.o.RelWithDebInfo.cmake:222 (message):
Error generating
/Users/yingliang/Projects/MVS/colmap_modified/build_unix/src/ext/PBA/CMakeFiles/pba.dir//./pba_generated_ProgramCU.cu.o

CMake Error at mvs_cuda_generated_gpu_mat_prng.cu.o.RelWithDebInfo.cmake:218 (message):
Error generating
/Users/yingliang/Projects/MVS/colmap_modified/build_unix/src/mvs/CMakeFiles/mvs_cuda.dir//./mvs_cuda_generated_gpu_mat_prng.cu.o

CMake Error at mvs_cuda_generated_patch_match_cuda.cu.o.RelWithDebInfo.cmake:218 (message):
Error generating
/Users/yingliang/Projects/MVS/colmap_modified/build_unix/src/mvs/CMakeFiles/mvs_cuda.dir//./mvs_cuda_generated_patch_match_cuda.cu.o

make[2]: *** [src/ext/PBA/CMakeFiles/pba.dir/pba_generated_ProgramCU.cu.o] Error 1
make[2]: *** [src/ext/SiftGPU/CMakeFiles/sift_gpu.dir/sift_gpu_generated_ProgramCU.cu.o] Error 1
make[2]: *** [src/mvs/CMakeFiles/mvs_cuda.dir/mvs_cuda_generated_gpu_mat_prng.cu.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [src/mvs/CMakeFiles/mvs_cuda.dir/mvs_cuda_generated_patch_match_cuda.cu.o] Error 1
[ 3%] Built target poisson_recon
make[1]: *** [src/ext/PBA/CMakeFiles/pba.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [src/ext/SiftGPU/CMakeFiles/sift_gpu.dir/all] Error 2
nvcc fatal : Stray '"' character
CMake Error at mvs_cuda_generated_gpu_mat_ref_image.cu.o.RelWithDebInfo.cmake:218 (message):
Error generating
/Users/yingliang/Projects/MVS/colmap_modified/build_unix/src/mvs/CMakeFiles/mvs_cuda.dir//./mvs_cuda_generated_gpu_mat_ref_image.cu.o

make[2]: *** [src/mvs/CMakeFiles/mvs_cuda.dir/mvs_cuda_generated_gpu_mat_ref_image.cu.o] Error 1
make[1]: *** [src/mvs/CMakeFiles/mvs_cuda.dir/all] Error 2

Error on running MVS

Hi,

Colmap is awesome, especially in the SFM accuracy! However, MVS is not quite stable. And I have encountered quite often termination without warning.

After undistortion and click the Stereo Button, the program is terminated occasionally with the following log on console, (using 2,0 binaries in Windows X64, downloaded from your homepage)

Initialization: 0.2078s
 Sweep 1: 2.4169s
cudaCheckError() with sync failed at C:/Users/jschoenb/Development/colmap/src/.\mvs/gpu_mat.h:324 : unknown error
QObject::~QObject: Timers cannot be stopped from another thread

Any ideas on how to solve that? The problem is quite common when stereo is running and I switch to other program.

Han

Building Error using Ubuntu 14.04

When I try to build colmap using Ubuntu 14.04 I receive the following error message:

colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl:227:11: error: expected unqualified-id before ‘(’ token
if(std::isnan( normalLength ) || !std::isfinite( normalLength ) || normalLength<=EPSILON ) continue;

colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl:227:42: error: expected unqualified-id before ‘(’ token
if(std::isnan( normalLength ) || !std::isfinite( normalLength ) || normalLength<=EPSILON ) continue;

I fixed the problem, by removing the "std::" namespace in front of "isnan" and "isfinite". In this case I guess, the compiler uses the C isnan and isfnite methods. I'm not sure why they are not part of the std namespace.

Btw: I used CMake 3.2.2. during the building process

Build error with VS 2013 X64

Hi, thanks for release this wonderful tools. Recently, I have pull down the latest source code and build it with VS 2013 X64. However, some errors occur as following:

patch_match_cuda.cu
1>
1>D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\concrt.h(5658): error C2015: too many characters in constant
1>
1>D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\concrt.h(5658): error C2146: syntax error : missing ')' before identifier 'q'
1>
1>D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\concrt.h(5658): error C2001: newline in constant
1>
1>D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\concrt.h(5671): error C2143: syntax error : missing ';' before '{'
1>
1>D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\concrt.h(5671): error C2143: syntax error : missing ')' before ';'

Error when run matches computing

Hi, thank you for providing this useful open source. When I perform matches computing I faced errors shown below:

Matching image [1/8]*** Aborted at 1474416078 (unix time) try "date -d @1474416078" if you are using GNU date ***
PC: @ 0x5166f6 colmap::SiftGPUFeatureMatcher::MatchImagePairs()
*** SIGSEGV (@0x0) received by PID 4069 (TID 0x7f190d62c700) from PID 0; stack trace: ***
@ 0x7f193edea3d0 (unknown)
@ 0x5166f6 colmap::SiftGPUFeatureMatcher::MatchImagePairs()
@ 0x517674 colmap::SequentialFeatureMatcher::RunSequentialMatching()
@ 0x5193d6 colmap::SequentialFeatureMatcher::Run()
@ 0x590e2c colmap::Thread::RunFunc()
@ 0x7f193c49bc80 (unknown)
@ 0x7f193ede06fa start_thread
@ 0x7f193bc01b5d clone
@ 0x0 (unknown)

I am wondering without CUDA support, can I run this library? I run the command-line on oracle VM with ubuntu 16.04, the GPU on Host Mac is Intel Iris Pro.

Thank you.

Failed to build Ceres on vs2015 when build COLMAP

Hi,
I want to study COLMAP source code on windows but when I built colmap on vs2015, there always occured some errors. It seems that having a difficulty in build ceres in windows. I tried it lots of times but failed. I saw you solved this problem in google group, but it seems complicated. I was just wondering if you could give me some instructions about building ceres in windows so that I can use colmap in windows. Thank you very much.

Reconstruction crashes on Windows (V1.1)

F0608 10:43:16.701477 20040 local_parameterization.cc:104] Check failed: constant_parameters.size() < size (3 vs. 3) Number of parameters held constant should be less than the size of the parameter block. If you wish to hold the entire parameter block constant, then a efficient way is to directly mark it as constant instead of using a LocalParameterization to do so.
*** Check failure stack trace: ***

image_undistorter.exe crash on windows (precompiled colmap 2.0 and 2.1)

Hi,

I'm trying to reconstruct a mesh from south-building.zip dataset by using command line tools. When I run image_undistorter it crashes with following error:

O:\bin\COLMAP-2.1-windows\bin\image_undistorter --General.image_path O:\datasets\south-building\images --input_path O:\datasets\south-building\sparse --output_path O:\datasets\south-building\dense --output_type COLMAP --max_image_size 2000
F1209 10:13:11.428619 32592 reconstruction.cc:1593] Check failed: file.is_open()
*** Check failure stack trace: ***

Visual studio outputs following:

>	msvcr120.dll!__crt_debugger_hook(int _Reserved) Line 60	C
 	msvcr120.dll!_call_reportfault(int nDbgHookCode, unsigned long dwExceptionCode, unsigned long dwExceptionFlags) Line 208	C++
 	msvcr120.dll!abort() Line 100	C
 	libglog.dll!000007fef3bd5e4a()	Unknown
 	libglog.dll!000007fef3bd5ddc()	Unknown
 	libglog.dll!000007fef3bd5898()	Unknown
 	libglog.dll!000007fef3bd7b60()	Unknown
 	image_undistorter.exe!000000013f3bd4b5()	Unknown
 	image_undistorter.exe!000000013f3bd306()	Unknown
 	image_undistorter.exe!000000013f3b7fae()	Unknown
 	image_undistorter.exe!000000013f49d25b()	Unknown
 	[External Code]	

The command set (I'm following steps from here) is:

set PROJECT_PATH=O:\datasets\south-building
set BINARY_PATH=O:\bin\COLMAP-2.1-windows\bin

%BINARY_PATH%\feature_extractor --General.database_path %PROJECT_PATH%\database.db --General.image_path %PROJECT_PATH%\images
%BINARY_PATH%\exhaustive_matcher --General.database_path %PROJECT_PATH%\database.db
mkdir %PROJECT_PATH%\sparse
%BINARY_PATH%\mapper --General.database_path %PROJECT_PATH%\database.db --General.image_path %PROJECT_PATH%\images --export_path %PROJECT_PATH%\sparse
mkdir %PROJECT_PATH%\dense
%BINARY_PATH%\image_undistorter --General.image_path %PROJECT_PATH%\images --input_path %PROJECT_PATH%\sparse --output_path %PROJECT_PATH%\dense --output_type COLMAP --max_image_size 2000
%BINARY_PATH%\dense_mapper --workspace_path %PROJECT_PATH%\dense --workspace_format COLMAP --DenseMapperOptions.max_image_size 0 --DenseMapperOptions.patch_match_filter false --DenseMapperOptions.patch_match_geom_consistency false  --DenseMapperOptions.patch_match_num_iterations 4
%BINARY_PATH%\dense_mapper --workspace_path %PROJECT_PATH%\dense --workspace_format COLMAP --DenseMapperOptions.max_image_size 0 --DenseMapperOptions.patch_match_filter true --DenseMapperOptions.patch_match_geom_consistency true
%BINARY_PATH%\dense_fuser --workspace_path %PROJECT_PATH%\dense --workspace_format COLMAP --input_type geometric --output_path %PROJECT_PATH%\dense\point-cloud.ply
%BINARY_PATH%\dense_mesher --input_path %PROJECT_PATH%\dense\point-cloud.ply --output_path %PROJECT_PATH%\dense\mesh.ply

System:

  • Windows 7 x64 pro
  • i7 x990, 24GB memory
  • GTX 770 4GB

Segmentation fault when starting reconstruction

Hey,

great peace of software, but I am having a bit of problem with it.

This is redirected log

==============================================================================
Loading database
==============================================================================

Loading cameras... 1 in 0.000s
Loading matches... 1140 in 0.014s
Loading images... 100 in 0.029s (connected 100)
Building scene graph... in 0.079s (ignored 0)

Elapsed time: 0.002 [minutes]


==============================================================================
Initializing with image pair #59 and #56
==============================================================================


==============================================================================
Global bundle adjustment
==============================================================================

iter      cost      cost_change  |gradient|   |step|    tr_ratio  tr_radius  ls_iter  iter_time  total_time
   0  1.248005e+04    0.00e+00    1.28e+05   0.00e+00   0.00e+00  1.00e+04        0    1.13e-02    1.98e-02
   1  5.533512e+03    6.95e+03    4.88e+06   4.72e+01   7.66e-01  1.18e+04        1    1.36e-02    3.34e-02
   2  2.767673e+03    2.77e+03    1.65e+05   2.28e+01   9.86e-01  3.53e+04        1    7.78e-03    4.12e-02
   3  4.819016e+03   -2.05e+03    0.00e+00   1.00e+02  -2.84e+00  1.77e+04        1    5.59e-03    4.68e-02
   4  2.577255e+03    1.90e+02    6.73e+05   5.51e+01   4.15e-01  1.76e+04        1    7.58e-03    5.44e-02
   5  2.175502e+03    4.02e+02    5.77e+05   5.09e+01   7.00e-01  1.88e+04        1    7.78e-03    6.22e-02
   6  1.887601e+03    2.88e+02    4.81e+05   4.63e+01   7.06e-01  2.02e+04        1    7.70e-03    6.99e-02
   7  1.669314e+03    2.18e+02    3.77e+05   4.07e+01   7.44e-01  2.29e+04        1    7.88e-03    7.78e-02
   8  1.519445e+03    1.50e+02    3.01e+05   3.61e+01   7.55e-01  2.64e+04        1    7.53e-03    8.54e-02
   9  1.417218e+03    1.02e+02    2.24e+05   3.10e+01   7.88e-01  3.26e+04        1    1.67e-02    1.02e-01
  10  1.355335e+03    6.19e+01    1.63e+05   2.63e+01   8.04e-01  4.20e+04        1    1.15e-02    1.14e-01
  11  1.321206e+03    3.41e+01    1.04e+05   2.09e+01   8.42e-01  6.18e+04        1    7.91e-03    1.22e-01
  12  1.306416e+03    1.48e+01    5.92e+04   1.57e+01   8.70e-01  1.04e+05        1    7.80e-03    1.29e-01
  13  1.301894e+03    4.52e+00    2.31e+04   9.67e+00   9.16e-01  2.46e+05        1    7.66e-03    1.37e-01
  14  1.301271e+03    6.23e-01    5.05e+03   4.22e+00   9.45e-01  7.38e+05        1    7.65e-03    1.45e-01
  15  1.301243e+03    2.72e-02    4.42e+02   6.82e-01   9.76e-01  2.21e+06        1    7.83e-03    1.53e-01
  16  1.301204e+03    3.99e-02    1.26e+02   3.05e-01   1.00e+00  6.64e+06        1    7.68e-03    1.60e-01
  17  1.301085e+03    1.19e-01    1.28e+03   9.28e-01   9.94e-01  1.99e+07        1    7.70e-03    1.68e-01
  18  1.300835e+03    2.49e-01    1.18e+04   2.79e+00   6.86e-01  2.10e+07        1    7.88e-03    1.76e-01
  19  1.300475e+03    3.60e-01    1.37e+04   2.95e+00   6.99e-01  2.24e+07        1    7.51e-03    1.83e-01
  20  1.300104e+03    3.72e-01    1.65e+04   3.17e+00   6.21e-01  2.27e+07        1    1.09e-02    1.94e-01
  21  1.299679e+03    4.25e-01    1.80e+04   3.23e+00   6.10e-01  2.30e+07        1    1.19e-02    2.06e-01
  22  1.299236e+03    4.43e-01    1.96e+04   3.29e+00   5.80e-01  2.31e+07        1    7.60e-03    2.14e-01
  23  1.298769e+03    4.67e-01    2.11e+04   3.33e+00   5.57e-01  2.31e+07        1    7.73e-03    2.22e-01
  24  1.298284e+03    4.85e-01    2.26e+04   3.36e+00   5.33e-01  2.31e+07        1    7.71e-03    2.29e-01
  25  1.297781e+03    5.02e-01    2.42e+04   3.39e+00   5.08e-01  2.31e+07        1    7.55e-03    2.37e-01
  26  1.297263e+03    5.18e-01    2.59e+04   3.42e+00   4.81e-01  2.31e+07        1    7.80e-03    2.45e-01
  27  1.296730e+03    5.33e-01    2.77e+04   3.46e+00   4.54e-01  2.31e+07        1    7.71e-03    2.52e-01
  28  1.296181e+03    5.49e-01    2.97e+04   3.50e+00   4.27e-01  2.30e+07        1    7.67e-03    2.60e-01
  29  1.295611e+03    5.70e-01    3.18e+04   3.53e+00   4.04e-01  2.29e+07        1    7.75e-03    2.68e-01
  30  1.295015e+03    5.96e-01    3.38e+04   3.56e+00   3.86e-01  2.26e+07        1    7.82e-03    2.76e-01
  31  1.294388e+03    6.27e-01    3.65e+04   3.57e+00   3.74e-01  2.22e+07        1    7.51e-03    2.83e-01
  32  1.293729e+03    6.58e-01    3.92e+04   3.57e+00   3.65e-01  2.18e+07        1    8.83e-03    2.92e-01
  33  1.293040e+03    6.89e-01    4.17e+04   3.57e+00   3.58e-01  2.13e+07        1    1.22e-02    3.04e-01
  34  1.292321e+03    7.19e-01    4.42e+04   3.56e+00   3.54e-01  2.08e+07        1    7.76e-03    3.12e-01
  35  1.291574e+03    7.47e-01    4.66e+04   3.55e+00   3.50e-01  2.03e+07        1    7.72e-03    3.20e-01
  36  1.290801e+03    7.73e-01    4.89e+04   3.53e+00   3.47e-01  1.97e+07        1    7.74e-03    3.28e-01
  37  1.290004e+03    7.97e-01    5.12e+04   3.51e+00   3.45e-01  1.91e+07        1    7.71e-03    3.35e-01
  38  1.289184e+03    8.20e-01    5.35e+04   3.50e+00   3.44e-01  1.86e+07        1    7.87e-03    3.43e-01
  39  1.288343e+03    8.42e-01    5.57e+04   3.48e+00   3.43e-01  1.80e+07        1    7.74e-03    3.51e-01
  40  1.287481e+03    8.62e-01    5.80e+04   3.47e+00   3.42e-01  1.75e+07        1    7.64e-03    3.59e-01
  41  1.286600e+03    8.81e-01    6.02e+04   3.46e+00   3.42e-01  1.69e+07        1    7.71e-03    3.66e-01
  42  1.285701e+03    8.99e-01    6.25e+04   3.45e+00   3.41e-01  1.64e+07        1    7.72e-03    3.74e-01
  43  1.284784e+03    9.17e-01    6.47e+04   3.45e+00   3.41e-01  1.59e+07        1    7.47e-03    3.82e-01
  44  1.283850e+03    9.34e-01    6.70e+04   3.45e+00   3.41e-01  1.54e+07        1    7.61e-03    3.89e-01
  45  1.282900e+03    9.50e-01    6.92e+04   3.45e+00   3.41e-01  1.49e+07        1    1.49e-02    4.04e-01
  46  1.281935e+03    9.65e-01    7.15e+04   3.45e+00   3.41e-01  1.45e+07        1    7.74e-03    4.12e-01
  47  1.280954e+03    9.81e-01    7.38e+04   3.46e+00   3.42e-01  1.40e+07        1    7.93e-03    4.20e-01
  48  1.279958e+03    9.96e-01    7.62e+04   3.46e+00   3.42e-01  1.36e+07        1    7.72e-03    4.28e-01
  49  1.278947e+03    1.01e+00    7.86e+04   3.47e+00   3.42e-01  1.32e+07        1    7.59e-03    4.35e-01
  50  1.277922e+03    1.02e+00    8.10e+04   3.49e+00   3.42e-01  1.28e+07        1    7.76e-03    4.43e-01
  51  1.276883e+03    1.04e+00    8.34e+04   3.50e+00   3.43e-01  1.24e+07        1    7.82e-03    4.51e-01
  52  1.275831e+03    1.05e+00    8.59e+04   3.52e+00   3.43e-01  1.20e+07        1    7.59e-03    4.58e-01
  53  1.274763e+03    1.07e+00    8.84e+04   3.54e+00   3.44e-01  1.17e+07        1    7.68e-03    4.66e-01
  54  1.273684e+03    1.08e+00    9.10e+04   3.56e+00   3.44e-01  1.13e+07        1    7.74e-03    4.74e-01
  55  1.272589e+03    1.09e+00    9.35e+04   3.58e+00   3.45e-01  1.10e+07        1    7.56e-03    4.81e-01
  56  1.271483e+03    1.11e+00    9.62e+04   3.61e+00   3.45e-01  1.07e+07        1    7.53e-03    4.89e-01
  57  1.270361e+03    1.12e+00    9.88e+04   3.63e+00   3.46e-01  1.04e+07        1    1.95e-02    5.08e-01
  58  1.269230e+03    1.13e+00    1.02e+05   3.66e+00   3.45e-01  1.01e+07        1    1.17e-02    5.20e-01
  59  1.268081e+03    1.15e+00    1.04e+05   3.69e+00   3.47e-01  9.79e+06        1    7.88e-03    5.28e-01
  60  1.266925e+03    1.16e+00    1.07e+05   3.72e+00   3.46e-01  9.52e+06        1    7.56e-03    5.36e-01
  61  1.265750e+03    1.18e+00    1.10e+05   3.75e+00   3.48e-01  9.26e+06        1    7.90e-03    5.44e-01
  62  1.264570e+03    1.18e+00    1.13e+05   3.78e+00   3.47e-01  9.00e+06        1    7.87e-03    5.51e-01
  63  1.263368e+03    1.20e+00    1.16e+05   3.81e+00   3.50e-01  8.76e+06        1    7.53e-03    5.59e-01
  64  1.262164e+03    1.20e+00    1.19e+05   3.85e+00   3.48e-01  8.52e+06        1    7.84e-03    5.67e-01
  65  1.260937e+03    1.23e+00    1.22e+05   3.88e+00   3.51e-01  8.30e+06        1    7.84e-03    5.75e-01
  66  1.259709e+03    1.23e+00    1.25e+05   3.92e+00   3.48e-01  8.07e+06        1    7.63e-03    5.82e-01
  67  1.258456e+03    1.25e+00    1.28e+05   3.95e+00   3.52e-01  7.87e+06        1    1.15e-02    5.94e-01

and segmentation fault error from the console

pangerca@lapcremers29:/work/pangerca$ ./colmap/build/src/exe/colmap 
*** Aborted at 1476868230 (unix time) try "date -d @1476868230" if you are using GNU date ***
PC: @           0x680ed8 (unknown)
*** SIGSEGV (@0xfffffffffffffff9) received by PID 4200 (TID 0x7ff199803700) from PID 18446744073709551609; stack trace: ***
    @     0x7ff1cb234330 (unknown)
    @           0x680ed8 (unknown)
    @           0x8147eb (unknown)
    @           0x68486c (unknown)
    @           0x67ba41 (unknown)
    @           0x67dd3e (unknown)
    @           0x67f472 (unknown)
    @           0x75d61c (unknown)
    @     0x7ff1c82dfa60 (unknown)
    @     0x7ff1cb22c184 start_thread
    @     0x7ff1c7a4737d (unknown)
    @                0x0 (unknown)
Segmentation fault

My system looks like this:

pangerca@lapcremers29:/work/pangerca$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Wed_May__4_21:01:56_CDT_2016
Cuda compilation tools, release 8.0, V8.0.26
pangerca@lapcremers29:/work/pangerca$ nvidia-smi
Wed Oct 19 11:13:01 2016       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.44                 Driver Version: 367.44                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro K5100M       On   | 0000:01:00.0      On |                  N/A |
| N/A   50C    P8     6W /  N/A |    195MiB /  8101MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0      1707    G   /usr/bin/X                                     194MiB |
+-----------------------------------------------------------------------------+

pangerca@lapcremers29:/work/pangerca$ uname -a
Linux lapcremers29 4.4.0-42-generic #62~14.04.1-Ubuntu SMP Fri Oct 7 23:15:48 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Any idea what could be wrong?

Issue in two_view_geometry.cc

I think there is a bug in two_view_geometry.cc: 159->174,

PoseFromHomographyMatrix need the normlized world points due to the call chain:

PoseFromHomographyMatrix -> CheckCheirality -> TriangulatePoint (this needs the normalized world points)

+ // Extract normalized inlier points.

  • std::vectorEigen::Vector3d inlier_points1_N;
  • inlier_points1_N.reserve(inlier_matches.size());
  • std::vectorEigen::Vector3d inlier_points2_N;
  • inlier_points2_N.reserve(inlier_matches.size());
  • for (const auto& match : inlier_matches) {
  • const point2D_t idx1 = match.point2D_idx1;
  • const point2D_t idx2 = match.point2D_idx2;
  • inlier_points1_N.push_back(camera1.ImageToWorld(points1[idx1]));
  • inlier_points2_N.push_back(camera2.ImageToWorld(points2[idx2]));
  • }

- // Extract inlier points.

  • std::vectorEigen::Vector2d inlier_points1;
  • inlier_points1.reserve(inlier_matches.size());
  • std::vectorEigen::Vector2d inlier_points2;
  • inlier_points2.reserve(inlier_matches.size());
  • for (const auto& match : inlier_matches) {
  •  inlier_points1.push_back(points1[match.point2D_idx1]);
    
  •  inlier_points2.push_back(points2[match.point2D_idx2]);
    

-}
Eigen::Vector3d n;
PoseFromHomographyMatrix(H, camera1.CalibrationMatrix(),

  •                         camera2.CalibrationMatrix(), inlier_points1,
    
  •                         inlier_points2, &R, &tvec, &n, &points3D);
    
  •                         camera2.CalibrationMatrix(), inlier_points1_N,
    
  •                         inlier_points2_N, &R, &tvec, &n, &points3D);
    
    }

Compilation error on PoissonRecon

I sticked to previous dependencies. Maybe we just need to update the documentation to reflect new - PoissonRecon-induced - ones?

In file included from /home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.h:665:0,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:53:
/home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl: In instantiation of ‘int {anonymous}::Octree<Real>::SetTree({anonymous}::OrientedPointStream<PointReal>*, int, int, int, int, Real, Real, bool, bool, Real, int, {anonymous}::SparseNodeData<Real, WeightDegree>&, {anonymous}::SparseNodeData<{anonymous}::PointData<Real>, 0>&, {anonymous}::SparseNodeData<Point3D<Real>, NormalDegree>&, {anonymous}::SparseNodeData<Real, NormalDegree>&, {anonymous}::SparseNodeData<{anonymous}::Octree<Real>::ProjectiveData<_Data>, DataDegree>*, XForm4x4<Real>&, bool, bool) [with PointReal = float; int NormalDegree = 2; int WeightDegree = 2; int DataDegree = 1; Data = Point3D<unsigned char>; _Data = Point3D<double>; Real = double]’:
/home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:391:14:   required from ‘int {anonymous}::_Execute(int, char**) [with Real = double; int Degree = 1; Vertex = PlyColorAndValueVertex<float>]’
/home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:517:46:   required from ‘int {anonymous}::Execute(int, char**) [with Real = double; Vertex = PlyColorAndValueVertex<float>]’
/home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:553:86:   required from here
/home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl:227:12: error: ‘isnan’ was not declared in this scope
   if( isnan( normalLength ) || !isfinite( normalLength ) || normalLength<=EPSILON ) continue;
            ^
/home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl:227:12: note: suggested alternative:
In file included from /usr/include/c++/5/random:38:0,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/c++/5/backward/hashtable.h:64,
                 from /usr/include/c++/5/ext/hash_map:64,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/Hash.h:7,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/Geometry.h:35,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/MarchingCubes.h:32,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:38:
/usr/include/c++/5/cmath:641:5: note:   ‘std::isnan’
     isnan(_Tp __x)
     ^
In file included from /home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.h:665:0,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:53:
/home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl:227:41: error: ‘isfinite’ was not declared in this scope
   if( isnan( normalLength ) || !isfinite( normalLength ) || normalLength<=EPSILON ) continue;
                                         ^
/home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl:227:41: note: suggested alternative:
In file included from /usr/include/c++/5/random:38:0,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/c++/5/backward/hashtable.h:64,
                 from /usr/include/c++/5/ext/hash_map:64,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/Hash.h:7,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/Geometry.h:35,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/MarchingCubes.h:32,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:38:
/usr/include/c++/5/cmath:601:5: note:   ‘std::isfinite’
     isfinite(_Tp __x)
     ^
In file included from /home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.h:665:0,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:53:
/home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl: In instantiation of ‘int {anonymous}::Octree<Real>::SetTree({anonymous}::OrientedPointStream<PointReal>*, int, int, int, int, Real, Real, bool, bool, Real, int, {anonymous}::SparseNodeData<Real, WeightDegree>&, {anonymous}::SparseNodeData<{anonymous}::PointData<Real>, 0>&, {anonymous}::SparseNodeData<Point3D<Real>, NormalDegree>&, {anonymous}::SparseNodeData<Real, NormalDegree>&, {anonymous}::SparseNodeData<{anonymous}::Octree<Real>::ProjectiveData<_Data>, DataDegree>*, XForm4x4<Real>&, bool, bool) [with PointReal = float; int NormalDegree = 2; int WeightDegree = 2; int DataDegree = 1; Data = Point3D<unsigned char>; _Data = Point3D<float>; Real = float]’:
/home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:391:14:   required from ‘int {anonymous}::_Execute(int, char**) [with Real = float; int Degree = 1; Vertex = PlyColorAndValueVertex<float>]’
/home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:517:46:   required from ‘int {anonymous}::Execute(int, char**) [with Real = float; Vertex = PlyColorAndValueVertex<float>]’
/home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:554:86:   required from here
/home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl:227:12: error: ‘isnan’ was not declared in this scope
   if( isnan( normalLength ) || !isfinite( normalLength ) || normalLength<=EPSILON ) continue;
            ^
/home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl:227:12: note: suggested alternative:
In file included from /usr/include/c++/5/random:38:0,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/c++/5/backward/hashtable.h:64,
                 from /usr/include/c++/5/ext/hash_map:64,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/Hash.h:7,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/Geometry.h:35,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/MarchingCubes.h:32,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:38:
/usr/include/c++/5/cmath:641:5: note:   ‘std::isnan’
     isnan(_Tp __x)
     ^
In file included from /home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.h:665:0,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:53:
/home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl:227:41: error: ‘isfinite’ was not declared in this scope
   if( isnan( normalLength ) || !isfinite( normalLength ) || normalLength<=EPSILON ) continue;
                                         ^
/home/olivier/Work/colmap/src/ext/PoissonRecon/MultiGridOctreeData.inl:227:41: note: suggested alternative:
In file included from /usr/include/c++/5/random:38:0,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/c++/5/backward/hashtable.h:64,
                 from /usr/include/c++/5/ext/hash_map:64,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/Hash.h:7,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/Geometry.h:35,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/MarchingCubes.h:32,
                 from /home/olivier/Work/colmap/src/ext/PoissonRecon/PoissonRecon.cpp:38:
/usr/include/c++/5/cmath:601:5: note:   ‘std::isfinite’
     isfinite(_Tp __x)
     ^
[ 48%] Linking C static library libvlfeat.a
[ 48%] Built target vlfeat
[ 50%] Linking CXX static library libsift_gpu.a
[ 50%] Built target sift_gpu
src/ext/PoissonRecon/CMakeFiles/poisson_recon.dir/build.make:182 : la recette pour la cible « src/ext/PoissonRecon/CMakeFiles/poisson_recon.dir/PoissonRecon.cpp.o » a échouée
make[2]: *** [src/ext/PoissonRecon/CMakeFiles/poisson_recon.dir/PoissonRecon.cpp.o] Erreur 1
make[2]: *** Attente des tâches non terminées....
CMakeFiles/Makefile2:3222 : la recette pour la cible « src/ext/PoissonRecon/CMakeFiles/poisson_recon.dir/all » a échouée
make[1]: *** [src/ext/PoissonRecon/CMakeFiles/poisson_recon.dir/all] Erreur 2
make[1]: *** Attente des tâches non terminées....
[ 50%] Linking CXX static library libmvs.a
[ 50%] Built target mvs
[ 50%] Linking CXX static library libsfm.a
[ 50%] Built target sfm
[ 50%] Linking CXX static library libpba.a
[ 50%] Built target pba
[ 50%] Linking CXX static library libui.a
[ 50%] Built target ui
[ 50%] Linking CXX static library libretrieval.a
[ 50%] Built target retrieval
[ 50%] Linking CXX static library libbase.a
[ 50%] Built target base
[ 51%] Linking CXX static library libutil.a
[ 51%] Built target util
[ 51%] Linking C static library libsqlite3.a
[ 51%] Built target sqlite3
[ 53%] Linking CXX static library liboptim.a
[ 53%] Built target optim
[ 55%] Linking CXX static library libestimators.a
[ 55%] Built target estimators
[ 56%] Linking CXX static library libflann.a
[ 56%] Built target flann
Makefile:138 : la recette pour la cible « all » a échouée
make: *** [all] Erreur 2

Registering image with wrong index

Hi

I'm finding a strange behavior with colmap. I'm trying to reconstruct a dataset (the Dubrovnik one) and from the log file I see an attempt to register an image twice in totally separate moments. For instance, at some point image #6455 (3183) is resectioned successfully and the program continues. After a while, the same image seems to be resectioned again: image #6455 (6721).

There's something weird going on because I think this is not the same image, but another one with a different id. When finishing, colmap reports that the last image registered was image #3817 (6800), making a total of 6800 images. When I export the model to bundler, it only exports 6677 images. I think there must be a bug somewhere that retrieves the next image with the wrong id, so that the image counter between parenthesis is counting right, but it's choosing an image id that has been already registered.

Please let me know if I can provide any extra information.

Regards
Raul

GUI New Reconstruction Bug

When I try to start a new reconstruction after completing an old one (i.e. after selecting yes to the alert "Do you really want to overwrite the existing reconstruction?"), I get a 'colmap.exe has stopped working' error, and the program needs to close. This occurs after feature extraction and matching have been successful. It only happens when trying to actually start the reconstruction.

In my case, this occurs with a new DB and different image path than the existing reconstruction. When I restart colmap and try the same parameters and DB, path, etc it works just fine. It appears to just be an issue in overwriting the existing reconstruction. It struck me as strange because it's a different DB, but perhaps there's something stored in colmap?

I have been about to repeat this error multiple times with different datasets. I am using the 1.1 Windows binary from the docs on Windows 8.1.

VisibilityPyramid questions

If the number of levels is equal to zero does it mean that there is only one cell, the image itself ?
If yes in this case, the maximum score is 1 and not 0?

Why for each level the maximum score is incremented by dim * dim *dim * dim and not dim * dim

Segmentation fault when doing dense reconstruction, stereo step

Here is my gdb trace:

pangerca@lapcremers29:/work/pangerca$ gdb ./colmap/build/src/exe/colmap                                   
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./colmap/build/src/exe/colmap...done.
(gdb) r
Starting program: /work/pangerca/colmap/build/src/exe/colmap 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffea2fb700 (LWP 7957)]
[New Thread 0x7fffe9afa700 (LWP 7958)]
[New Thread 0x7fffe72f9700 (LWP 7959)]
[New Thread 0x7fffe4af8700 (LWP 7960)]
[New Thread 0x7fffe22f7700 (LWP 7961)]
[New Thread 0x7fffdfaf6700 (LWP 7962)]
[New Thread 0x7fffdd2f5700 (LWP 7963)]
[New Thread 0x7fffd4de1700 (LWP 7964)]
[New Thread 0x7fffc6162700 (LWP 7966)]
[New Thread 0x7fffc5961700 (LWP 7967)]
[New Thread 0x7fffc5160700 (LWP 7968)]
[New Thread 0x7fffc495f700 (LWP 7969)]
[Thread 0x7fffc5160700 (LWP 7968) exited]
[New Thread 0x7fffc5160700 (LWP 7970)]
[New Thread 0x7fffaad2a700 (LWP 7971)]
[Thread 0x7fffaad2a700 (LWP 7971) exited]
[Thread 0x7fffc495f700 (LWP 7969) exited]
[New Thread 0x7fffc495f700 (LWP 7972)]
[Thread 0x7fffc5160700 (LWP 7970) exited]
** (colmap:7953): WARNING **: Index value is too large
[New Thread 0x7fffc5160700 (LWP 7973)]
[New Thread 0x7fffaad2a700 (LWP 7974)]
[New Thread 0x7fffa8f28700 (LWP 7975)]
[New Thread 0x7fffa3fff700 (LWP 7976)]
[New Thread 0x7fffa37fe700 (LWP 7977)]
[New Thread 0x7fffa2ffd700 (LWP 7978)]
[New Thread 0x7fffa27fc700 (LWP 7979)]
[New Thread 0x7fffa1ffb700 (LWP 7980)]
[New Thread 0x7fffa17fa700 (LWP 7981)]
[Thread 0x7fffa2ffd700 (LWP 7978) exited]
[Thread 0x7fffa37fe700 (LWP 7977) exited]
[Thread 0x7fffaad2a700 (LWP 7974) exited]
[Thread 0x7fffa17fa700 (LWP 7981) exited]
[Thread 0x7fffa1ffb700 (LWP 7980) exited]
[Thread 0x7fffa27fc700 (LWP 7979) exited]
[Thread 0x7fffa3fff700 (LWP 7976) exited]
[Thread 0x7fffa8f28700 (LWP 7975) exited]
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5816ddb in hb_qt_get_unicode_funcs() () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
(gdb) bt
#0  0x00007ffff5816ddb in hb_qt_get_unicode_funcs() () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#1  0x00007ffff577431b in QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool) const ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#2  0x00007ffff5777b1d in QTextEngine::shapeText(int) const ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#3  0x00007ffff57781e5 in QTextEngine::shape(int) const () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#4  0x00007ffff578a882 in QTextLine::layout_helper(int) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#5  0x00007ffff578babb in QTextLine::setLineWidth(double) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#6  0x00007ffff668ba33 in QPlainTextDocumentLayout::layoutBlock(QTextBlock const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007ffff668bd93 in QPlainTextDocumentLayout::blockBoundingRect(QTextBlock const&) const ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff668e84f in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff6e322a6 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff666f415 in QWidgetTextControl::documentSizeChanged(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff6677039 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff6e322a6 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007ffff57b60c5 in QAbstractTextDocumentLayout::documentSizeChanged(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#14 0x00007ffff668c1d2 in QPlainTextDocumentLayout::documentChanged(int, int, int) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff57a77ea in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#16 0x00007ffff57cefb0 in QTextCursor::insertText(QString const&, QTextCharFormat const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#17 0x00007ffff57cf6b4 in QTextCursor::insertText(QString const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#18 0x00000000005cca84 in colmap::LogWidget::Flush (this=0x23415e0)
    at /work/pangerca/colmap/src/ui/log_widget.cc:102
#19 0x00007ffff6e31d73 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ffff6e3e622 in QTimer::timerEvent(QTimerEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007ffff6e33054 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007ffff64b4c8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff64b9e56 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff6e0ac2d in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff6e571ad in QTimerInfoList::activateTimers() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff6e57661 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007ffff130de04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffff130e048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007ffff130e0ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007ffff6e5798c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff6e0996b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007ffff6e100e1 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x0000000000578ca3 in main (argc=1, argv=<optimized out>)
    at /work/pangerca/colmap/src/exe/colmap.cc:49

Would you also need my sparse model?

Compilation errors in MVS code

I'm getting a bunch of errors when I compile the latest commit from the master branch. I'm not experienced with CUDA at all, but I think there must be some error related to the NVCC compilation. I copy/pasted the output here for you to look at: http://pastebin.com/DTRESgNd

Looks like there are some c++ keywords (like nullptr) that NVCC can't handle?

Actually, now I'm realizing that I compile Ceres with C++11 enabled. This requires any libraries that link Ceres to also use c++11, so that is likely one source of trouble. Perhaps COLMAP can detect this and enable c++11? Or at least provide a cmake option to enable c++11.

Rig bundle adjuster

I was wondering if the rig bundle adjuster works, and if so, if there's a manual for it? When I try to run it with:

rig_bundle_adjuster.exe --input_path ..\ --output_path ..\ --rig_config_path rig.json

The whole thing crashes with the following error:

F1222 16:49:06.157029  6376 reconstruction.cc:1593] Check failed: file.is_open()
*** Check failure stack trace: ***

I took the instructions from the comments in colmap/src/exe/rig_bundle_adjuster.cc - but it seems that I am missing something.

Sequence Images Case

Hi
I used the colmap for some sequence images, like KITTI dataset, it results in Could not find good initial pair. even I put in some stereo images. And I wonder how the first pairwise images are found, if the first pair are stereo images, I think it's a good initial.

Panoramic Camera model

I saw the colmap has a lot of camera models, is it easy to add new panoramic model? So the street view image could also be applied~

May be 3D bearing vector (unit vector) is more suitable compared with the 2D feature coordinate in this case.~

Can't see meshed model

After I ran meshing in Multi-view stereo, I can't view the mehed model in the viewer window

How to make Colmap work on a AWS instance?

Hi @ahojnnes
Thank you for providing the open source, really appreciate it.
I face the problem when I try to run COLMAP command line on AWS instance.

SYSTEM: ubuntu 16.04
GPU: NVIDIA Tesla K80
NVIDIA driver: nvidia-375.20
CUDA: 8.0
X-server

Feature_extractor cloud pass with the error message:
QXcbConnection: XCB error: 148 (Unknown), sequence: 178, resource id: 0, major code: 140 (Unknown), minor code: 20

exhaustive_matcher does not work with error (assgin the GPU index: "--MatchOptions.gpu_index", "0"):
Matching block [1/1, 1/1]

MultiplyDescriptor: invalid device function

*** Aborted at 1480548746 (unix time) try "date -d @1480548" if you are using GNU date ***
PC: @ 0x7999db SiftMatchCU::GetBestMatch()
*** SIGSEGV (@0x7f050dc24930) received by PID 4479 (TID 0x7f0417583700) from PID 230836528; stack trace: ***
@ 0x7f043b2403e0 (unknown)
@ 0x7999db SiftMatchCU::GetBestMatch()
@ 0x52506b colmap::MatchSiftFeaturesGPU()
@ 0x52ae94 colmap::SiftGPUFeatureMatcher::MatchImagePairs()
@ 0x52eb9f colmap::ExhaustiveFeatureMatcher::Run()
@ 0x5a67dc colmap::Thread::RunFunc()
@ 0x7f04386eac80 (unknown)
@ 0x7f043b23670a start_thread
@ 0x7f0437e5082d clone
@ 0x0 (unknown)

Could you please help with this? What these errors mean and how can I make the COLMAP work on headless AWS instance?

Thanks

Database widget display error

Hi,

There is a database display error in file database_management_widget.cc
line number 333

table_widget_->setItem(
    i, 6, new QTableWidgetItem(QString::number(image.QvecPrior(2))));

Questions about developing with colmap

Hi, all, I'm a freshman to github. I want to develop with colmap, and I know it's a Cmake-based project. I just want to know how to develop this Cmake project? Generally which editor and compiler do you use mostly? I just use Clion for now, but I think it's a little not efficient.

[colmap in docker] cannot to connect to display

I'm buiding integration system, in one step using the colmap. The colmap buiding result seams all is ok, but when I run it in my nvidia-docker container, got the title error.

I want to opt-in off display setting in the colmap. But I don't know where I can turn off it in colmap.
Is there anyone guys could kindly tell me the method?

Mac version lacks icon and title(?)

Just started playing with this and I noticed right away that the Mac binary has the generic icon. Not a big deal, but even something basic would be an improvement and add to the project's appearance.

I also noticed when I tried to force-quit something that Colmap doesn't have a title in that list of running applications that appears when you cmd-opt-esc. I have no idea why, but I assume something is missing somewhere. :-)

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.