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

Windows系统下COLMAP的编译可以分为三部分:(1)手动下载安装Boost、Qt、CGAL、CUDA(Boost和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.2,prefix路径改成自己对应的路径)生成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和MPFR(CGAL会提供编译好的,见下图)
  • 如果需要使用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 、glew(boost和CGAL可选)

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

这里安装完毕后,需要去修改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可以打开窗口程序。请添加图片描述

猜你喜欢

转载自blog.csdn.net/rdw1246010462/article/details/127243569