COLMAP - Structure-from-Motion and Multi-View Stereo

Overview

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.

Download

Executables for Windows and Mac and other resources can be downloaded from https://demuc.de/colmap/. Executables for Linux/Unix/BSD are available at https://repology.org/metapackage/colmap/versions. To build COLMAP from source, please see https://colmap.github.io/install.html.

Getting Started

  1. Download the pre-built binaries from https://demuc.de/colmap/ or build the library manually as described in the documentation.
  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 the COLMAP Google Group at https://groups.google.com/forum/#!forum/colmap ([email protected]) for questions and the GitHub issue tracker at https://github.com/colmap/colmap for bug reports, feature requests/additions, etc.

Acknowledgments

The library was written by Johannes L. Schönberger (https://demuc.de/). Funding was provided by his PhD advisors Jan-Michael Frahm (http://frahm.web.unc.edu/) and Marc Pollefeys (https://people.inf.ethz.ch/pomarc/).

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 dependencies, which are separately licensed. Building COLMAP with these dependencies may affect the resulting COLMAP license.

Copyright (c) 2018, 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.

Author: Johannes L. Schoenberger (jsch-at-demuc-dot-de)
Comments
  • Dense mapper problem

    Dense mapper problem

    Hey,

    I have a problem with dense mapper. Here is my log:

    [email protected]:~/Downloads/libraries/colmap/build$ ./src/exe/dense_mapper \
    >     --workspace_path /media/alex/...my_path../dense \
    >     --workspace_format COLMAP \
    >     --DenseMapperOptions.max_image_size 0 \
    >     --DenseMapperOptions.patch_match_filter true \
    >     --DenseMapperOptions.patch_match_geom_consistency true
    Reading model...
    Reading configuration...
    Reading inputs...
    terminate called after throwing an instance of 'std::bad_alloc'
      what():  std::bad_alloc
    *** Aborted at 1492212490 (unix time) try "date -d @1492212490" if you are using GNU date ***
    PC: @     0x7fb2a9ddf428 gsignal
    *** SIGABRT (@0x3e800001fbe) received by PID 8126 (TID 0x7fb2a550e700) from PID 8126; stack trace: ***
        @     0x7fb2abf55390 (unknown)
        @     0x7fb2a9ddf428 gsignal
        @     0x7fb2a9de102a abort
        @     0x7fb2aa72184d __gnu_cxx::__verbose_terminate_handler()
        @     0x7fb2aa71f6b6 (unknown)
        @     0x7fb2aa71f701 std::terminate()
        @     0x7fb2aa74ad38 (unknown)
        @     0x7fb2abf4b6ba start_thread
        @     0x7fb2a9eb082d clone
        @                0x0 (unknown)
    Aborted (core dumped)
    

    What do you think Johannes ?

    opened by alexsmartens 59
  • Panoramic Camera model

    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.~

    opened by daleydeng 42
  • Segmentation fault when starting reconstruction

    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

    [email protected]:/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:

    [email protected]:/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
    [email protected]:/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 |
    +-----------------------------------------------------------------------------+
    
    [email protected]:/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?

    opened by andrejpan 36
  • Undefined reference to libtiff4.0 on compile (Ubuntu 16.04)

    Undefined reference to libtiff4.0 on compile (Ubuntu 16.04)

    I have all the dependencies installed on Ubuntu 16.04 (cmake, build-essential, libboost-all-dev, libeigen3-dev, libsuitesparse-dev, libfreeimage-dev, libgoogle-glog-dev, libgflags-dev, libglew-dev, qt5-default, and ceres solver.

    When I run 'make -j' in the build folder, I get this error and a few more repeated instances of this undefined reference.

    Does anyone know of a solution? I found this thread: https://groups.google.com/forum/#!topic/colmap/Fjo3kQIpd_U but no solution was suggested.

    Thanks!

    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libfreeimage.so: undefined reference to `[email protected]_4.0'
    collect2: error: ld returned 1 exit status
    src/mvs/CMakeFiles/normal_map_test.dir/build.make:163: recipe for target 'src/mvs/normal_map_test' failed
    make[2]: *** [src/mvs/normal_map_test] Error 1
    
    opened by toddnguyen 30
  • Problem with poses after mapper

    Problem with poses after mapper

    Dear Johannes,

    it seems that I encountered another problem with the mapper. I wanted to verify the quality of pose reconstruction therefore recorded a dataset where GT poses are recorded together with the images. After running the mapper I see the following results (consequently the xz position of the pose is shown for frame 0-500, 500-1000, 1000-1500 and 1500-2000)

    image

    You can see that parts are reconstructed correctly while other flip completely. It seems that after ~ 400 frames the coordinate system flips by 90° (whereas the part before the flip and the part after the flip are correct within itselves). Later it flips back. Comparing the eukledian distance of two consecutive poses for GT data and for COLMAP data, the following result can be seen (note the log scale):

    image

    There are many more jumps over > 1 m in the COLMAP data which are rather unphysical (probably related to the flips). Comparing the poses to the actual images it can be seen that the pose obviously cannot differ by more then ~10 cm.

    Could you help to tackle this?

    Short Update: I calculated depth maps for all registered images and the depth maps seem to be all okay. This actually does not make a lot of sense to me as I would assume that you need correct poses to calculate correct depth maps for a given images with MVS.

    Mike

    opened by gT-mike 24
  • How to run SfM on images from stereo camera rig?

    How to run SfM on images from stereo camera rig?

    I am trying to run colmap on a dataset of (synchronized) stereo images. The images are from a video stream, and there is a pre-processing step to subsample the number of images fed into SfM. However, I am unsure on what is the best way to approach the problem overall.

    • One option is to force single camera = true to achieve better intrinsics optimization. However, there will be a slight error as the left and right cameras don't share exactly the same intrinsics.
    • Another option is to have one intrinsics (+ distortion) estimation for every single image. This gets rid of the first option's problem, but will waste a lot of ressources estimating the same intrinsics again and again. Also, it will be potentially robust for the same reason.

    Is there a 3rd option?

    Can I pre-calibrate left and right cameras, then apply one calibration to one set of images, and another calibration to another set of images?

    Ideally, I would like to do this through the CLI, or with some light scripting, without diving into colmap's source code.

    Another thing I would like to do is to fix the relative transform (extrinsics) between the stereo cameras. Is it possible?

    I have come across "RunRigBundleAdjuster" which seems to be intended for a similar problem as mine. However, there is no documentation on how to use it. Can it only be run after regular SfM has already finished?

    opened by fishcu 24
  • Dev branch, Zero matches at reconstruction step.

    Dev branch, Zero matches at reconstruction step.

    Have a weird problem with latest dev branch. When starting reconstruction pass got this error.

    ==============================================================================
    Exhaustive feature matching
    ==============================================================================
    
    Matching block [1/1, 1/1] in 5.229s
    Elapsed time: 0.087 [minutes]
    
    ==============================================================================
    Loading database
    ==============================================================================
    
    Loading cameras... 7 in 0.000s
    Loading matches... 0 in 0.000s
    Loading images... 7 in 0.000s (connected 0)
    Building scene graph... in 0.000s (ignored 0)
    
    Elapsed time: 0.000 [minutes]
    
    WARNING: No images with matches found in the database.
    

    Last commit that works for me was 4e5ffb6 Sys spec: ceres 1.13.0 eigen 3.3.4 gcc 7.1.1 cuda 8.0.61 (gcc5 5.4.0) Ps. I maintain the colmap-git package on archlinux user repository (AUR), in case of a problem with the package #161 please 'ping' me ;)

    opened by szczepaniak-bartek 23
  • Failure when using dense_stereo via command line  in PMVS workspace

    Failure when using dense_stereo via command line in PMVS workspace

    On the latest commit, when trying to conduct dense stereo using the command line and PMVS workspace format I get the following error. Could you please help me resolve it? Thanks! (Check failed: file.is_open() pmvs/stereo/patch-match.cfg)

    Reading workspace... Reading configuration... F0628 09:37:41.965101 10148 patch_match.cc:285] Check failed: file.is_open() pmvs/stereo/patch-match.cfg *** Check failure stack trace: *** @ 0x7f3976a095cd google::LogMessage::Fail() @ 0x7f3976a0b433 google::LogMessage::SendToLog() @ 0x7f3976a0915b google::LogMessage::Flush() @ 0x7f3976a0be1e google::LogMessageFatal::~LogMessageFatal() @ 0x573e29 colmap::mvs::PatchMatchController::ReadProblems() @ 0x576334 colmap::mvs::PatchMatchController::Run() @ 0x67aa9c colmap::Thread::RunFunc() @ 0x7f397395cc80 (unknown) @ 0x7f39762a56ba start_thread @ 0x7f39730c23dd clone @ (nil) (unknown)

    opened by pogilon 23
  • vocab_tree_matcher runtime error std::bad_alloc

    vocab_tree_matcher runtime error std::bad_alloc

    Error description Using the vocab_tree_matcher on a cluster (5 GPUs) I get a runtime error after 12 hours of running.

    The indexing part of the vocab_tree_matcher runs as expected, but there seems to be a std::bad_alloc as soon as it comes to the matching. (in my case after 12 hr running)

    see error message:

    Indexing image [42801/42802] in 1.083s
    Indexing image [42802/42802] in 0.555s
    Matching image [1/42802]terminate called recursively
    terminate called recursively
    terminate called recursively
    [ ... some more of these]
    terminate called recursively
    terminate called recursively
    *** Aborted at 1533642381 (unix time) try "date -d @1533642381" if you are using GNU date ***
    terminate called after throwing an instance of 'std::bad_alloc'
      what():  std::bad_alloc
    terminate called recursively
    terminate called recursively
    terminate called recursively
    PC: @     0x2b99968c6418 gsignal
    *** SIGABRT (@0x12f48000058aa) received by PID 22698 (TID 0x2b9efb63a700) from PID 22698; stack trace: ***
        @     0x2b9993e173d0 (unknown)
        @     0x2b99968c6418 gsignal
        @     0x2b99968c801a abort
        @     0x2b9995e5d7dd __gnu_cxx::__verbose_terminate_handler()
        @     0x2b9995e5b6b6 (unknown)
        @     0x2b9995e5a6a9 (unknown)
        @     0x2b9995e5b005 __gxx_personality_v0
        @     0x2b999668af83 (unknown)
        @     0x2b999668b487 _Unwind_Resume
        @           0x64e1ac flann::KDTreeIndex<>::findNeighbors()
        @           0x5f03be _ZNK5flann7NNIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE._omp_fn.3
        @     0x2b999646843e (unknown)
        @     0x2b9993e0d6fa start_thread
        @     0x2b9996997b5d clone
        @                0x0 (unknown)
    

    I called the following colmap function after extracting the features and saving them to a database.db

    colmap vocab_tree_matcher \
     --database_path $DATASET_PATH/database.db \
     --SiftMatching.num_threads -1 \
     --SiftMatching.use_gpu 1 \
     --SiftMatching.gpu_index $SGE_GPU \
     --SiftMatching.cross_check 1 \
     --SiftMatching.max_error 4 \
     --SiftMatching.multiple_models 1 \
     --SiftMatching.guided_matching 0 \
     --VocabTreeMatching.vocab_tree_path /some_path/colmap_medium_vocab_tree.bin \
     --VocabTreeMatching.num_images 100 \
     --VocabTreeMatching.num_nearest_neighbors 5 \
     --VocabTreeMatching.num_checks 256 \
     --VocabTreeMatching.num_images_after_verification 0 \
     --VocabTreeMatching.max_num_features -1 \
    

    On the SGE Cluster, I got 50 GB of virtual Ram and 5 GPUs The program uses (until it crushes) at most 18GB of virtual ram.

    The error occurs when matching 42802 images. Matching a smaller test dataset of 100 images works perfectly. with the same command.

    Can anyone give me a hint what needs to be changed in order to run the vocab_tree_matcher successfully? @ahojnnes @dppaudel

    opened by pascalenderli 20
  • Model aligner not working - continuation

    Model aligner not working - continuation

    XYZ coordinates in the images.bin is not the camera location. QVEC, TVEC defines transformation from world to camera coordinate system, see https://colmap.github.io/format.html

    You are right - I forgot that we have a transformation matrix and therefore a translation vector not the x,y,z coordinates.

    Following this topic: Suppose that I know not only the x,y,z position of the image but actually the real pose (including rotation) - e.g. like it is the case in the 7scenes dataset. Is there a way to feed not only the x,y,z coordinates but the full pose into colmap so that the mapper can make use of it?

    Thanks again!

    opened by gT-mike 19
  • Some problem with QT??? Segmentation fault (core dumped)

    Some problem with QT??? Segmentation fault (core dumped)

    After 3 days i managed to build Colmap on Linux (after disabling CUDA and downgrading eigen to 3.2), but i still get this error:

    $ colmap help
    COLMAP 3.4 -- Structure-from-Motion and Multi-View Stereo
                  (Commit 827bbb8 on 2018-03-29 without CUDA)
    
    (i manualy truncated the output)
    
    $ colmap gui
    *** Aborted at 1522374315 (unix time) try "date -d @1522374315" if you are using GNU date ***
    PC: @     0x56209d9472eb (unknown)
    *** SIGSEGV (@0xd8) received by PID 9860 (TID 0x7fa565715880) from PID 216; stack trace: ***
        @     0x7fa563fafdd0 (unknown)
        @     0x56209d9472eb (unknown)
        @     0x7fa5633f90ee (unknown)
        @     0x7fa5633f9822 QOpenGLWidget::resizeEvent()
        @     0x7fa5633d8d62 QWidget::event()
        @     0x7fa563397fec QApplicationPrivate::notify_helper()
        @     0x7fa56339f9c6 QApplication::notify()
        @     0x7fa562619cf0 QCoreApplication::notifyInternal2()
        @     0x7fa5633d09cd QWidgetPrivate::sendPendingMoveAndResizeEvents()
        @     0x7fa5633d4a24 QWidgetPrivate::show_helper()
        @     0x7fa5633d7d19 QWidget::setVisible()
        @     0x7fa5633d4981 QWidgetPrivate::showChildren()
        @     0x7fa5633d4a42 QWidgetPrivate::show_helper()
        @     0x7fa5633d7d19 QWidget::setVisible()
        @     0x56209d7f3697 (unknown)
        @     0x56209d7dff7a (unknown)
        @     0x7fa55f11af4a __libc_start_main
        @     0x56209d7e3e7a (unknown)
    Segmentation fault (core dumped)
    
    opened by Harvie 19
  • How to decrease the influence of  margin area

    How to decrease the influence of margin area

    Thanks for the great work. But, some problems bothered me when I reconstruct soybean plants.
    As following image showing, some white background pixel have been connected to the soybean plants. To reduce the white background, I have try some tricks: 1. In stage of sparse reconstrction, I used mask image at step feature extraction, the sparse 3D points has less white background. 2. Then, In stage of dense reconstrction, I set the window_radius=2, but the dense reconstruction result still has lot of white background just as following result. The issue 'https://github.com/colmap/colmap/issues/488' is very likely to mine, is there any suggestion to improve the desen reconstruction result except masking the depth map? I compared the result between window_radius=2 and window_radius = 3, and window_radius=2 is better than window_radius=3. Also, I try to set window_radius=1, the white backgroud reduced less, however, the dense points become more sparse. Looking forward to you reply. image

    opened by hplegend 2
  • Wrong camera orientation sparse model

    Wrong camera orientation sparse model

    For a project, I wanted to use my own calibration data to make a reconstruction in colmap. So, I wrote a python script to calibrate the cameras with a charuco board. calibrateCameraCharuco from opencv's aruco module gives me the rotation and translation vectors for each image. I save them into a pickle file. Another python file then loads the pickle file and extracts the position data in order to convert them into quaternions. In each iteration (one iteration per image), I first transform the rotation vector to a rotation matrix with cv2.Rodrigues(). Then I calculate the quaternion with the following formula:

    image

    Finally, the quaternion data together with the translation vector gets written into images.txt for the manually created sparse folder. However, when open the manually created sparse model in colmap, it looks like this:

    image

    The cameras are all pointing outwards while they should actually point to the inside.

    I do not really understand quaternions. I tried to invert them but with the same result. Does anyone know how to get to my goal?

    opened by Thymian18 1
  • Usage of model_orientation_aligner

    Usage of model_orientation_aligner

    Thank you for this amazing work.

    I am trying to use model_orientation_aligner for my purposes but quite not understand its input arguments. What does it refer to when i asks for input_path, output_path or input_images? I have following bash script that I use to run colmap. Where will model_orientation_aligner fit in there and with what output? I would really appreciate the help.

    DATASET_PATH=$1
    
    colmap feature_extractor \
       --database_path $DATASET_PATH/database.db \
       --image_path $DATASET_PATH/images \
       --SiftExtraction.num_threads 16
       --ImageReader.camera_model PINHOLE 
    
    colmap exhaustive_matcher \
       --database_path $DATASET_PATH/database.db \
       --SiftMatching.num_threads 10 \
       --SiftMatching.guided_matching true
    
    mkdir $DATASET_PATH/sparse
    
    colmap mapper \
        --database_path $DATASET_PATH/database.db \
        --image_path $DATASET_PATH/images \
        --output_path $DATASET_PATH/sparse
    
    mkdir $DATASET_PATH/dense
    
    colmap image_undistorter \
        --image_path $DATASET_PATH/images \
        --input_path $DATASET_PATH/sparse/0 \
        --output_path $DATASET_PATH/dense \
        --output_type COLMAP \
        --max_image_size 2000
    
    colmap patch_match_stereo \
        --workspace_path $DATASET_PATH/dense \
        --workspace_format COLMAP \
        --PatchMatchStereo.geom_consistency true 
    
    colmap stereo_fusion \
        --workspace_path $DATASET_PATH/dense \
        --workspace_format COLMAP \
        --input_type geometric \
        --output_path $DATASET_PATH/dense/fused.ply \
        --StereoFusion.num_threads 16
    
    colmap poisson_mesher \
        --input_path $DATASET_PATH/dense/fused.ply \
        --output_path $DATASET_PATH/dense/meshed-poisson.ply \
        --PoissonMeshing.num_threads 16 \
        --PoissonMeshing.trim 5
    
    opened by bkhanal-11 1
  • Build from Source fails with CUDA 12 due to deprecated CUDA module

    Build from Source fails with CUDA 12 due to deprecated CUDA module

    Environment:

    • OS: wsl2 - Ubuntu
    • CUDA: 12.0(.76)
    • COLMAP Version : last checkout (commit c41b36c7cc84b4df61413a486c1c00ab598793a4, dated Sat Dec 31 12:40:38 2022 +0100)

    Describe the bug

    Build from Source fails with CUDA 12 due to deprecated CUDA module Since the Texture Reference Management module (see https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__TEXREF__DEPRECATED.html ) has been deprecated for quite a while now and has been removed completely in version 12 of CUDA but colmap still refers to it, the compilation fails

    To Reproduce Simply build from source as described here: https://colmap.github.io/install.html#linux The "make -j" command fails with this output

    [ 0%] Building C object lib/LSD/CMakeFiles/lsd.dir/lsd.c.o [ 2%] Building CXX object lib/PoissonRecon/CMakeFiles/poisson_recon.dir/CmdLineParser.cpp.o [...] [ 29%] Building C object lib/VLFeat/CMakeFiles/vlfeat.dir/mathop_sse2.c.o /mnt/c/Data-Work/CodeTest/Head/NeRF/instant-ngp/colmap/lib/PBA/ProgramCU.cu(42): error: incomplete class type "textureReference" is not allowed

    /mnt/c/Data-Work/CodeTest/Head/NeRF/instant-ngp/colmap/lib/PBA/ProgramCU.cu(42): error: identifier "cudaBindTexture" is undefined

    /mnt/c/Data-Work/CodeTest/Head/NeRF/instant-ngp/colmap/lib/PBA/ProgramCU.cu(48): error: incomplete class type "textureReference" is not allowed

    /mnt/c/Data-Work/CodeTest/Head/NeRF/instant-ngp/colmap/lib/PBA/ProgramCU.cu(47): error: identifier "cudaBindTexture" is undefined

    /mnt/c/Data-Work/CodeTest/Head/NeRF/instant-ngp/colmap/lib/PBA/ProgramCU.cu(585): error: texture is not a template

    [...]

    bug help wanted 
    opened by Skaggio 1
  • Sign macOS app

    Sign macOS app

    I tried to add COLMAP to Homebrew (the macOS package manager) so that users could run brew install --cask colmap to install it:

    https://github.com/Homebrew/homebrew-cask/pull/138934

    but they said they won't accept it because

    macOS on ARM [i.e. M1 Macs] requires applications to be signed. Please contact the upstream developer to let them know they should sign their app.

    So here I am, "letting you know that you should sign your app". If it helps, here's a commit called "sign macos appbundle on build" in the MeshLab repo:

    https://github.com/cnr-isti-vclab/meshlab/commit/7dbf76c72a9886df9bea9abd79a97370b6b1f55a

    enhancement help wanted 
    opened by verhovsky 0
  • Sequential matching with a 360 camera (2 fisheye cameras)

    Sequential matching with a 360 camera (2 fisheye cameras)

    Dear sir,

    Thank you for all your effort working on this project!

    I use an Insta360 camera at 2Hz, and trying to perform sequential feature matching with overlap of 20 "shots" (1 "shot" is 2 fisheye frames taken at the same time from both cameras, where each fisheye has its own calibration). I would like the overlap to be over shots. How should my project folder look like in order for this to work? Everything I tried so far performs overlap only on one fisheye each time.

    Thank you, Yoni

    opened by mandelyoni 1
Releases(3.7)
  • 3.7(Jan 26, 2022)

    What's Changed

    • Allow to save fused point cloud in colmap format when using command line by @boitumeloruf in https://github.com/colmap/colmap/pull/799
    • Fix typos in image.h by @Pascal-So in https://github.com/colmap/colmap/pull/936
    • Fix for EPnP estimator by @vlarsson in https://github.com/colmap/colmap/pull/943
    • Visualize models using Python in Open3D by @ahojnnes in https://github.com/colmap/colmap/pull/948
    • Update tutorial.rst by @ignacio-rocco in https://github.com/colmap/colmap/pull/953
    • 8 point algorithm internal contraint fix by @mihaidusmanu in https://github.com/colmap/colmap/pull/982
    • Python script for writing depth/normal arrays by @SBCV in https://github.com/colmap/colmap/pull/957
    • BuildImageModel: use std::vector instead of numbered arguments by @Pascal-So in https://github.com/colmap/colmap/pull/949
    • Fix bugs of sift feature matching by @whuaegeanse in https://github.com/colmap/colmap/pull/985
    • script for modifying fused results by @SBCV in https://github.com/colmap/colmap/pull/984
    • fix camera model query by @Pascal-So in https://github.com/colmap/colmap/pull/997
    • fixed small bug in visualize_model.py by @sniklaus in https://github.com/colmap/colmap/pull/1007
    • Update .travis.yml by @srinivas32 in https://github.com/colmap/colmap/pull/989
    • Ensure DecomposeHomographyMatrix() always returns rotations by @daithimaco in https://github.com/colmap/colmap/pull/1040
    • Remove deprecated qt foreach by @UncleGene in https://github.com/colmap/colmap/pull/1039
    • Fix AMD/Windows GUI visualization bug by @drkoller in https://github.com/colmap/colmap/pull/1079
    • include colmap_cuda in COLMAP_LIBRARIES when compiled with cuda by @ClementPinard in https://github.com/colmap/colmap/pull/1084
    • Fix runtime crash when sparsesuite is missing from ceres by @anmatako in https://github.com/colmap/colmap/pull/1115
    • Store relative poses in two_view_geometry table by @Ahmed-Salama in https://github.com/colmap/colmap/pull/1103
    • search src images for patch_match from all set, not only referenced subset by @DaniilSNikulin in https://github.com/colmap/colmap/pull/1038
    • Replace Travis CI with Azure Pipelines for Linux/Mac builds by @ahojnnes in https://github.com/colmap/colmap/pull/1119
    • Allow ReadPly to handle double precision files by @anmatako in https://github.com/colmap/colmap/pull/1131
    • Update GPSTransform calculations to improve accuracy by @anmatako in https://github.com/colmap/colmap/pull/1132
    • Add scale template flag in SimilarityTransform3::Estimate by @anmatako in https://github.com/colmap/colmap/pull/1133
    • Add CopyFile utility that can copy or hard/soft-link files by @anmatako in https://github.com/colmap/colmap/pull/1134
    • Expose BA options in IncrementalMapper by @anmatako in https://github.com/colmap/colmap/pull/1139
    • Allow configurable paths for mvs::Model by @anmatako in https://github.com/colmap/colmap/pull/1141
    • Change ReconstructionMaanger to write larger recons first by @anmatako in https://github.com/colmap/colmap/pull/1137
    • Setup Azure pipelines for Windows build by @ahojnnes in https://github.com/colmap/colmap/pull/1150
    • Add fixed extrinsics in rig config by @anmatako in https://github.com/colmap/colmap/pull/1144
    • Allow custom config and missing dependencies for patch-match by @anmatako in https://github.com/colmap/colmap/pull/1142
    • Update print statements for Python 3 compatibility by @UncleGene in https://github.com/colmap/colmap/pull/1126
    • Allow cleanup of SQLite tables using new database_cleaner command by @anmatako in https://github.com/colmap/colmap/pull/1136
    • Extend SceneClustering to support non-hierarchical (flat) clusters by @anmatako in https://github.com/colmap/colmap/pull/1140
    • Support more formats in model_converter by @anmatako in https://github.com/colmap/colmap/pull/1147
    • Fix Mac 10.15 build due to changed Qt5 path by @ahojnnes in https://github.com/colmap/colmap/pull/1157
    • Fix bug in ReadCameraRigConfig when reading extrinsics by @anmatako in https://github.com/colmap/colmap/pull/1158
    • Add utility to compare poses between two sparse models by @ahojnnes in https://github.com/colmap/colmap/pull/1159
    • Modularize executable main functions into separate sources by @ahojnnes in https://github.com/colmap/colmap/pull/1160
    • Fix unnecessary copies in for range loops by @ahojnnes in https://github.com/colmap/colmap/pull/1162
    • Add script to clang-format all source code by @ahojnnes in https://github.com/colmap/colmap/pull/1163
    • Add back new options and formats for model_converter by @anmatako in https://github.com/colmap/colmap/pull/1164
    • ImageReder new option and bug fix in GPS priors by @anmatako in https://github.com/colmap/colmap/pull/1146
    • Parallelize stereo fusion; needs pre-loading of entire workspace by @anmatako in https://github.com/colmap/colmap/pull/1148
    • Refactoring and new functionality in Reconstruction class by @anmatako in https://github.com/colmap/colmap/pull/1169
    • Add new functionality in image_undistorter by @anmatako in https://github.com/colmap/colmap/pull/1168
    • Add new CMake option to disable GUI by @anmatako in https://github.com/colmap/colmap/pull/1165
    • Fix the memory leak caused by not releasing the memory of the PRNG at the end of the thread by @whuaegeanse in https://github.com/colmap/colmap/pull/1170
    • Fix fusion segfault bug by @anmatako in https://github.com/colmap/colmap/pull/1176
    • Update SiftGPU to use floorf for floats by @anmatako in https://github.com/colmap/colmap/pull/1182
    • fix typo in extraction.cc by @iuk in https://github.com/colmap/colmap/pull/1191
    • Improvements to NVM, Cam, Recon3D, and Bundler exporters by @drkoller in https://github.com/colmap/colmap/pull/1187
    • Update model_aligner functionality by @anmatako in https://github.com/colmap/colmap/pull/1177
    • Add new model_cropper and model_splitter commands by @anmatako in https://github.com/colmap/colmap/pull/1179
    • use type point2D_t instead of image_t by @iuk in https://github.com/colmap/colmap/pull/1199
    • Fix radial distortion in Cam format exporter by @drkoller in https://github.com/colmap/colmap/pull/1196
    • Add new model_transformer command by @anmatako in https://github.com/colmap/colmap/pull/1178
    • Fix error of using urllib to download eigen from gitlab by @whuaegeanse in https://github.com/colmap/colmap/pull/1194
    • Multi-line string fix in Python model script by @mihaidusmanu in https://github.com/colmap/colmap/pull/1217
    • added visibility_sigma to CLI input options for delaunay_mesher. by @Matstah in https://github.com/colmap/colmap/pull/1236
    • Backwards compatibility of model_aligner by @tsattler in https://github.com/colmap/colmap/pull/1240
    • [update undistortion] update dumped commands by @hiakru in https://github.com/colmap/colmap/pull/1276
    • Compute reprojection error in generalized absolute solver by @Skydes in https://github.com/colmap/colmap/pull/1257
    • Modifying scripts/python/flickr_downloader.py to create files with correct extensions by @snavely in https://github.com/colmap/colmap/pull/1275
    • revise Dockerfile and readme. by @MasahiroOgawa in https://github.com/colmap/colmap/pull/1281
    • Update to latest vcpkg version by @ahojnnes in https://github.com/colmap/colmap/pull/1319
    • Fix compiler warnings reported by GCC by @ahojnnes in https://github.com/colmap/colmap/pull/1317
    • Auto-rotate JPEG images based on EXIF orientation by @ahojnnes in https://github.com/colmap/colmap/pull/1318
    • Upgrade vcpkg to fix CI build issues by @ahojnnes in https://github.com/colmap/colmap/pull/1331
    • Added descriptor normalization argument to feature_extractor. by @mihaidusmanu in https://github.com/colmap/colmap/pull/1332
    • Fix memory leak in the function of StringAppendV by @whuaegeanse in https://github.com/colmap/colmap/pull/1337
    • Add CUDA_SAFE_CALL to cudaGetDeviceCount. by @chpatrick in https://github.com/colmap/colmap/pull/1334
    • Add missing include in case CUDA/GUI is not available by @ahojnnes in https://github.com/colmap/colmap/pull/1329
    • Fix wrong WGS84 model and test cases in GPSTransform by @Freeverc in https://github.com/colmap/colmap/pull/1333
    • Fixes bug in sprt.cc: num_inliers was not set. by @rmbrualla in https://github.com/colmap/colmap/pull/1360
    • Prevent a divide by zero corner case. by @rmbrualla in https://github.com/colmap/colmap/pull/1361
    • Adds missing header. by @rmbrualla in https://github.com/colmap/colmap/pull/1362
    • Require Qt in COLMAPConfig only if GUI is enabled by @Skydes in https://github.com/colmap/colmap/pull/1365
    • Keep precision in the process of storing in text. by @whuaegeanse in https://github.com/colmap/colmap/pull/1363
    • Expose exe internals by @Skydes in https://github.com/colmap/colmap/pull/1366
    • Fix inliers matches extraction in EstimateUncalibrated function. by @ferreram in https://github.com/colmap/colmap/pull/1369
    • Expose exe internals - fix by @Skydes in https://github.com/colmap/colmap/pull/1368
    • Remove deprecated Mac OSX 10.14 image in ADO pipeline by @ahojnnes in https://github.com/colmap/colmap/pull/1383
    • Add Mac OSX 11 ADO pipeline job by @ahojnnes in https://github.com/colmap/colmap/pull/1384
    • Fix warnings for latest compiler/libraries by @ahojnnes in https://github.com/colmap/colmap/pull/1382
    • Fix clang compiler warnings by @ahojnnes in https://github.com/colmap/colmap/pull/1387
    • Add Address Sanitizer options and fix reported issues by @ahojnnes in https://github.com/colmap/colmap/pull/1390
    • User/joschonb/asan cleanup by @ahojnnes in https://github.com/colmap/colmap/pull/1391
    • Add ADO pipeline for Visual Studio 2022 by @ahojnnes in https://github.com/colmap/colmap/pull/1392
    • Add ccache option by @ahojnnes in https://github.com/colmap/colmap/pull/1395
    • Update ModelAligner to handle GPS and custom coords. and more by @ferreram in https://github.com/colmap/colmap/pull/1371
    • Fix camera size change under Windows by @ahojnnes in https://github.com/colmap/colmap/pull/1401
    • Release of COLMAP version 3.7 by @ahojnnes in https://github.com/colmap/colmap/pull/1402
    • Reverting back to the original implementation which did not use the E… by @ahojnnes in https://github.com/colmap/colmap/pull/1406

    New Contributors

    • @boitumeloruf made their first contribution in https://github.com/colmap/colmap/pull/799
    • @Pascal-So made their first contribution in https://github.com/colmap/colmap/pull/936
    • @vlarsson made their first contribution in https://github.com/colmap/colmap/pull/943
    • @ignacio-rocco made their first contribution in https://github.com/colmap/colmap/pull/953
    • @mihaidusmanu made their first contribution in https://github.com/colmap/colmap/pull/982
    • @whuaegeanse made their first contribution in https://github.com/colmap/colmap/pull/985
    • @srinivas32 made their first contribution in https://github.com/colmap/colmap/pull/989
    • @daithimaco made their first contribution in https://github.com/colmap/colmap/pull/1040
    • @UncleGene made their first contribution in https://github.com/colmap/colmap/pull/1039
    • @anmatako made their first contribution in https://github.com/colmap/colmap/pull/1115
    • @Ahmed-Salama made their first contribution in https://github.com/colmap/colmap/pull/1103
    • @iuk made their first contribution in https://github.com/colmap/colmap/pull/1191
    • @Matstah made their first contribution in https://github.com/colmap/colmap/pull/1236
    • @Skydes made their first contribution in https://github.com/colmap/colmap/pull/1257
    • @snavely made their first contribution in https://github.com/colmap/colmap/pull/1275
    • @MasahiroOgawa made their first contribution in https://github.com/colmap/colmap/pull/1281
    • @chpatrick made their first contribution in https://github.com/colmap/colmap/pull/1334
    • @Freeverc made their first contribution in https://github.com/colmap/colmap/pull/1333
    • @rmbrualla made their first contribution in https://github.com/colmap/colmap/pull/1360
    • @ferreram made their first contribution in https://github.com/colmap/colmap/pull/1369

    Full Changelog: https://github.com/colmap/colmap/compare/3.6...3.7

    Source code(tar.gz)
    Source code(zip)
    COLMAP-3.7-mac-no-cuda.zip(67.67 MB)
    COLMAP-3.7-windows-cuda.zip(128.70 MB)
    COLMAP-3.7-windows-no-cuda.zip(47.03 MB)
  • 3.6(Jul 24, 2020)

    • Improved robustness and faster incremental reconstruction process
    • Add image_deleter command to remove images from sparse model
    • Add image_filter command to filter bad registrations from sparse model
    • Add point_filtering command to filter sparse model point clouds
    • Add database_merger command to merge two databases, which is useful to parallelize matching across different machines
    • Add image_undistorter_standalone to enable undistorting images without a pre-existing full sparse model
    • Improved undistortion for fisheye cameras and FOV camera model
    • Support for masking input images in feature extraction stage
    • Improved HiDPI support in GUI for high-resolution monitors
    • Import sparse model when launching GUI from CLI
    • Faster CPU-based matching using approximate NN search
    • Support for bundle adjustment with fixed extrinsics
    • Support for fixing existing images when continuing reconstruction
    • Camera model colors in viewer can be customized
    • Support for latest GPU architectures in CUDA build
    • Support for writing sparse models in Python scripts
    • Scripts for building and running COLMAP in Docker
    • Many more bug fixes and improvements to code and documentation

    Note that with this release, we stop shipping pre-built binaries for CUDA-enabled GPUs with legacy compute capability < 3.0, see https://developer.nvidia.com/cuda-gpus to find out whether your GPU is supported. For older GPU architectures, you can either manually build COLMAP from source using an older CUDA version or download an older COLMAP release.

    Source code(tar.gz)
    Source code(zip)
    COLMAP-3.6-mac-no-cuda.zip(67.29 MB)
    COLMAP-3.6-windows-cuda.zip(107.64 MB)
    COLMAP-3.6-windows-no-cuda.zip(40.78 MB)
  • 3.6-dev.3(Dec 10, 2019)

  • 3.6-dev.2(Mar 24, 2019)

  • 3.6-dev.1(Nov 4, 2018)

  • 3.5(Aug 23, 2018)

    If you have an older NVIDIA GPU that does not support CUDA 9.X or has compute capability 2.X, please download the legacy CUDA version for Windows.

    • COLMAP is now released under the BSD license instead of the GPL
    • COLMAP is now installed as a library, whose headers can be included and libraries linked against from other C/C++ code
    • Add hierarchical mapper for parallelized reconstruction or large scenes
    • Add sparse and dense Delaunay meshing algorithms, which reconstruct a watertight surface using a graph cut on the Delaunay triangulation of the reconstructed sparse or dense point cloud
    • Improved robustness when merging different models
    • Improved pre-trained vocabulary trees available for download
    • Add COLMAP as a software entry under Linux desktop systems
    • Add support to compile COLMAP on ARM platforms
    • Add example Python script to read/write COLMAP database
    • Add region of interest (ROI) cropping in image undistortion
    • Several import bug fixes for spatial verification in image retrieval
    • Add more extensive continuous integration across more compilation scenarios
    • Many more bug fixes and improvements to code and documentation
    Source code(tar.gz)
    Source code(zip)
    COLMAP-3.5-mac-no-cuda.zip(31.78 MB)
    COLMAP-3.5-windows-legacy-cuda.zip(107.84 MB)
    COLMAP-3.5-windows-no-cuda.zip(42.38 MB)
    COLMAP-3.5-windows.zip(111.70 MB)
  • 3.4(Jun 4, 2018)

    • Unified command-line interface: The functionality of previous executables have been merged into the src/exe/colmap.cc executable. The GUI can now be started using the command colmap gui and other commands are available as colmap [command]. For example, the feature extractor is now available as colmap feature_extractor [args] while all command-line arguments stay the same as before. This should result in much faster project compile times and smaller disk space usage of the program. More details about the new interface are documented at https://colmap.github.io/cli.html
    • More complete depth and normal maps with larger patch sizes
    • Faster dense stereo computation by skipping rows/columns in patch match, improved random sampling in patch match, and faster bilateral NCC
    • Better high DPI screen support for the graphical user interface
    • Improved model viewer under Windows, which now requires Qt 5.4
    • Save computed two-view geometries in database
    • Images (keypoint/matches visualization, depth and normal maps) can now be saved from the graphical user interface
    • Support for PMVS format without sparse bundler file
    • Faster covariant feature detection
    • Many more bug fixes and improvements
    Source code(tar.gz)
    Source code(zip)
    COLMAP-3.4-mac-no-cuda.zip(30.24 MB)
    COLMAP-3.4-windows-no-cuda.zip(38.78 MB)
    COLMAP-3.4-windows.zip(103.08 MB)
  • 3.3(Jun 4, 2018)

    • Add DSP (Domain Size Pooling) SIFT implementation. DSP-SIFT outperforms standard SIFT in most cases, as shown in "Comparative Evaluation of Hand-Crafted and Learned Local Features", Schoenberger et al., CVPR 2017
    • Improved parameters dense reconstruction of smaller models
    • Improved compile times due to various code optimizations
    • Add option to specify camera model in automatic reconstruction
    • Add new model orientation alignment based on upright image assumption
    • Improved numerical stability for generalized absolute pose solver
    • Support for image range specification in PMVS dense reconstruction format
    • Support for older Python versions in automatic build script
    • Fix OpenCV Fisheye camera model to exactly match OpenCV specifications
    Source code(tar.gz)
    Source code(zip)
    COLMAP-3.3-mac-no-cuda.zip(29.84 MB)
    COLMAP-3.3-windows-no-cuda.zip(64.17 MB)
    COLMAP-3.3-windows.zip(243.04 MB)
  • 3.2(Jun 4, 2018)

    • Fully automatic cross-platform build script (Windows, Mac, Linux)
    • Add multi-GPU feature extraction if multiple CUDA devices are available
    • Configurable dimension and data type for vocabulary tree implementation
    • Add new sequential matching mode for image sequences with high frame-rate
    • Add generalized relative pose solver for multi-camera systems
    • Add sparse least absolute deviation solver
    • Add CPU/GPU options to automatic reconstruction tool
    • Add continuous integration system under Windows, Mac, Linux through Github
    • Many more bug fixes and improvements
    Source code(tar.gz)
    Source code(zip)
    COLMAP-3.2-mac-no-cuda.zip(29.59 MB)
    COLMAP-3.2-windows-no-cuda.zip(64.85 MB)
    COLMAP-3.2-windows.zip(246.80 MB)
  • 3.1(Jun 4, 2018)

    • Add fast spatial verification to image retrieval module
    • Add binary file format for sparse models by default. Old text format still fully compatible and possible conversion in GUI and CLI
    • Add cross-platform little endian binary file reading and writing
    • Faster and less memory hungry stereo fusion by computing consistency on demand and possible limitation of image size in fusion
    • Simpler geometric stereo processing interface. Now geometric stereo output can be computed using a single pass
    • Faster and multi-architecture CUDA compilation
    • Add medium quality option in automatic reconstructor
    • Many more bug fixes and improvements
    Source code(tar.gz)
    Source code(zip)
    COLMAP-3.1-mac-no-cuda.zip(29.20 MB)
    COLMAP-3.1-windows-no-cuda.zip(72.82 MB)
    COLMAP-3.1-windows.zip(205.03 MB)
  • 3.0(Jun 4, 2018)

    • Add automatic end-to-end reconstruction tool that automatically performs sparse and dense reconstruction on a given set of images
    • Add multi-GPU dense stereo if multiple CUDA devices are available
    • Add multi-GPU feature matching if multiple CUDA devices are available
    • Add Manhattan-world / gravity alignment using line detection
    • Add CUDA-based feature extraction useful for usage on clusters
    • Add CPU-based feature matching for machines without GPU
    • Add new THIN_PRISM_FISHEYE camera model with tangential/radial correction
    • Add binary to triangulate existing/empty sparse reconstruction
    • Add binary to print summary statistics about sparse reconstruction
    • Add transitive feature matching to transitively complete match graph
    • Improved scalability of dense reconstruction by using caching
    • More stable GPU-based feature matching with informative warnings
    • Faster vocabulary tree matching using dynamic scheduling in FLANN
    • Faster spatial feature matching using linear index instead of kd-tree
    • More stable camera undistortion using numerical Newton iteration
    • Improved option parsing with some backwards incompatible option renaming
    • Faster compile times by optimizing includes and CUDA flags
    • More stable view selection for small baseline scenario in dense reconstruction
    • Many more bug fixes and improvements
    Source code(tar.gz)
    Source code(zip)
    COLMAP-3.0-mac-no-cuda.zip(28.78 MB)
    COLMAP-3.0-windows-no-cuda.zip(72.07 MB)
    COLMAP-3.0-windows.zip(175.40 MB)
  • 2.1(Jun 4, 2018)

    • Support to only index and match specific images in vocabulary tree matching
    • Support to perform image retrieval using vocabulary tree
    • Several bug fixes and improvements for multi-view stereo module
    • Improved Structure-from-Motion initialization strategy
    • Support to only reconstruct the scene using specific images in the database
    • Add support to merge two models using overlapping registered images
    • Add support to geo-register/align models using known camera locations
    • Support to only extract specific images in feature extraction module
    • Support for snapshot model export during reconstruction
    • Skip already undistorted images if they exist in output directory
    • Support to limit the number of features in image retrieval for improved speed
    • Miscellaneous bug fixes and improvements
    Source code(tar.gz)
    Source code(zip)
    COLMAP-2.1-windows-no-cuda.zip(65.71 MB)
    COLMAP-2.1-windows.zip(99.40 MB)
  • 2.0(Jun 4, 2018)

  • 1.1(Jun 4, 2018)

    • Implementation of state-of-the-art image retrieval system using Hamming embedding for vocabulary tree matching. This should lead to much improved matching results as compared to the previous implementation.
    • Guided matching as an optional functionality.
    • New demo datasets for download.
    • Automatically switch to PBA if supported by the project.
    • Implementation of EPNP solver for local pose optimization in RANSAC.
    • Add option to extract upright SIFT features.
    • Saving JPEGs in superb quality by default in export.
    • Add option to clear matches and inlier matches in the project.
    • New fisheye camera models, including the FOV camera model used by Google Project Tango (Thomas Schoeps).
    • Extended documentation based on user feedback.
    • Fixed typo in documentation (Thomas Schoeps).
    Source code(tar.gz)
    Source code(zip)
    COLMAP-1.1-mac-no-cuda.zip(29.65 MB)
    COLMAP-1.1-windows-no-cuda.zip(53.30 MB)
    COLMAP-1.1-windows.zip(70.95 MB)
某学校选课系统GIF验证码数据集 + Baseline模型 + 上下游相关工具

elective-dataset-2021spring 某学校2021春季选课系统GIF验证码数据集(29338张) + 准确率98.4%的Baseline模型 + 上下游相关工具。 数据集采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。 Baseline模型和上下游相关工具采用

xmcp 27 Sep 17, 2021
Automatically download the cwru data set, and then divide it into training data set and test data set

Automatically download the cwru data set, and then divide it into training data set and test data set.自动下载cwru数据集,然后分训练数据集和测试数据集

6 Jun 27, 2022
Convert ONNX model graph to Keras model format.

Convert ONNX model graph to Keras model format.

Grigory Malivenko 175 Dec 28, 2022
MNIST, but with Bezier curves instead of pixels

bezier-mnist This is a work-in-progress vector version of the MNIST dataset. Samples Here are some samples from the training set. Note that, while the

Alex Nichol 15 Jan 16, 2022
[CVPR 2022] Official code for the paper: "A Stitch in Time Saves Nine: A Train-Time Regularizing Loss for Improved Neural Network Calibration"

MDCA Calibration This is the official PyTorch implementation for the paper: "A Stitch in Time Saves Nine: A Train-Time Regularizing Loss for Improved

MDCA Calibration 21 Dec 22, 2022
Repository accompanying the "Sign Pose-based Transformer for Word-level Sign Language Recognition" paper

by Matyáš Boháček and Marek Hrúz, University of West Bohemia Should you have any questions or inquiries, feel free to contact us here. Repository acco

Matyáš Boháček 30 Dec 30, 2022
PyTorch implementation of U-TAE and PaPs for satellite image time series panoptic segmentation.

Panoptic Segmentation of Satellite Image Time Series with Convolutional Temporal Attention Networks (ICCV 2021) This repository is the official implem

71 Jan 04, 2023
This is the implementation of the paper "Self-supervised Outdoor Scene Relighting"

Self-supervised Outdoor Scene Relighting This is the implementation of the paper "Self-supervised Outdoor Scene Relighting". The model is implemented

Ye Yu 24 Dec 17, 2022
End-to-End Referring Video Object Segmentation with Multimodal Transformers

End-to-End Referring Video Object Segmentation with Multimodal Transformers This repo contains the official implementation of the paper: End-to-End Re

608 Dec 30, 2022
RTSeg: Real-time Semantic Segmentation Comparative Study

Real-time Semantic Segmentation Comparative Study The repository contains the official TensorFlow code used in our papers: RTSEG: REAL-TIME SEMANTIC S

Mennatullah Siam 592 Nov 18, 2022
Pytorch implementation of BRECQ, ICLR 2021

BRECQ Pytorch implementation of BRECQ, ICLR 2021 @inproceedings{ li&gong2021brecq, title={BRECQ: Pushing the Limit of Post-Training Quantization by Bl

Yuhang Li 148 Dec 28, 2022
A 3D sparse LBM solver implemented using Taichi

taichi_LBM3D Background Taichi_LBM3D is a 3D lattice Boltzmann solver with Multi-Relaxation-Time collision scheme and sparse storage structure impleme

Jianhui Yang 121 Jan 06, 2023
Official Pytorch implementation for "End2End Occluded Face Recognition by Masking Corrupted Features, TPAMI 2021"

End2End Occluded Face Recognition by Masking Corrupted Features This is the Pytorch implementation of our TPAMI 2021 paper End2End Occluded Face Recog

Haibo Qiu 25 Oct 31, 2022
Light-Head R-CNN

Light-head R-CNN Introduction We release code for Light-Head R-CNN. This is my best practice for my research. This repo is organized as follows: light

jemmy li 835 Dec 06, 2022
Experiments and code to generate the GINC small-scale in-context learning dataset from "An Explanation for In-context Learning as Implicit Bayesian Inference"

GINC small-scale in-context learning dataset GINC (Generative In-Context learning Dataset) is a small-scale synthetic dataset for studying in-context

P-Lambda 29 Dec 19, 2022
Object Database for Super Mario Galaxy 1/2.

Super Mario Galaxy Object Database Welcome to the public object database for Super Mario Galaxy and Super Mario Galaxy 2. Here, we document all object

Aurum 9 Dec 04, 2022
An Efficient Implementation of Analytic Mesh Algorithm for 3D Iso-surface Extraction from Neural Networks

AnalyticMesh Analytic Marching is an exact meshing solution from neural networks. Compared to standard methods, it completely avoids geometric and top

Karbo 45 Dec 21, 2022
Implementation of SE3-Transformers for Equivariant Self-Attention, in Pytorch.

SE3 Transformer - Pytorch Implementation of SE3-Transformers for Equivariant Self-Attention, in Pytorch. May be needed for replicating Alphafold2 resu

Phil Wang 207 Dec 23, 2022
CenterNet:Objects as Points目标检测模型在Pytorch当中的实现

CenterNet:Objects as Points目标检测模型在Pytorch当中的实现

Bubbliiiing 267 Dec 29, 2022
Pytorch implementation of Make-A-Scene: Scene-Based Text-to-Image Generation with Human Priors

Make-A-Scene - PyTorch Pytorch implementation (inofficial) of Make-A-Scene: Scene-Based Text-to-Image Generation with Human Priors (https://arxiv.org/

Casual GAN Papers 259 Dec 28, 2022