COLMAP 3.9 官方文档翻译之一 Installation安装

安装说明

您可以选择下载预编译的二进制文件或手动构建源代码。可从https://demuc.de/colmap/下载适用于 Windows 和 Mac 等平台的可执行文件以及其他资源。适用于 Linux/Unix/BSD 的可执行文件可在https://repology.org/metapackage/colmap/versions上找到。请注意,默认存储库中的 Linux/Unix/BSD 的 COLMAP 软件包不带有 CUDA 支持,需要手动编译,但在这些平台上相对较容易。

COLMAP 可以通过命令行或图形用户界面作为独立应用程序使用。此外,COLMAP 还构建为可重用的库,即您可以将 COLMAP 包含并链接到您自己的源代码中,下面将进行进一步描述。

预编译二进制文件

Windows

为了方便起见,Windows 的预编译二进制文件包含图形和命令行界面的可执行文件。要启动 COLMAP 图形用户界面(GUI),您可以简单地双击 COLMAP.bat批处理脚本,或者从 Windows 命令行或 Powershell 运行它。命令行界面也可以通过此批处理脚本访问,该脚本会自动设置必要的库路径。要列出可用的 COLMAP 命令,请在命令行 shell cmd.exe 或 Powershell 中运行 COLMAP.bat -h

Mac

Mac 的预编译应用程序包含 COLMAP 的图形和命令行版本。要打开 GUI,只需打开应用程序,并注意 COLMAP 作为未签名应用程序提供,即,当您首次打开应用程序时,您必须右键单击应用程序,选择打开,然后接受信任应用程序。以后,您只需双击应用程序即可打开 COLMAP。通过运行打包的二进制文件 COLMAP.app/Contents/MacOS/colmap,可以访问命令行界面。要列出可用的 COLMAP 命令,请运行 COLMAP.app/Contents/MacOS/colmap -h

从源代码构建

COLMAP 可以在所有主要平台(Linux、Mac、Windows)上轻松构建。首先,下载最新的源代码:

git clone https://github.com/colmap/colmap

在 Linux 和 Mac 上,通常推荐遵循下面的安装说明,这些说明使用系统包管理器来安装所需的依赖项。或者,还有一个 Python 构建脚本,可以在本地构建 COLMAP 及其依赖项。如果您在 Linux 或 Mac 下没有 root 访问权限,或者在 Windows 上或(集群)系统上使用时,这个脚本会非常有用。

Linux

推荐的依赖项:CUDA(至少 7.X 版本)

来自默认 Ubuntu 仓库的依赖项:

sudo apt-get install \
    git \
    cmake \
    ninja-build \
    build-essential \
    libboost-program-options-dev \
    libboost-filesystem-dev \
    libboost-graph-dev \
    libboost-system-dev \
    libeigen3-dev \
    libflann-dev \
    libfreeimage-dev \
    libmetis-dev \
    libgoogle-glog-dev \
    libgtest-dev \
    libsqlite3-dev \
    libglew-dev \
    qtbase5-dev \
    libqt5opengl5-dev \
    libcgal-dev \
    libceres-dev

配置和编译COLMAP

git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
cmake .. -GNinja
ninja
sudo ninja install

运行COLMAP:

colmap -h
colmap gui

为了编译支持 CUDA 的 COLMAP,请同时安装 Ubuntu 默认的 CUDA 包:

sudo apt-get install -y \
    nvidia-cuda-toolkit \
    nvidia-cuda-toolkit-gcc

或者,从 NVIDIA 官网手动安装最新的 CUDA。在 CMake 配置时,如果您只想在当前机器上运行 COLMAP,请将 CMAKE_CUDA_ARCHITECTURES 设置为 “native”;如果想要能够分发到其他机器,请设置为 “all” 或 “all-major”;或者设置为特定的 CUDA 架构,如 “75” 等。

Ubuntu 16.04/18.04 下,CGAL 的 CMake 配置脚本存在问题,您还必须安装 CGAL Qt5 包:

sudo apt-get install libcgal-qt5-dev

Ubuntu 22.04下,使用 Ubuntu 默认的 CUDA 包和 GCC 编译时会遇到问题,您必须使用 GCC 10 来编译:

sudo apt-get install gcc-10 g++-10
export CC=/usr/bin/gcc-10
export CXX=/usr/bin/g++-10
export CUDAHOSTCXX=/usr/bin/g++-10
# ... 然后运行 CMake 针对 COLMAP 的源代码。

Mac

依赖项来自Homebrew

brew install \
    cmake \
    ninja \
    boost \
    eigen \
    flann \
    freeimage \
    metis \
    glog \
    googletest \
    ceres-solver \
    qt5 \
    glew \
    cgal \
    sqlite3

配置和编译COLMAP:

