最详细简单的colmap(3.10-dev)环境配置(Windows,VS2019+Vcpkg)(2024/01/26)

  • 写于 2024/01//26
  • 更新于 2024/05/23

目录

一、配置前的准备

1. cmake

2. Vcpkg

3. Visual Studio要修改带有【英语】语言

4. 设置环境变量(option)

 5. cuda(option)

二、克隆与编译

1. 克隆部分

2. 编译部分

1)使用Vcpkg安装依赖

2)修改ceres的CeresConfig.cmake的内容

3)编译

4)生成/Build

2. 开启GUI


一、配置前的准备

1. cmake

具体安装请参阅:

Windows下的CMake详细安装教程(2024/1/24)-CSDN博客

2. Vcpkg

C/C++的包管理——Vcpkg(2024/01/25)-CSDN博客

3. Visual Studio要修改带有【英语】语言

具体方式请阅读:

C/C++的包管理——Vcpkg(2024/01/25)-CSDN博客

4. 设置环境变量(option)

①右键点击【此电脑】,选择【属性】-->【高级系统设置】

②选择【环境变量】

③在系统变量中点击【新建】,设置好下图所示【变量名】和【变量值】,点击【确定】

20dcd731d9ff4d449cc54b5a940f1037.png

 5. cuda(option)

建议安装上,否则应在colmap的CmakeLists.txt中禁用cuda

228db6767609461c94f92e37085380d4.png

具体安装请参阅:

Windows下的CUDA与cuDNN详细安装教程(2024/01/26)-CSDN博客

注意: 虽然禁用CUDA仍能通过编译

但是只有装了CUDA的才可以进行MVS,否则只能过SFM的稀疏重建

二、克隆与编译

写在前边:

1.由于colmap用到qt5,未防止不必要的错误,请在编译之前对你的Anaconda安装文件夹重命名,编译colmap完成之后再恢复之前的命名

2.为避免一些bug,colmap编译要用VS2019,不要用VS2022,官方文档中也提到:

a7e5c8fa302c48f1a74ac1808b7e9924.png

1. 克隆部分

使用git运行如下命令:

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

如果遇到网络问题,请前往如下网址自行下载源码压缩包:colmap/colmap: COLMAP - Structure-from-Motion and Multi-View Stereo (github.com)

2. 编译部分

1)使用Vcpkg安装依赖

.\vcpkg install boost:x64-windows metis:x64-windows flann:x64-windows freeimage:x64-windows yasm-tool:x86-windows eigen3:x64-windows cgal:x64-windows qt5-base:x64-windows glew:x64-windows glfw3:x64-windows ceres:x64-windows

安装完成后,再次运行安装依赖命令,见到如下图所示即代表安装完成:

99c90db6afec4a1eb99b46e244cb3bac.png

The versions are as follows:

    boost:x64-windows@1.84.0
    ceres:x64-windows@2.1.0#4
    cgal:x64-windows@5.6
    eigen3:x64-windows@3.4.0#3
    flann:x64-windows@2019-04-07#7
    freeimage:x64-windows@3.18.0#25
    glew:x64-windows@2.2.0#3
    glfw3:x64-windows@3.3.9
    metis:x64-windows@2022-07-27
    qt5-base:x64-windows@5.15.12#1
    yasm-tool:x86-windows@2021-12-14

这里要注意:由于我之前在使用Vcpkg配置OpenMVS时,已安装过部分依赖(见文章安装依赖部分 ),在你接下来运行cmake编译时,可能会遇到Cmake Error,找不到某个或多个依赖的情况

形如:

CMake Error in src/colmap/sensor/CMakeLists.txt:
  Imported target "freeimage::FreeImage" includes non-existent path

    "E:/srcCode/colmap/FREEIMAGE_INCLUDE_DIRS-NOTFOUND"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

  * The path was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and references files it does not
  provide.

那么解决方案如下:

使用Vcpkg安装所缺少的依赖:.\vcpkg install freeimage:x64-windows

当然也可以手动编译,这里不再赘述

2)修改ceres的CeresConfig.cmake的内容

①找到你的vcpkg路径,进入path to vcpkg\packages\ceres_x64-windows\share\ceres

②使用Notepad++打开ceres文件夹下的CeresConfig.cmake

③将71和72行的FALSE修改为TRUE

注意:在别的colmap编译教程中,有写到在Windows平台需要修改Colmap的CmakeLists.txt内容的,在3.10-dev,3.9.1,3.9版本的Colmap中,CmakeLists.txt已经被官方修改,与之前版本的有所不同,读者不必再修改其中的任何内容,直接按照该教程向下编译即可。如果读者使用之前的版本,即3.8及之前的版本,则需要修改CmakeLists.txt的内容,具体修改可参阅下述教程(非本人写):

