Colmap编译教程及笔记 [Windows+VS2019+Vcpkg]

Windows系统下COLMAP的编译可以分为三部分1手动下载安装Boost、Qt、CGAL、CUDABoost和CGAL也可以用vcpkg安装2利用vcpkg安装glew、freeimage、ceres等库3最后在colmap源代码目录下的build文件夹打开cmd输入cmake命令生成解决方案

0 预安装

CMake、Git、Visual Studio 2019、Vcpkg等提前安装好vcpkg和git可以参考博客
并在系统环境变量中添加CMake和Git,如下所示

请添加图片描述

注意环境变量换成自己安装的位置切勿照搬。VS2019一定要安装英文版为了方便vcpkg。

1. Qt、CUDA、Boost、CGAL的安装

COLMAP官方安装指南首推vcpkg安装其次利用python安装脚本如下所示
从中可以推测需要我们自己安装的主要就是boost、qt、cuda和cgal。

python scripts/python/build.py \
    --build_path path/to/colmap/build \
    --colmap_path path/to/colmap \
    --boost_path "C:/local/boost_1_64_0/lib64-msvc-14.0" \
    --qt_path "C:/Qt/5.9.3/msvc2015_64" \
    --cuda_path "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0" \
    --cgal_path "C:/dev/CGAL-4.11.2/build"

1.1 Boost安装

以下为参考博客的摘抄

1打开cmd进入boost文件夹有一个批处理文件bootstrap.bat。
2在cmd输入命令bootstrap.bat运行结束会出现b2.exe或者bjam.exe没区别作者是两个都生成了。
3然后在cmd输入命令bjam.exe。会出现一个文件夹lib64-msvc里面装着boost的各种库。
ps这里可能在运行了bjam之后没有出现这个文件夹作者本人就是
重新输入命令bjam install --toolset=msvc-14.1 address-model=64 --prefix=“D:\remote-sensing\colmap\boost_1_64_0\lib64” link=static runtime-link=shared threading=multi debug release。VS2019改为msvc-14.2prefix路径改成自己对应的路径生成lib64文件夹lib64->lib中装着boost的库。

我的安装目录如下其中msvc-14.2指的是VS2019
请添加图片描述

1.2 CUDA安装

以下内容为参考博客的摘抄
CUDA下载第一次会让设置临时解压目录第二次会让设置安装目录解压目录之后会消失不要选择相同目录做安装目录。
安装目录建议直接选择默认路径我的默认安装路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2

安装时选择“自定义安装”不选“精简”。选择程序组件时注意不要勾选“Nsight Systems”“Nsight Compute”
“CUDA”下的 “Runtime”、“Development”、“Documentation”、“Samples”这四项是必选的

下述的其他选项根据情况自己选择即可安不安装应该关系不大

  1. 取消勾选NVIDIA GeForce Experience(有的cuda版本没有此选项)
  2. 如果之前没有更新驱动在这里可以勾选“Other components”和“Driver component”否则也取消勾选
  3. “Visual Studio Integration”这一项没有使用VS环境可以不选

1.2.1 CUDA环境变量

请添加图片描述

1.2.2 CUDA和驱动验证

打开cmd输入nvidia-smi可查找驱动的版本如下所示。我电脑的驱动版本是462.30最高可支持CUDA11.2版本。
请添加图片描述

但实际上我只装了CUDA10.2版本输入nvcc --version可以查看如下所示
请添加图片描述

COLMAP的Cmakelist.txt写了这样一句

message(STATUS “Enabling CUDA support (version:
${CUDA_VERSION_STRING},”
" archs: ${CUDA_ARCH_FLAGS_readable})")

具体到CMake的编译LOG为
请添加图片描述

说明该句可以显示安装CUDA的版本以及算力版本编译一些CUDA代码时候就需要填写sm_75。

1.3 Qt安装

Qt官方下载地址
以5.14.2为例进入网站后依次进入5.14>5.14.2>qt-opensource-windows-x86-5.14.2.exe下载exe.
Qt 5.9.0 下载页面
一般安装以下几种:
请添加图片描述

注意Qt版本MSVC和MinGW版本的区别。msvc使用的是vs的编译器这个版本主要用于PC开发MinGW版本使用MinGW编译器主要用于跨平台开发。两个版本的Qt配置方式完全不同。因此为了能是colmap-gui能正常运行必须安装qt-msvc同时添加环境变量如下所示。

请添加图片描述

1.4 CGAL安装

从5.0版本开始CGAL仅是一个头文件库这意味着CGAL无需编译只需安装好CGAL的依赖项即可。

  • CGAL主要依赖项是boost
  • CGAL还依赖GMP和MPFRCGAL会提供编译好的见下图
  • 如果需要使用CGAL的可视化功能则还需要Qt库

1.4.1 CGAL下载和解压不编译

CGAL的GitHub下载两个zip:
请添加图片描述
auxiliary解压后放到CGAL-5.5里面
请添加图片描述

1.4.2 vcpkg安装CGAL

我在安装colmap之前已经用vcpkg安装OpenMVS时已经装过CGAL。
在 vcpkg安装目录下输入vcpkg list cgal 可以查看CGAL安装的版本是5.5如下所示。
没有安装则输入vcpkg install cgal::x64-windows
在这里插入图片描述

2. Vcpkg安装glew、Ceres、

以下内容来自参考博客

2.1 Ceres solver

如果是手动安装的话非常麻烦所以这里通过vcpkg 方式来安装

vcpkg install ceres[suitesparse,cxsparse]:x64-windows --recurse

同时在C:\local\dev\vcpkg\packages\ceres_x64-windows\share\ceres根据你的vcpkg安装目录设置路径下修改CeresConfig.cmake将其改成如下(否则cmake无法找到ceres)
请添加图片描述

2.2 vcpkg 安装freeimage 、glewboost和CGAL可选

如果已经安装并编译了boost且系统环境变量已添加那么可以不用vcpkg安装boostCGAL同理。
请添加图片描述

这里安装完毕后需要去修改colmap 的CmakeLists如下(windows 太坑区分大小写
请添加图片描述

3. 使用CMake生成COLMAP.sln解决方案

打开cmd进入colmap 3.7/build 文件夹输入命令
cmake -G "Visual Studio 16 2019" -DCMAKE_TOOLCHAIN_FILE=C:\local\dev\vcpkg\scripts\buildsystems\vcpkg.cmake ..
其中"Visual Studio 16 2019"表示我电脑上的安装的是VS2019"DCMAKE_TOOLCHAIN_FILE="后面的路径替换成你的vcpkg安装地址。

4. 打开.sln解决方案配置选择Release+x64然后编译

ALL_BUILD>右键>Build
请添加图片描述

5. 启动GUI

打开cmd,进入目录换成你的路径)\colmap-3.7\build\src\exe\Release输入colmap -h可以查看使用说明输入colmap gui可以打开窗口程序。请添加图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: windows