git clone https://github.com/colmap/colmap.git
cd colmap
export PATH="/usr/local/opt/qt@5/bin:$PATH"
mkdir build
cd build
cmake ..  -GNinja -DQt5_DIR=/usr/local/opt/qt/lib/cmake/Qt5
ninja
sudo ninja install

如果您的系统中同时安装了 Qt 6,您可能需要在配置 CMake 时临时链接您的 Qt 5 安装:

brew link qt5
cmake configuration (from previous code block)
brew unlink qt5

运行COLMAP:

colmap -h
colmap gui

Windows

推荐依赖项: CUDA(至少版本 7.X)和 Visual Studio 2019
在 Windows 系统上,建议使用 vcpkg 来构建 COLMAP:

git clone https://github.com/microsoft/vcpkg
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg install colmap[cuda,tests]:x64-windows

如果您想要为多个计算架构编译 CUDA,请使用:

.\vcpkg install colmap[cuda-redist]:x64-windows

更多细节请参考下一节。

请注意,Visual Studio 2022 存在一些已知的编译器错误,这可能会在编译 COLMAP 的源代码时导致崩溃。因此,推荐使用 Visual Studio 2019 来避免这些问题。

VCPKG

VCPKG 是一个跨平台的软件包管理器,可以方便地从头开始构建 COLMAP 及其所有依赖项。在使用 VCPKG 构建 COLMAP 之前,需要手动按照标准方式在您的平台上安装 CUDA。使用 VCPKG 编译 COLMAP,您需要运行:

git clone https://github.com/microsoft/vcpkg
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg install colmap:x64-linux

当使用 VCPKG 来编译 COLMAP 时,您可以为不同的平台(如 x64-osx、x64-windows 等)选择相应的构建选项。如果您希望在编译 COLMAP 时启用 CUDA 支持并构建所有测试,可以运行:

./vcpkg install colmap[cuda,tests]:x64-linux

以上的命令可以构建最新发布版本的COLMAP。要编译开发分支(dev branch)上的版本,而不是最新的发布版本,您可以运行:

./vcpkg install colmap:x64-linux --head

如果您想要修改 COLMAP 的源代码,您可以在命令中加上--editable --no-downloads。或者,如果您向从另一个文件夹构建并使用vcpkg管理的依赖项,首先运行 ./vcpkg integrate install 然后配置COLMAP 如下:

cd path/to/colmap
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build . --config release --target colmap_main --parallel 24

如果你想将COLMAP与你自己的库包含并链接起来,最简单的方法是使用CMake作为构建配置工具。在配置COLMAP构建并运行_ninja/make install_之后,COLMAP会自动安装所有的头文件到
${CMAKE_INSTALL_PREFIX}/include/colmap,所有的库文件到${CMAKE_INSTALL_PREFIX}/lib/colmap,以及CMake配置到${CMAKE_INSTALL_PREFIX}/share/colmap

例如,编译你自己的源代码,并来与COLMAP一起使用就像使用下面的CMakeLists.txt一样简单:

cmake_minimum_required(VERSION 3.10)

project(SampleProject)

find_package(colmap REQUIRED)
# or to require a specific version: find_package(colmap 3.4 REQUIRED)

add_executable(hello_world hello_world.cc)
target_link_libraries(hello_world colmap::colmap)

使用源代码hello_world.cc

#include <cstdlib>
#include <iostream>

#include <colmap/controllers/option_manager.h>
#include <colmap/util/string.h>

int main(int argc, char** argv) {
    colmap::InitializeGlog(argv);

    std::string message;
    colmap::OptionManager options;
    options.AddRequiredOption("message", &message);
    options.Parse(argc, argv);

    std::cout << colmap::StringPrintf("Hello %s!", message.c_str()) << std::endl;

    return EXIT_SUCCESS;
}

然后编译和运行你的代码:

mkdir build
cd build
export colmap_DIR=${CMAKE_INSTALL_PREFIX}/share/colmap
cmake .. -GNinja
ninja
./hello_world --message "world"

这个示例的源代码储存在doc/sample-project

内存检测工具 AddressSanitizer

如果您想在构建COLMAP时使用内存检测工具AddressSanitizer(build COLMAP with address sanitizer flags enabled),您需要使用一个支持ASan的最新编译器。例如,你可以在Ubuntu机器上手动安装一个最新的clang版本,然后像下面这样调用CMake:

CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake .. \
    -DASAN_ENABLED=ON \
    -DTESTS_ENABLED=ON \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo

请注意,通常将ASan与调试符号(debug symbols)结合使用,以获得有意义的跟踪信息来解决错误报告中的问题。

文档

您需要Python和Sphinx来构建HTML文档:

cd path/to/colmap/doc
sudo apt-get install python
pip install sphinx
make html
open _build/html/index.html

或者,您也可以构建PDF、EPUB等格式的文档:

make latexpdf
open _build/pdf/COLMAP.pdf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值