Colmap编译教程及笔记 [Windows+VS2019+Vcpkg]-CSDN博客

3)编译

①在colmap中新建名为build的文件夹

②在build文件夹中右键打开终端,输入:

cmake .. ..\src -G "Visual Studio 16 2019" -A x64 -DCMAKE_TOOLCHAIN_FILE=E:\myVcpkg\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -D CMAKE_CUDA_ARCHITECTURES="70;75;80;86"

参数:

  1. cmake .. ..\src

    • cmake:调用CMake命令行工具。
    • ..:指定CMakeLists.txt文件所在的目录,这里是上一级目录。
    • ..\src:指定源码目录为上一级目录中的src文件夹。
  2. -G "Visual Studio 16 2019"

    • -G:指定生成器,这里选择的是Visual Studio 2019。
  3. -A x64

    • -A:指定体系结构,这里选择的是x64,即生成64位版本的程序。
  4. -DCMAKE_TOOLCHAIN_FILE=E:\myVcpkg\vcpkg\scripts\buildsystems\vcpkg.cmake

    • -D:设置一个CMake变量。
    • CMAKE_TOOLCHAIN_FILE:指定工具链文件,这里使用的是vcpkg的工具链文件路径。
  5. -DVCPKG_TARGET_TRIPLET=x64-windows

    • -D:设置一个CMake变量。
    • VCPKG_TARGET_TRIPLET:指定vcpkg的目标三元组,这里选择的是x64-windows,即使用vcpkg管理的64位Windows平台的库。
  6. -D CMAKE_CUDA_ARCHITECTURES="70;75;80;86"

    • -D:设置一个CMake变量。
    • CMAKE_CUDA_ARCHITECTURES:指定CUDA架构,这里包含了70、75、80、86四种架构,分别对应不同的NVIDIA GPU型号。

其中,参数-G "Visual Studio 16 2019",可通过在终端运行cmake -G查看

如下图所示则编译通过:

f4326b55fd424ab1adfd33a39f4deaee.png

文件夹内容如下:

e546e9c82be54e9e984fc55215e3d2a6.png

4)生成/Build

①使用VS2019打开【COLMAP.sln】

②在解决方案资源管理器里,展开【cmake】,在【ALL_BUILD】上右键选择【生成/build】,等待即可

fe355ae0af9744d49637f9aa0141123b.png

根据需要选择Debug/Release模式

6)当出现如下错误:

b889a3b2646a4e288c9d765299f67c4d.png

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C1128    节数超过对象文件格式限制: 请使用 /bigobj 进行编译    colmap_estimators    E:\srcCode\colmap\src\colmap\estimators\fundamental_matrix.cc    1    
严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C1128    节数超过对象文件格式限制: 请使用 /bigobj 进行编译    colmap_estimators    E:\srcCode\colmap\src\colmap\estimators\bundle_adjustment.cc    1    
严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C1128    节数超过对象文件格式限制: 请使用 /bigobj 进行编译    colmap_estimators    E:\srcCode\colmap\src\colmap\estimators\absolute_pose.cc    1    
严重性    代码    说明    项目    文件    行    禁止显示状态
错误    D8040    创建子进程或与子进程通讯时出错    colmap_estimators    E:\srcCode\colmap\build\src\colmap\estimators\cl    1    

解决方案如下:

①在解决方案上右键,打开【属性】

②将启动项设置为【当前选定内容】

③双击报错,跳转到报错项目

④点击【项目】-->【属性】

⑤找到【C/C++】-->【命令行】,在最后添加如下内容,并点击【应用】:

 /bigobj

注意:这里有一个空格,即是   空格+/bigobj

如果你的内容为空,那么只需要添加/bigobj即可

54571c192f7b47ab99c7d42323863468.png

③回到【ALL_BUILD】,右键选择【重新生成】

9a57175f912045f4aa51ab82f949a003.png

可以看到已全部生成成功

2. 开启GUI

在路径:build\src\colmap\exe\Debug中右键打开终端,输入:

.\colmap.exe gui

看到如下界面弹出,即代表正常:

950fbf00cb714a8bb21d75fd4ae78283.png

至此,整个colmap配置流程完成

转载请标明出处
如果还有问题,欢迎在评论区留言或私信
作者:CodeLearing
主页:https://blog.csdn.net/weixin_52677672?type=blog
qq群:958124241
Learn Together!

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值